注册PHP后自动登录


Auto login after registration PHP

我设计了一个网站,允许用户使用简单的html表单注册。我希望用户在验证注册后重定向到主页,并为新用户显示此消息"Account created",我在网上找到了很多答案,但都是旧的、不同的——这很令人困惑——我想找到最新、最有效的方法来做这件事。

这是我的登录代码

 <?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'];

执行此操作的方式与登录相同。您可以通过存储带有用户id的$_cookie或$_session值来进行登录。因此,注册后只需存储id并将其重定向到主页即可。在主页上查看食谱。如果cookie不存在,则意味着用户没有登录,您应该显示一个通用主页。如果用户设置了cookie,请使用userid获取有关并生成为该用户定制的页面。