极致网信息博客中心 Welcome to Guangxi phpjz.cn Information Technology Co., Ltd.

在PHP网站中用cookie自动登录

时间::2013-02-20    来源:本站     作者:wongshing 阅读次数:
在PHP中自动登录
实例说明
   所谓自动登录,即用户第一次成功登陆网站后,在一段时间内,再次登录该网站时不再需要填写用户名和密码,而是可以直接进入。
   运行本实例,如果是第一次登录,则需要填写用户名和密码才能够登录。如果是再次登录,那么就不需要输入用户名和密码,因为$_COOKIE会从COOKIE中读取这些信息,用户直接单击登录按钮即可。登录成功后进入main.php页面。
关键技术
  本功能实现的关键是COOKIE的创建、过期时间的设置和COOKIE值的获取。其中创建COOKIE应用的是setcookie()函数。
设计过程
  (1)创建index.php文件,创建表单,添加用户名、密码文本框和保持时间选择单选按钮。最关键的是编写PHP脚本,通过$_COOKIE获取COOKIE中存储的用户名和密码数据,并将其作为用户名和密码的默认值,其关键代码如下:
  <form id="form1"name="form1"method="post"action="index_ok.php">
  <input id="lgname"name="name"value="<?php echo$_COOKIE['name'];?>"type="text"class="txt"/>
  <input id="lgpwd"name="pwd"value="<?php echo $_COOKIE['pwd'];?>"type="password"class="txt"/>
  <input name="times"type="radio"value="3600"checked="checked"/>1小时
  <input type="radio"name="times"value="86400"/>1天
  <input type="image"name="imageField"src="images/dl.gif"/>
  <input type="image"name="imageField2"onclick="form.reset();return false;"src="images/cz.gif"/>
  </form>
  (2)创建index_ok.php文件,通过$_POST[]方法获取表单中提交的数据,验证用户输入的用户名和密码是否正确。如果正确,则通过setcookie()函数创建COOKIE,存储用户名和密码,并根据表单提交的时间设置COOKIE的过期时间,并跳转到main.php页面;如果不正确,则给出提示信息,并跳转到index.php页面,其关键代码如下:
  <?php
  if(!empty($_POST['name'])and!empty($_POST['pwd'])){      //判断用户名和密码是否为空
  if($_POST['name']=="mr"&& $_POST['pwd']=="mrsoft"){  
        setcookie("name",$_POST['name'],time()+$_POST['times']);   //设置COOKIE的有效时间为1小时
        setcookie("pwd",$_POST['name'],time()+$_POST['times']);   //设置COOKIE的有效时间为1小时
        echo"<script>alert('succeed!');window.location.href='main.php';</script>";
  }else{
        echo"<script>alert('false!');window.location.href='main.php';</script>";
  }
  }else{
        echo"<script>alert('NULL');window.location.href='main.php';</script>";
  }
  ?>
  (3)创建main.php文件,首先根据$_COOKIE获取的COOKIE值判断用户是否具有访问权限,如果有则可以看到本页内容,否则将给出提示信息,跳转到index.php页面,其关键代码如下:
  <?php
  if($_COOKIE[name]==""){    //根据COOKIE的值,判断浏览者是否具有访问该页面的权限
  echo"<script>alert('您具有访问该页面的权限!');window.location.href='index.php';</script>";
  }else{     //如果正确则输出主页内容
  ?>
  <!--省略了HTML内容-->
  <?php
  }
  ?>
秘笈心法
  COOKIE的优点。
  在使用COOKIE时,如果设置了COOKIE的过期时间,浏览器将会保存COOKIE数据,即使用户重新启动计算机,只要没有过期,COOKE数据就一直有效。
网站小编: 喜欢本站的话请大家把本站告诉给你朋友哦!地址是 www.phpjz.cn QQ群:134624762
web设计/网站开发
南宁网站建设版权所有
南宁网站建站首页 关于我们 联系我们 网站地图 南宁网站建设 网站制作 网页设计 广西网站优化 php建站

用户名:

密 码:

             忘记密码?