0

オプションボックスのある次のページがあります。ユーザーが次のオプションを選択して送信をクリックすると、関連するURLに移動します。ただし、ユーザーは、画面上の単純な静的キャプチャ イメージと一致する正しい文字列をボックスに入力する必要があります。

現在、コードは次のようになっていますが、送信前にボックスに「abcdef」を入力する必要があるように条件を設定する必要があります。そうしないと、エラーが発生します。

<?php
// Check to see if the form has been submitted.
if(isset($_POST['menu1'])) {
  // If the form has been submitted, force a re-direct to the choice selected.
  header('Location: ' . $_POST['menu1']);
}
?>




<div style="padding-left: 50px">
<p class="arial"><strong></strong><br /><br /></p>
<form method="post"> 
<table class="freecontact2form" border="0" width="400px">
<tbody>
<tr>
<td colspan="2"><span style="font-size: x-small;"> </span> <font color=#000000 ></font>
  <br /><br /></td>
</tr>
<tr>
  <td valign="top"><table width="400px" class="freecontact2form">
    <tr>
      <td colspan="2"><br />
        <br />
        <div class="freecontact2formmessage"> </div></td>
    </tr>
    <tr>
      <td valign="top"><label for="menu1" >These are the following options:<span     class="required_star"> </span></label></td>
      <td valign="top"><select name="menu1" id="menu1">
        <option selected="selected" value ="http://www.google.com">Google </option>
        <option value ="www.msn.com">MSN</option>
        <option value ="www.youtube.com">Youtube</option>
        <option value ="bing.com">Bing</option>

      </select></td>
    </tr>

    <tr>
      <td valign="top"><label for="captcha" ><span class="required_star"></span><span     class="required_star"></span></label></td>
      <td valign="top"><BR /><BR /><img src="captcha.jpg" /></td>
    </tr>
    <tr>
      <td>Please enter the characters shown in the CAPTCHA image:</td>
      <td><input type="text" name="captcha" id="captcha" value="" size="10" />
      </td>
    </tr>
    <tr>
      <td style="text-align:center" colspan="2"><br /><br /> 
      <input type="submit" value=" Submit ">

</td>
    </tr>
  </table></td>
  <td valign="top">&nbsp;</td>
</tr>


<tr>

</tr>
<tr>

</tr>
</tbody>
</table>
</form> <br />
<p> </p>
<p> </p>
4

1 に答える 1

0

ページを最初に表示するときに、コードをセッションに保存します。次に、コード フィールドの POST 値をセッション変数と照合します。

session_start();
$_SESSION['captcha'] = 'abcdef';

フォーム送信時:

session_start();
if($_POST['captcha'] == $_SESSION['captcha'] && isset($_POST['menu1'])){
    header();
}
于 2013-03-21T12:36:16.107 に答える