2012-01-18 130 views
0

我想创建一个表单并将表单的值与数据库匹配。我已经尝试过,但我失败了,并有一个错误。 CSRF状态令牌与提供的不匹配。我是新的,需要一些帮助从文本框php中获取值并与数据库匹配

<?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> 

回答

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我自己,但这里是manual on prepared statements for mysqli

+0

它不能以某种方式工作 – 2012-01-18 15:39:56

+1

@Nicholas Lim你需要添加一些错误处理到你的mysqli调用,从第一个连接到数据库的地方开始。你能发布完整的代码(没有用户名/密码)吗? – jeroen 2012-01-18 15:48:14

相关问题