2012-11-16 55 views
1

當用戶登錄到成員的唯一區域我試圖拉其他數據,如他們的名字連同他們的登錄憑據是電子郵件和密碼,但似乎無法使查詢成功輸出數據。它成功登錄,但我不能得到任何其他通過傳遞到會話

<?php 

    session_start(); 

    @$db = new mysqli("localhost", username, password, table); 

    if ($db->connect_errno !=0) { 
     exit; 
    } 

    $usern = $_POST['username']; 
    $passw = $_POST['passw']; 

    $query = "SELECT * FROM cf_users WHERE(firstname='".$firstName."' and email='".$usern."' and password='".$passw."')"; 

    $db->query($query); 

    $result = $db->query($query); 

    $row = mysqli_fetch_array($result, MYSQLI_BOTH); 

    if($row[0]>0) { 
     $_SESSION['email'] = $usern; 
     $_SESSION['firstName'] = $row['firstName']; // Modified after suggestion 
     header("location: page.php"); 
     exit(); 
    } 
    else { 
     exit("Login Failed.<br/>'. 
     'Please fill them in and try again. <a href='javascript:history.go(-1)'>Go back</a>"); 
    } 

    $closed = $db->close(); 
?> 
+1

只需使用$ row數組中的值(如果它們的名字在數據庫中)$ _SESSION ['firstname'] = $ row ['firstname']]。另外值得一提的是,你的腳本可以更安全,因爲它對SQL注入是開放的,並且密碼以明文形式存儲 - 查看用md5或sha2對它們進行編碼 –

+0

另一個好主意是創建一個用戶對象。您可以將所需的所有信息存儲在對象中,然後將其保存在會話變量中。 – fimas

+0

我添加了$ _SESSION ['firstName'] = $ row ['firstName']。到代碼然後<?php echo $ _SESSION ['firstName']; ?>並顯示數字1 – Charles

回答

0

您應該session_start();添加到您的page.php的開始了。 而且要小心該行

$_SESSION['firstName'] = $firstName; 
因爲 $firstName

沒有定義。

相關問題