2014-01-22 43 views
1

所以我的問題很混亂。像Facebook一樣,你有主頁。 登錄後,網址保持不變,但沒有看到登錄/註冊頁面,你會看到你的新聞提要等用MySql登錄後關於網站的常規db

我在我的網頁上使用PHP,我登錄後我會得到回聲味精「 您已經登錄!「 是否有可能通過網站上的新佈局重定向回主頁面,但URL可以保持不變?

<?php> 
require('nameofit.php'); 

if(isset($_POST['submit'])){ 
$Username = mysql_escape_string($_POST['Username']); 
$pass = mysql_escape_string($_POST['pass']); 
$pass = md5($pass); 

$sql = mysql_query("SELECT * FROM `users` WHERE `Username` = '$Username' AND `pass` = '$pass'"); 
if(mysql_num_rows($sql) > 0){ 
    echo "You're logged in."; 
    exit(); 
}else{ 
    echo "Wrong Username or Password, make sure you entered the right information."; 

} 

}else{ 


$form = <<<EOT 
<form action="login.php" method="post"> 
Username: <input type="text" name="Username" /><br /> 
Password: <input type="password" name="pass" /><br /> 
<input type="submit" name="submit" value="Login" /> 
</form> 
EOT; 
echo $form; 
} 

?> 
+2

是的,這是可能的。 – str

+0

你需要更具體的問題,請編輯。例如:你用什麼?框架?純PHP?你可以發佈你的代碼和登錄功能的例子嗎? –

+1

當你談論神奇的更新頁面而不離開頁面時,你正在談論AJAX,通常是jQuery或其他AJAX庫。出去和谷歌! –

回答

2

如果你的登錄操作是一個POST,你可以做到這一點與header

header('Location: ' . $_SERVER['HTTP_REFERER']); 

使用,你會重定向到上一頁

或者你可以設置任何你想要的:

header('Location: index.php'); 
header('Location: /index.php'); 
header('Location: http://www.yoursite.com'); 
header('Location: directory/whatever/page.php'); 

解決方案

if (mysql_num_rows($sql) > 0) { 
    header('Location: ' . $_SERVER['HTTP_REFERER']); 
} else { 
    echo "Wrong Username or Password, make sure you entered the right information."; 
} 

重要

不要那樣做。

不要在您的視圖中執行SELECT或其他任何數據庫。

按照good praticesalways update your knowledge,使用MVCPDO

+0

我認爲你需要一個位置標題的絕對URL或許多瀏覽器將失敗。 – ToBe

+0

我真的不知道,我現在檢查。 –

+0

@ user2654319你的問題解決了我的答案? –

0

成功登錄後,存儲用戶在會話中登錄的信息,並刷新頁面。 在主頁面上,首先檢查會話中是否存在關於用戶的任何信息。如果沒有 - 顯示登錄頁面,如果是 - 顯示常規內容,新聞或其他。

0
<?php 

    $logincookie = $_COOKIE['login']; 

    if($logincookie == 'value'){ 
     //MAIN PAGE 
    }else{ 
     //LOGIN PAGE 
    } ?> 
+0

請不要使用cookie作爲登錄狀態,因爲它可以很容易地顯示。改爲使用$ _SESSION。 – ToBe