0

フォームを作成し、フォームの値をデータベースと照合したいと考えています。私は試しましたが、失敗し、奇妙なエラーが発生しました。CSRF 状態トークンが提供されたものと一致しません。私は新しく、助けが必要です

   <?php
header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');
include_once "fbmain.php";
include_once "mysqli.connect.php";
mysql_connect(".....") or die(mysql_error()) ;
mysql_select_db("jetstardatabase") or die(mysql_error()) ;

?>    
<html>
    <link type= "text/css" rel="stylesheet" href="starpickStyle.css">

    <head>
        <title>StarPick</title>

    </head>
    <body>
<?php
if (!isset($_POST["code"]))
{
?>

<form action="" method="post">

 <strong>Code: *</strong> <input type="text"  name = "code" >
 <input type="submit" name="submit" value="Submit">
    </form>
    <?php
}else
{
$code = $_POST["code"]; }
$sql = "SELECT bookingref FROM starpick WHERE obsolete = 0";
$result = $mysqli->query($sql);

while($row = $result->fetch_object())
{           
    if($row->bookingref == $code)
    {
        echo 'Found';
    }
    else
    {
        echo 'Try Again';
    }
}
?>
</body> 
</html>
4

1 に答える 1

0

あなたは間違った方法でアプローチしています。すべての行を取得してphpでマッチングを行うのではなく、データベースにマッチングを行わせる必要があります。

何かのようなもの:

$sql = "SELECT bookingref FROM starpick WHERE obsolete = 0 AND bookingref='" . mysql_real_escape_string($_POST["code"]) . "'";    // better use a prepared statement by the way but you'll have to check the manual for mysqli

次に、行が見つかったかどうかを確認します。

私は自分で PDO を使用していますが、ここに mysqli の準備済みステートメントに関するマニュアルがあります。

于 2012-01-18T15:05:57.150 に答える