2016-05-20 4 views
1

問題に解決: WebClプラットフォームを介してSecurityModをインストールしましたが、IISマネージャーにオプションのポップアップが表示されませんでした。 WebPIがインストールされていないかのように表示されるため、後でアンインストールできませんでした。だから、私はそれが正常にインストールされなかったと仮定し、それを忘れてしまった。

次に、Windowsのエラーログを確認し、SecurityModに多数のエントリがあることを確認しました。この問題を手動でアンインストールした後、すべてが意図どおりに動作します。

元の問題:

私はIIS 8.5とPHP 5.3.28のウェブサイトを持っていました。 PHP 7.0.5にアップグレードしました。

突然、私の$_POST配列は、POSTフォームのページでは空です!コードは変更されませんでした。PHPをアップグレードし、いくつかのIIS設定を変更しました。

誰もこの問題を以前に持っていましたか?

編集:私はちょうど5.3.28に戻ってみると、前述の効果の代わりに、ページがちょうど読み込みと読み込みと読み込みであることに気づいた。

このバグを追跡する方法がわかりません。 IISのセキュリティ設定やプラグインがこれを引き起こす可能性がありますか?

EDIT 2: register globalsが私のPHP 5.3.28 ini configでオフになっていました。

サーバーサイドコード:

<?PHP 
ob_start(); 

require_once('conf.php'); 
require_once($path2root.'class/common.php'); // var defined in class/conf.php 

$p = lib_GetUser(); // defined in class/common.php 

print_r($_SESSION); // ok (outputs the generated id I've put in from the last request) 
print_r($_POST); // empty! 
print_r($_GET); // ok (outputs the id in the URL) 

if (!isset($_GET['id'])) { 
    exit(); 
} 

$checkOk = false; 
if(isset($_SESSION['FirstKey']) && isset($_POST['key'])) { 
    $checkOk = $_SESSION['FirstKey'] == $_POST['key']; 
    // this was true on the old version! 
} 

[...] 

クライアント側:

<form name="form" method="post" action="Keytest.php?id=16336"> 
    <input type="hidden" name="key" value="174e2f46"> 
    <p>Hello</p> 
    <input type="submit" value="ok"> 
    <input type="button" value="Back" onclick="history.go(-1);"> 
</form> 

EDIT 3:5.3.28ページは最終的に500エラーにロードされました。

69. view trace Error -FASTCGI_REQUEST_TIMEOUT 

70. view trace Warning -SET_RESPONSE_ERROR_DESCRIPTION 
ErrorDescription C:\Program Files (x86)\PHP\v5.3\php-cgi.exe - The FastCGI process exceeded configured request timeout 

71. view trace Warning -MODULE_SET_RESPONSE_ERROR_STATUS 
ModuleName FastCgiModule 
Notification EXECUTE_REQUEST_HANDLER 
HttpStatus 500 
HttpReason Internal Server Error 
HttpSubStatus 0 
ErrorCode The wait operation timed out. 
(0x80070102) 
ConfigExceptionInfo 
+0

おそらく、グローバルなレジスタhttp://php.net/manual/en/security.globals.phpに頼っていたでしょう。だから、確実に完全なコードを投稿してください。 –

+0

@ Fred-ii-投稿コード – Howie

+0

'$ checkOk = $ _SESSION ['FirstKey'] == $ _POST ['key']; 'は' single =エラー報告が何かを投げ返すかどうかを見てください。http://php.net/manual/en/function.error-reporting.php - セッションも開始されていますか? –

答えて

0

私はそれを理解しました。この問題を引き起こしていたSecurityModのデフォルト構成でした。興味深いことに、それはPHP 5.3と7.0では異なって現れました。

これを削除すると、そのトリックが実行されました。

関連する問題