2012-03-29 6 views
0

私は$sessionMinus(数字です)が($_SESSION['initial_count'])と同じではない場合、フォームは自分自身に送信されますが、$sessionMinus($_SESSION['initial_count'])と同じ番号になりますフォームをcreate_session2.phpに提出します。このフォームが私をエラーページに誘導しているのはなぜですか?

しかし、送信ボタンをクリックすると、何が起こっても、数字が一致するかどうかに関係なく、エラーページが表示され続けます。なぜこうなった? (これは、==と===の両方の記号を使用すると発生します)。以下は

コードです:

<?php 
session_start(); 

    if ($sessionMinus == $_SESSION['initial_count']){ 

     $action = ($sessionMinus == $_SESSION['initial_count']) ? "create_session2.php" : $_SERVER['PHP_SELF']; 

    } 

?> 


<body>  
     <form id="QandA" action="<?php echo htmlentities($action); ?>" method="post" onsubmit="return validateForm(this);" > 

... 

</body> 

ソリューションは以下である:

<?php 

session_start(); 

if ($sessionMinus == $_SESSION['initial_count']){ 

    $action = 'create_session2.php'; 

}else if($sessionMinus != $_SESSION['initial_count']){ 

    $action = $_SERVER['PHP_SELF']; 

} 

?> 

<body> 

      <form id="QandA" action="<?php echo htmlentities($action); ?>" method="post" onsubmit="return validateForm(this);" > 



... 
</body> 
+0

どのページからこのページの先頭ですか?これらの変数が等しくない場合、その動作は期待されるかどうか。 – Noah

+0

フォームタグを確認してください –

+0

エラーページとは何か?それはエラー500、または何ですか? – Pete

答えて

0

これは可能性がいくつかあります。

  1. は、より多くのためのあなたのphp_error.logファイルを確認デバッグ情報には、通常、エラーの原因に関する情報があります。

  2. あなたのPHP文のように見えますが、あなたのHTMLは適切に区切られていません(これらのコード行が直後にあると仮定します)。 ifブロックの後、ただし<form>タグの前に?>タグが必要です。だからあなたのコードは次のようになります。あなたが$action変数を割り当てる

    <?php /* <- this should be above this line already in your code */ 
    
    if ($sessionMinus == $_SESSION['initial_count']) { 
        $action = ($sessionMinus == $_SESSION['initial_count']) ? "create_session2.php" : $_SERVER['PHP_SELF']; 
    } 
    /* you need to add the tag below */ 
    ?> 
    <form id="QandA" action="<?php echo htmlentities($action); ?>" method="post" onsubmit="return validateForm(this);" > 
    
  3. は、このように、括弧内の式をラップ考えてみます。また、

    $action = (($sessionMinus == $_SESSION['initial_count']) ? "create_session2.php" : $_SERVER['PHP_SELF']); 
    

とをPHP_SELFとして(REQUEST_URIからPHP_SELFを変更しますドキュメントルートを含む絶対パスではなくドキュメントルートを基準にしたファイルパスを指定します)、create_session2.phpファイルへのフルパスを追加します。

$action = (($sessionMinus == $_SESSION['initial_count']) ? $_SERVER['SERVER_NAME'] . "/create_session2.php" : $_SERVER['REQUEST_URI']); 

SERVER_NAMEビットを追加する必要はありませんが、私はいつも自分のリンクに絶対パスを優先します。

さらにソースコードを提供できる場合は、非常に役立ちます。

-T

+0

こんにちは、私はちょうどにコピーされ、ポストコード、私は、コードを更新しますが、あなたは、こんにちは、それらを – user1292857

+0

述べたあなたが述べた括弧の理論が、それでも運を試してみました前?>タグとなどが適切な場所にあり、私はREQUEST_URIを使用する必要があります? – user1292857

+0

いいえ、あなたは**使用する必要はありません。生成されたページのソースコードを確認し、フォームの動作を確認できますか? –

関連する問題