PHP 记住密码自动登陆

本文介绍了如何在PHP中实现记住密码的自动登录功能。通过使用setcookie()函数设置cookie,当用户选择记住密码时,将用户名和密码保存在cookie中。在用户信息页面,检查session和cookie,若session为空但cookie存在,则用cookie值填充session,实现自动登录。同时,文章强调了自动登录的安全注意事项,如cookie的有效范围和信息加密。

PHP在登录的时候记住用户输入的密码在某些情况下是很有必要的,下面是一个小例子,希望对你有所帮助。

 

PHP setcookie() 函数

setcookie() 函数向客户端发送一个 HTTP cookie。

cookie 是由服务器发送到浏览器的变量。cookie 通常是服务器嵌入到用户计算机中的小文本文件。

每当计算机通过浏览器请求一个页面,就会发送这个 cookie

cookie 的名称指定为相同名称的变量。

例如,如果被发送的 cookie 名为 “name”,会自动创建名为 $user 的变量,包含 cookie 的值。

必须在任何其他输出发送前对 cookie 进行赋值。如果成功,则该函数返回 true,否则返回 false。

语法

setcookie(name,value,expire,path,domain,secure)
参数 描述
name 必需。规定 cookie 的名称。
value 必需。规定 cookie 的值。
expire 可选。规定 cookie 的有效期。
path 可选。规定 cookie 的服务器路径。
domain 可选。规定 cookie 的域名。
secure 可选。规定是否通过安全的 HTTPS 连接来传输 cookie。

 

登陆主页面 form.php

<form action=”login.php” method=”post”> 
    <label>用户名        <input type=”text” name=”username”></label>
    <label>密  码    <input type=”text” name=”password”></label></br>
    <label>记住密码    <input type=”checkbox” name=”jizhu” value=”1″></label></br>
    <input type=”submit”> 
</form> 

<a href=”userinfo.php”>用户信息</a> 
<?php 
    session_start(); 
    function p($arr){ 
        echo “<pre>”; 
        print_r($arr); 
        echo “</pre>”; 
    } 
    p($_SESSION); 
    p($_COOKIE); 
?> 

 

登录检查页面 (login.php)

<?php 
function p($arr){ 
    echo “<pre>”; 
    print_r($arr); 
    echo “</pre>”; 

session_start(); 
//p($_POST); 
$_SESSION[‘username’] = $_POST[‘username’]; 
$_SESSION[‘password’] = $_POST[‘password’]; 

if($_POST[‘remember’]){ 
    setcookie(‘username’,$_POST[‘username’],time()+60); 
    setcookie(‘password’,$_POST[‘password’],time()+60); 

header(“location:form.php”); 

 

用户信息页面 userinfo.php

<?php 
    function p($arr){ 
        echo “<pre>”; 
        print_r($arr); 
        echo “</pre>”; 
    } 
    
    session_start(); 
    echo “先关闭浏览器,在访问form.php 试试,然后 点推出在关闭浏览器试试”; 
    p($_SESSION); 
    p($_COOKIE); 
    if(empty($_SESSION[‘username’])){ 
        if(empty($_COOKIE[‘username’])){ 
            echo “<a href=’form.php’>请先登录</a>”;exit; 
        }else{ 
            $_SESSION[‘username’] = $_COOKIE[‘username’]; 
        } 
    } 
?> 

<a href=”updateuserinfo.php”>修改信息</a> 
<a href=”logout.php”>退出登陆</a> 

 

退出登陆页面 logout.php

<?php 
    session_start(); 
    unset($_SESSION[‘username’]); 
    unset($_SESSION[‘password’]); 
    
    setcookie(‘username’,”,0); 
    setcookie(‘password’,”,0); 
    
    header(“location:form.php”); 
?> 

 

修改用户信息页面 updateuserinfo.php

<?php 
    session_start(); 
    if(empty($_SESSION[‘username’])){ 
        echo “请先登录”; 
    }else{ 
        echo “这里是信息”; 
    } 
?> 

 

自动登陆注意点

1. setcookie 设置cookie只在当前文件夹及子文件夹有效,父文件夹是无效的,因此登陆记录登陆用户和密码,一定要在根目录下记住cookie,这也是网上很对反应无法记住cookie的原因所在!

2. cookie在关闭浏览器后,再登陆时仍然记住;session在关闭浏览器后,保存值自动丢失。

3. 自动登陆,安全做法是cookie记住用户和密码的登陆信息,并查询数据库进行校验,session记住登陆后的用户信息,切记对信息加密。

 

自动登陆网站实例

米扑代理: http://proxy.mimvp.com

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值