2013-06-28 86 views
-2
$result = mysql_query("SELECT * FROM customers 
WHERE loginid='$_POST[login]' AND accpassword='$_POST[password]'"); 


    if(mysql_num_rows($result) == 1) 
{ 
    while($recarr = mysql_fetch_array($result)) 
    { 

    $_SESSION[customerid] =  $recarr[customerid]; 
    $_SESSION[ifsccode] = $recarr[ifsccode]; 
    $_SESSION[customername] = $recarr[firstname]. " ". $recarr[lastname]; 
    $_SESSION[loginid] = $recarr[loginid]; 
    $_SESSION[accstatus] = $recarr[accstatus]; 
    $_SESSION[accopendate] = $recarr[accopendate]; 
    $_SESSION[lastlogin] = $recarr[lastlogin];  
    } 
    $_SESSION["loginid"] =$_POST["login"]; 
    header("Location: accountalerts.php"); 
} 
else 
{ 
    $logininfo = "Invalid Username or password entered"; 
} 

注意:未定義指數:登錄和 注意:未定義指數:密碼 盡力幫助我 在第二行收到錯誤消息得到通知

+0

有什麼錯誤信息? – acobster

+0

不推薦使用mysql擴展。你應該轉向pdo或mysqli。此外,您應該驗證您的POST值,因爲您正在開放SQL注入。 –

回答

0

看來,如果ü沒有通過您的查詢中使用的POST參數:

>  $result = mysql_query("SELECT * FROM customers 
>  WHERE loginid='$_POST[login]' AND accpassword='$_POST[password]'"); 

您必須將鍵值對顯式地發送到您的腳本。一個用於登錄,一個用於密碼。

0
  1. 您需要將引號名稱換成引號,並且您的查詢字符串是hella messy。

    $query = sprintf(
          "SELECT * FROM customers WHERE loginid='%s' AND accpassword='%s'", 
          $_POST['login'], 
          $_POST['password']); 
    $result = mysql_query($query); 
    
  2. 這整個事情應該在一個塊被裹得像個:

    if(isset($_POST['login']) && isset($_POST['password'])) { 
        //code here 
    } else { 
        echo "No username/password supplied."; 
    } 
    
  3. mysql_*功能消失,學會用的MySQLi或PDO。
  4. 您的查詢對於SQL注入來說是任何可能發生的事情都是開放的。使用mySQLi或PDO查看參數化查詢,或者至少在將數據包含在查詢中之前對其進行驗證。

這裏有一個PDO例如:

//create DB object 
$dbh = new PDO('mysql:host=mysql.domain.com;dbname=mydb', $username, $password); 
//write query 
$query = "SELECT * FROM customers WHERE loginid = ? AND accpassword = ?"; 
//define parameters to replace ? 
$params = array($_POST['login'], $_POST['password']); 
//prepare the statement 
$sth = $dbh->prepare($query); 
//execute 
if(! $sth->execute($params)) { 
    //error reporting 
    die('Query failed: ' var_export($dbh->errorInfo(), true)); 
} 
//fetch all results as associative array 
$results = $dbh->fetchAll(PDO::FETCH_ASSOC)l 
//display 
var_dump($results);