如何实施“;记住我”;


How to implement "Remember me"

很抱歉,我问了一个以前问过的问题,但尽管我读了所有的问题,我仍然不知道该怎么办。我到底要做些什么才能在我的网站上实现记住我的功能,我正在建设我的最后一年项目。单独调用函数"setcookie()"是否足够?

setCookie()就是您所需要的全部。

你可以这样使用它:

$cookie_value = 'MyUsername';
$cookie_expire = time() + 60*60*24*365;// 365 days
$cookie_path = '/';
setcookie('remember_me',$cookie_value, $cookie_expire, $cookie_path);

在下一次页面加载时,您可以使用获取remember_me cookie值

$_COOKIE['remember_me'];

但"下一页加载"部分很重要,因为PHP cookie不能在同一浏览器操作中设置和读取。

以最简单的方式。我将所有这些放在一起为您的项目进行演示的方法是,有一个php页面,其中包含一个发布到自己身上的html <form>

您的文件名应该类似于my_form.php

里面会是:

<?php
//   If we received a username from the form, remember it for a year.
if( $_POST['username'] ):
     setcookie('remember_me',$_POST['username'], time()+60*60*24*365, '/');
endif;
?>

<?php
//  Display a message if the user is remembered.
if( isset($_COOKIE['remember_me']) ):
     echo '<h2>Welcome back, '.$_COOKIE['remember_me'].'!</h2>';
endif;
?>

<form action="" method="post">
<input name="username" type="text" placeholder="Your Username" value="<?php echo $_COOKIE['remember_me'] ?>" required />
<button type="submit">Remember me</button>
</form>

此表单自行提交。如果你看到你刚刚在欢迎信息中输入的用户名,那么它就是在记住你。

非常重要!PHP中的setcookie()调用必须是my_form.PHP文件中的第一个调用。否则,如果在调用setcookie()函数之前,web浏览器出现任何输出,则setcookie()将无法工作。