如何实施 "Remember me"

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

但是 'next pageload' 部分很重要,因为 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() 函数之前 any 输出发生在网络浏览器上,setcookie() 将不起作用。