2013-06-24 268 views
-2

我設計了一個網站,允許用戶使用簡單的html表單進行註冊。我希望用戶在驗證註冊後重定向到主頁併爲新用戶「創建賬戶」顯示此消息後,我在互聯網上找到了許多答案,但它們都是舊的和不同的 - 這很混亂 - 我會喜歡獲得最新和最有效的方式來做到這一點。註冊後自動登錄PHP

這是我的登錄代碼

<?php // rnlogin.php 
include_once 'rnheader.php'; 
echo "<h3>Member Log in</h3>"; 
$error = $user = $pass = ""; 
if (isset($_POST['user'])) 
{ 
$user = sanitizeString($_POST['user']); 
$pass = sanitizeString($_POST['pass']); 
if ($user == "" || $pass == "") 
    { 
    $error = "Not all fields were entered<br />"; 
    } 
    else 
     { 
     $query = "SELECT user,pass FROM rnmembers 
      WHERE user='$user' AND pass='$pass'"; 
    if (mysql_num_rows(queryMysql($query)) == 0) 
     { 
     $error = "Username/Password invalid<br />"; 
     } 
     else 
      { 
      $_SESSION['user'] = $user; 
      $_SESSION['pass'] = $pass; 
      die("You are now logged in. Please 
       <a href='rnmembers.php?view=$user'>click here</a>."); 
      } 
      } 
      } 
echo " <form method='post' action='rnlogin.php'>$error Username <input type='text' maxlength='16' name='user' 
      value='$user' /><br /> Password <input type='password' maxlength='16' name='pass' 
       value='$pass' /><br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
        <input type='submit' value='Login' /> </form>" 
?> 

,這是創建會話

include_once 'rnheader.php'; 
if (!isset($_SESSION['user'])) 
die("<br /><br />You must be logged in to view this page"); 
$user = $_SESSION['user']; 
+1

請將代碼添加到您的問題。 –

+0

我做了,但我認爲這不是重要的 – sabsab

+0

知道你在使用什麼以及你如何在當前工作是很重要的,否則,你可能會得到50個不同的正確答案。 – SpYk3HH

回答

3

在我的主頁的代碼你這樣做的方式做同樣的登錄。 您通過在用戶標識中存儲$ _cookie或$ _session值來進行登錄。 因此,註冊後只需存儲該ID並將其重定向到主頁。 在主頁上檢查cooke。如果Cookie不存在,則表示 用戶未登錄,您應顯示通用主頁。 如果用戶設置了cookie,請使用用戶標識從數據庫獲取有關他的數據,並生成爲該用戶定製的頁面。

+0

我編輯了問題先生你可以給更多的細節先生? – sabsab

+0

我用它來向他解釋......會話只是一個通過cookie實現的層。就我個人而言,我現在甚至不使用PHP。像CodeIgniter這樣的框架擁有自己的會話實現 –

+0

,但這比我發現LOL – sabsab