2012-01-18 127 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

相關問題