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

 

参考推荐:

PHP Session与Cookie详解

PHP中的Session和Cookie应用