2011-11-23 54 views
1

當我讀取行時,它不能讀取數組我想知道如果我想在會話中顯示用戶名,我該怎麼做。這是我檢查用戶名的代碼,如果找到了用戶名,則返回用戶的名稱,但無法顯示。在php中mysql_fetch_array()和mysql_fetch_row()不能在同一個變量上工作

請幫助我或建議我任何更好的方法。謝謝。 錯誤代碼:函數

public function Check_login($uname,$pass) 
{ 
    //echo $uname; 

    $check=mysql_query("select name from user where name='$uname' and password='$pass'"); 
    $log=mysql_fetch_row($check); 
    $abc=mysql_fetch_array($check); 
    echo $abc['name']; 
    if($log>0) 
    { 
     $_SESSION['login']=1; 
     echo $_SESSION['name']=$abc['name']; 
     return $_SESSION['name']; 
    } 
    else 
    { 
     return false; 
    } 

主頁:

<?php 
    session_start(); 
include('function.php'); 
$user=new user(); 
if(!$user->get_session()) 
{ 
header("location:index.php"); 
    } 

if($_GET['q']=='logout') 
{ 
$user->logout(); 
header("location:index.php"); 
} 
?> 

這裏是HTML代碼:

<h1>All Information</h1> 
Welcome<?php echo $_SESSION['name']; ?></br> 

<a href="?q=logout">Logout</a>`enter code here` 
+0

我的問題是爲什麼這兩個函數不能同時在同一個變量上工作 –

回答

0
$check=mysql_query("select name from user where name='$uname' and password='$pass'"); 
session_start(); 
$abc = array(); 
if(mysql_num_rows($check) > 0){ 
    $abc=mysql_fetch_array($check); 
    if(count($abc)>0) 
    { 
     $_SESSION['login']=1; 
     echo $_SESSION['name']=$abc['name']; 
     return $_SESSION['name']; 
    } 
} 
else 
{ 
    return false; 
} 

我認爲這將解決您的問題..改變你的代碼這..

+0

它工作正常,但有沒有更簡單的方法來做同樣的事情? –

+0

我不認爲有任何簡短和標準的方式來做到這一點.. –

+0

好的謝謝你的幫助.. –

0

對於初學者,我強烈建議使用準備好的語句,而不是將用戶名/密碼扔到查詢中。您可以將用戶名和密碼作爲參數綁定到查詢並防止任何類型的sql注入。您還可以綁定返回到結果的名稱,以便於訪問。

相關問題