2015-11-08 46 views
0

我正在嘗試顯示用戶名(cocname),但沒有發生任何事情。你明白爲什麼?沒有錯誤,但用戶名也缺失,並且「Hello」不顯示。謝謝。不顯示用戶名

<?php 
session_start(); 
include_once 'config.php'; 
$prepend = "<span class='cocname'>"; 
$append = "</span>"; 
if (!isset($_SESSION['email'])) { 
header("Location: signin.php"); 
} 
$query = "SELECT cocname FROM users WHERE email=".$_SESSION['email']; 
$result = $connect->query($query); 
if ($result->num_rows > 0) { 
while($row = $result->fetch_assoc()) 
    { 
     echo $prepend."Hello ".$row['cocname'].$append; 
    } 

} 
?> 
+0

請提供一些更多的代碼。類似於用戶成功登錄時發生的情況 –

+0

用戶輸入用戶名和密碼的正確組合後,用戶應該去哪裏。 – Akshay

+0

我改變了問題 – Paspartu

回答

1

那麼你需要在這裏使用sessions。對於所有需要登錄才能工作的頁面。添加此聲明。

session_start(); 

現在,添加session_start();作爲您的登錄頁面的第一行。更新您的登錄頁面如下。

if ($result->num_rows > 0) 
{ 
//user logged in 
$_SESSION['logged'] =1; 
$_SESSION['email']=$user; 
//now since this would only return 1 result, you don't need to use a white loop. 
$user_details = $result->fetch_assoc(); 
} 

瞭解更多: - http://www.w3schools.com/php/php_sessions.asp

+0

你的意思是在主頁面還是在登錄頁面? – Paspartu

+1

如果你想讓用戶登錄工作,你需要'session_start()'。閱讀更多關於會議。 – Akshay

0

試試這個 做signing.php

$query = "SELECT email, password FROM users WHERE email ='$user' and 
password='$pass'" ; 
$result = $connect->query($query); 

if ($result->num_rows == 0) { 
    header('Location: signin.php?failed=1'); 
} 
if ($result->num_rows > 0) { 
    //Email and password matched 
    $_SESSION['logged_in'] = true; 
    $_SESSION['User'] = $result->fetch_assoc(); 
} 

而且在main.php檢查寫這篇文章,如果用戶登錄或不作爲

if($_SESSION['logged_in']){ 
    echo "Successfully logged in"; 
}else{ 
    echo "Login first to view this page"; 
} 

不要忘記在頁面頂部開始會話。並使用$ _SESSION [「用戶」]在主頁上顯示用戶信息。

更新: 您應該在「signin.php」本身上提交您的表單。如果用戶成功登錄,請保存像$_SESSION["is_login"] = true;這樣的會話和另一個包含用戶信息並重定向到main.php的會話。在main.php中檢查是否設置了「is_login」會話並且爲true。如果真實用戶已登錄並在信息會話中顯示用戶信息。如果未設置「is_login」會話,則將用戶重定向到「signin.php」以再次登錄。

更新2

我發現你唯一的解決辦法是更換

$query = "SELECT cocname FROM users WHERE email=".$_SESSION['email']; 

$email = $_SESSION['email']; 
$query = "SELECT cocname FROM users WHERE email='$email'"; 

更新3
更換
$query = "SELECT cocname FROM users WHERE email=".$_SESSION['email'];
隨着
$query = "SELECT cocname FROM users WHERE email='{$_SESSION['email']}'";

+0

這就是說ERR_TOO_MANY_REDIRECTS – Paspartu

+0

在main.php中提供了代碼。我也編輯了答案 –

+0

我編輯了這個問題。 – Paspartu