1

次の PHP スクリプトがありますが、常にセッションをチェックしているように見えるため、「ユーザーがコードを入力する前に正しいコードを入力してください。

コードが実際に起動し、フォームのセッションと投稿のチェックを行う前に、クリック イベントを実行したいと思います。これはPHPでどのように行うことができますか?

ここに私のコードがあります:

<?php

session_start();
    if (md5($_POST['norobot']) == $_SESSION['randomnr2'])   
    { 
        // here you  place code to be executed if the captcha test passes
            echo "Code correct - email should send now";

}   

else {  
        // here you  place code to be executed if the captcha test fails
            echo "Code incorect please try again";
    }

?> 

私の送信ボタンは次のようになります。

<input type="submit" id="submit_btn" class="button" value="Submit" />
4

3 に答える 3

2

セッション変数が設定されていて、値が空白でないかどうかを確認するには、次のようにします。

if(isset($_SESSION['THECODE']) && $_SESSION['THECODE']!='')
{
  // THECODE is set to something
}

============

更新、コードを追加したとき:

<?php

session_start();
if(isset($_POST['norobot']) && isset($_SESSION['randonnr2']))
{
  if (md5($_POST['norobot']) == $_SESSION['randomnr2'])   
  { 
    echo "Code correct - email should send now";
  }
  else
  {  
    echo "Code incorect please try again";
  }
}

?> 
于 2012-05-18T09:56:29.970 に答える
2
<?php
    session_start();
    if (isset($_POST['norobot'])) {
        if (md5($_POST['norobot']) == $_SESSION['randomnr2']) {
            // here you  place code to be executed if the captcha test passes
            echo "Code correct - email should send now";
        }
        else {
            // here you  place code to be executed if the captcha test fails
            echo "Code incorect please try again";
        }
    }
?> 
于 2012-05-18T09:57:28.883 に答える
1

なぜこのようなことをしないのですか?ユーザーが何かを送信したかどうかを確認し、送信していない場合はコードを実行しないでください。

<?php

session_start();

if(isset($_POST))
    if (md5($_POST['norobot']) == $_SESSION['randomnr2'])   
    { 
        // here you  place code to be executed if the captcha test passes
            echo "Code correct - email should send now";

}   

else {  
        // here you  place code to be executed if the captcha test fails
            echo "Code incorect please try again";
    }
}

?> 
于 2012-05-18T09:57:11.017 に答える