2013-05-09 24 views
1

我有一個表ver_code在我的數據庫和表內部只有一行叫做code,我已經插入了幾個驗證碼如ABCDEF,GHIJKL例如現在我的下面的代碼未能驗證代碼使用下面不能從MySQL數據庫的非常數據

<?php 

if (isset($_POST['ver_code'])) 
    { 

     $ver_code = $_POST['ver_code']; 

     if(!empty($ver_code)){ 

      try{ 
       $conn = new PDO("mysql:host=localhost;dbname=pro1", "pro1", "4931//4931"); 
      } 
      catch(PDOException $pe) 
       { 
        die('Connection error, because: ' .$pe->getMessage()); 
       } 

       $sql = "SELECT `code` FROM `ver_code`"; 
       $stmt = $conn->query($sql); 

       if(!$stmt) 
       { 
        die("Execute query error, because: ". $conn->errorInfo()); 
       } 

       $stmt->setFetchMode(PDO::FETCH_ASSOC); 
       $row = $stmt->fetch(); 

       if($row['code'] == $ver_code['code']){ 

        echo "Account Verified ! "; 

       }else{ 
        echo "Invalid Verification Code !"; 
       } 



     }else{ 
     echo "Plz enter a verification code ... "; 
     } 

    } 

?> 

<form action="index2.php" method="POST" > 
    <input type="text" name="ver_code" /> 
    <input type="submit" value="Verify" /> 
</form> 
+0

然而,當我把$行[ '代碼'] == $ ver_code [ '代碼']到$行[ '代碼'] == $ _POST ['ver_code']),那麼它只能驗證一行數據(只有ABCDEF) – fahim74 2013-05-09 09:48:32

回答

2

我懷疑這行簡單的形式,我的表

$row['code'] == $ver_code['code']

應該

$row['code'] == $ver_code; as $ver_code很簡單post變量不是數組。

編輯:如果你需要從所有行驗證

$stmt = $conn->prepare("SELECT `code` FROM `ver_code` where code= ?"); 
$stmt->bindParam(1,$ver_code); 
$stmt->execute(); 
if($stmt->rowCount()>0){ 
echo "Account Verified "; 
}else{ echo "Invalid Verification Code";} 
+0

,如果您需要驗證所有行中的數據,您只能驗證'代碼'行中的一個數據 – fahim74 2013-05-09 09:53:53

+0

爲什麼不用戶'SELECT code FROM'ver_code where code = $ ver_code' – 2013-05-09 10:13:31

+0

那麼,這解決了我的問題......非常感謝......這裏是完整的代碼... – fahim74 2013-05-09 15:00:13