如何实施"记住我"

时间:2015-02-28 06:04:53

标签: php remember-me

对不起,我问了一个之前被问过的问题,但是尽管已经阅读了所有这些问题,但我仍然感到很困惑。    我要做什么才能在我的网站中实现记住我的功能,作为我的最后一年项目。正在调用函数" setcookie()"一个人足够吗?

1 个答案:

答案 0 :(得分:2)

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不能设置,也可以在同一个浏览器操作中读取。

以最简单的方式实现。我将这些所有内容组合在一起以展示您的项目的方式是有一个带有html <form>的php页面,该页面会自行发布。

您的文件名将类似于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()函数之前,如果任何输出发生在网络浏览器中,setcookie()将无效。