2010-02-27 77 views
1

hye guys .. 我有一個問題,我沒有知道錯誤 我已驗證頁面,其中檢查組以識別用戶 如果該組是admin,則管理頁面將顯示。 而如果該組是用戶,該用戶頁面將出現.. 的情況:當我插入用戶名和密碼,驗證頁面出現空白頁...我不知道代碼有什麼問題... PLZ guys..help我..驗證頁面錯誤

下面的代碼:

<?php 
session_start();    
if($_POST['id']!=null && $_POST['pass']!=null){ 

    $username=$_POST['id']; 
    $password=$_POST['pass']; 


[email protected]_connect('localhost','root') 
    or die("Could not connect".mysql_error()); 
    if ([email protected]_select_db("fyp",$link)){ 
    echo mysql_error(); 
    } 

$db_select = mysql_select_db('fyp',$link); 
if (!$db_select) { 
die("Database selection failed: " . mysql_error()); 
} 

    $sql="SELECT * from access where username='".$username."' AND password='".$password."'"; 
    $result=mysql_query($sql); 
    if(!$result){ 
    die(mysql_error()); 
    } 
    $numrecord=mysql_num_rows($result); 
    if($numrecord>0){ 
     if($group=="admin"){ 
     $_SESSION['id']=$username; 
     $_SESSION['pass']=$password; 
     $_SESSION['group'] = $row['group']; 
     mysql_close($link); 
     header("Location:adminpage.php"); 
     } 
     elseif($group=="user"){ 
     $_SESSION['id']=$username; 
     $_SESSION['pass']=$password; 
     $_SESSION['group'] = $row['group']; 
     mysql_close($link); 
     header("Location:userpage.php"); 
     } 
    } 

    else{ 
    mysql_close($link); 
    header("Location:login.php?error=2"); 
    } 
} 
else{ 
    header("Location:login.php?error=1"); 
    } 

?> 
+0

密碼是如何存儲在數據庫中的?作爲cleat文本或哈希?您正在檢查明文密碼。也許你沒有得到任何結果,腳本死亡。 – 2010-02-27 09:10:04

回答

0

您並未使用mysql_fetch_array或其他函數實際從數據庫中提取行。試試這個:

$numrecord=mysql_num_rows($result); 
if($numrecord>0){ 

    $row = mysql_fetch_array($result); //////////// 
    $group = $row['group']; 

    if($group=="admin"){ 
    $_SESSION['id']=$username; 
    $_SESSION['pass']=$password; 
    $_SESSION['group'] = $row['group']; 
    ................ 

此外,您需要在查詢中使用mysql_real_escape_string函數來避免安全問題。

+0

謝謝sarfraz ...烏爾代碼成功..感謝亞.. – user273551 2010-02-27 10:12:40

+0

@ ejah85:不客氣 – Sarfraz 2010-02-27 11:13:11