以下 $username, $password 分别指用户名和密码,$sitekey 为站点扰码。

要实现记住密码自动登录的功能我们大多数据都是利用了客户端的cookies来实现,我们利用php也不例外,有需要的朋友可以参考一下。

我们先来看个最简单的实例

  密码设置

php制作记住密码自动登录的解决思路,其实也就是对session,cookies的操作

以下附简单的login.htm内容

<input type=”password” name=”passwd” />
<input type=”hidden” name=”t_code0″ />

一、检查用户是否登录

 代码如下

  提交的时候,使用 javascript 处理

复制代码 代码如下:

<html>
<body>
<form name=”login”
action=”login.php”
method=post>
用户名<input type=text name=”name”>
<p>密码<input type=password name=”password”>
<p>
<input name=”log” type=submit value=”登录”>
</form>
</body>
</html>

t_code0.value = md5 (username.value “|” passwd.value);
passwd.value = ”;

//检查用户是否登录
function checklogin(){ 
金沙娱樂城,     if(empty($_SESSION[‘user_info’])){   
//检查一下session是不是为空 
     if(empty($_COOKIE[‘username’]) ||
empty($_COOKIE[‘password’])){ 
//如果session为空,并且用户没有选择记录登录状 
    
header(“location:login.php?req_url=”.$_SERVER[‘REQUEST_URI’]); 
//转到登录页面,记录请求的url,登录后跳转过去,用户体验好。 
}else{   //用户选择了记住登录状态 
     $user =
getUserInfo($_COOKIE[‘username’],$_COOKIE[‘password’]);  
//去取用户的个人资料 
     if(empty($user)){    //用户名密码不对没到取到信息,转到登录页面 
    
header(“location:login.php?req_url=”.$_SERVER[‘REQUEST_URI’]); 
     }else{ 
     $_SESSION[‘user_info’] = $user;  
//用户名和密码对了,把用户的个人资料放到session里面 
     } 
     } 
     } 
}

login.php内容如下:

  假如提交的 passwd 有值或 t_code0 为空,设置密码失败;

二,用户提交登录信息

 代码如下

  t_code0 的值保存到数据库的 save_pwd 字段中;

复制代码 代码如下:

<?
error_reporting(0);
$mysql_servername = “localhost”;
//主机地址
$mysql_username = “root”;
//数据库用户名
$mysql_password =””; //数据库密码
$mysql_database =”peng”; //数据库
mysql_connect($mysql_servername , $mysql_username ,
$mysql_password);
mysql_select_db($mysql_database);
$name=$_POST[‘name’];
$passowrd=$_POST[‘password’];

  密码校验

username = trim($_POST[‘username’]); 
$password = md5(trim($_POST[‘password’])); 
$validatecode = $_POST[‘validateCode’]; 
$ref_url = $_GET[‘req_url’]; 
$remember = $_POST[‘remember’]; 
 
$err_msg = ”; 
if($validatecode!=$_SESSION[‘checksum’]){ 
$err_msg = “验证码不正确”; 
}elseif($username==” || $password==”){ 
$err_msg = “用户名和密码都不能为空”; 
}else{ 
$row = getUserInfo($username,$password); 
 
if(empty($row)){ 
$err_msg = “用户名和密码都不正确”; 
}else{ 
$_SESSION[‘user_info’] = $row; 
if(!empty($remember)){    
//如果用户选择了,记录登录状态就把用户名和加了密的密码放到cookie里面 
setcookie(“username”, $username, time()+3600*24*365); 
setcookie(“password”, $password, time()+3600*24*365); 

if(strpos($ref_url,”login.php”) === false){ 
header(“location:”.$ref_url); 
}else{ 
header(“location:main_user.php”); 


}

if ($name && $passowrd){
 $sql = “SELECT * FROM liuyanban WHERE name = ‘$name’ and
password=’$passowrd'”;
 $res = mysql_query($sql);
 $rows=mysql_num_rows($res);
  if($rows){
   header(“refresh:0;url=a.htm”);//跳转页面,注意路径
   exit;
 }
 echo “<script
language=javascript>alert(‘用户名密码错误’);history.back();</script>”;
}else {
 echo “<script
language=javascript>alert(‘用户名密码不能为空’);history.back();</script>”;
}

  1. 用户端申请登录
  服务器生成随机码 $sid,保存到 $_SESSION[sid]
中,同时传递给用户;

三,当用户点退出时,清出记录登录状态

?>

  表单

复制代码 代码如下:

下面还有一个我刚学php 是写的

<input type=”hidden” name=”sid” value=”…” />
<input name=”username” />
<input type=”password” name=”passwd” />
<input type=”hidden” name=”t_code” />

//退出登录
function logout(){ 
unset($_SESSION[‘user_info’]); 
if(!empty($_COOKIE[‘username’]) ||
!empty($_COOKIE[‘password’])){ 
setcookie(“username”, null, time()-3600*24*365); 
setcookie(“password”, null, time()-3600*24*365); 

}

金沙娱樂城 1

  2. 用户输入用户名和密码,提交的时候,使用 javascript 处理

四、简洁版实例

这是一个登录页面的效果图,其它登陆别名与密码

var t = md5 (username.value “|” passwd.value);
t_code.value = md5 (sid “|” t);
passwd.value = ”;
  3. 服务器端判定
  假如 username 为空 或 passwd 非空 或 t_code 为空,返回登录页;
  如没有 $_SESSION[sid],返回登录页;

复制代码 代码如下:

 代码如下

[php]

<?
//读取COOKIE的用户名和密码的值即可
if($_COOKIE[‘uname’]!=”){$CKUNAME =  $_COOKIE[‘uname’];}
if($_COOKIE[‘pwd’]!=”){$CKPWD =  $_COOKIE[‘pwd’];}
echo $CKUNAME;
echo ‘<br>’;
echo $CKPWD;
?>
<form id=”form1″ name=”form1″ method=”post” action=””>
    <input type=”text” name=”uname” id=”uname”
value=”<?=$CKUNAME;?>” /> <input
       type=”password” name=”pwd” id=”pwd” value=”<?=$CKPWD;?>”
/> <input
       name=”remember” type=”checkbox” value=”1″ <?
if($CKUNAME!=”){?>
       checked=”checked” <? } ?> /> 记住我! <input
type=”submit” name=”button”
       id=”button” value=”登录” />
</form>
<?
//登录,将用户名和密码存入到COOKIE
if($_POST[‘button’]!=”){
    $uname = $_POST[‘uname’];
    $pwd = $_POST[‘pwd’];
    //如果输入的加密密码和COOKIE中不一样,那么就加密
    if($pwd!=$CKPWD){$pwd = md5($pwd);}
    $remember = $_POST[‘remember’];
    if($remember==1){
       setcookie(“uname”, $uname, time()+3600*24*30);
       setcookie(“pwd”, $pwd, time()+3600*24*30);
    }
}
?>

<input name=”myname” type=”text” id=”myname” style=”border:solid
0px;” />

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注