澳门新葡萄京官网注册 2

澳门新葡萄京官网注册php中使用cookie来保存用户登录信息的实现代码

本文实例讲述了php使用cookie保存用户登录的用户名的方法。分享给大家供大家参考。具体实现方法如下:

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

使用cookie保存页面登录信息

用户登录文件:login.php
复制代码 代码如下:

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

1、数据库连接配置页面:connectvars.php
复制代码 代码如下:
//数据库的位置
define(‘DB_HOST’, ‘localhost’);
//用户名
define(‘DB_USER’, ‘root’);
//口令
define(‘DB_PASSWORD’, ‘19900101’);
//数据库名
define(‘DB_NAME’,’test’) ;
?>

用户登录

一、检查用户是否登录
复制代码 代码如下:
//检查用户是否登录
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里面 
     } 
     } 
     } 
}

2、登录页面:logIn.php
复制代码 代码如下:
//插入连接数据库的相关信息
require_once ‘connectvars.php’;

function getCookieUsername(){
 if(empty($_COOKIE[‘username’])){
  return “”;
 }else{
  return $_COOKIE[‘username’];
 }
}
?>

二,用户提交登录信息
复制代码 代码如下:
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”); 


}

$error_msg = “”;
//判断用户是否已经设置cookie,如果未设置$_COOKIE[‘user_id’]时,执行以下代码
if(!isset($_COOKIE[‘user_id’])){
if(isset($_POST[‘submit’])){//判断用户是否提交登录表单,如果是则执行如下代码
$dbc = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);
$user_username =
mysqli_real_escape_string($dbc,trim($_POST[‘username’]));
$user_password =
mysqli_real_escape_string($dbc,trim($_POST[‘password’]));

用户名:

三,当用户点退出时,清出记录登录状态
复制代码 代码如下:
//退出登录
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); 

}

if(!empty($user_username)&&!empty($user_password)){
//MySql中的SHA()函数用于对字符串进行单向加密
$query = “SELECT user_id, username FROM mismatch_user WHERE username =
‘$user_username’ AND “.”password = SHA(‘$user_password’)”;
//用用户名和密码进行查询
$data = mysqli_query($dbc,$query);
//若查到的记录正好为一条,则设置COOKIE,同时进行页面重定向
if(mysqli_num_rows($data)==1){
$row = mysqli_fetch_array($data);
setcookie(‘user_id’,$row[‘user_id’]);
setcookie(‘username’,$row[‘username’]);
$home_url = ‘loged.php’;
header(‘Location: ‘.$home_url);
}else{//若查到的记录不对,则设置错误信息
$error_msg = ‘Sorry, you must enter a valid username and password to
log in.’;
}
}else{
$error_msg = ‘Sorry, you must enter a valid username and password to
log in.’;
}
}
}else{//如果用户已经登录,则直接跳转到已经登录页面
$home_url = ‘loged.php’;
header(‘Location: ‘.$home_url);
}
?>

密码:

四、简洁版实例
复制代码 代码如下:

Mismatch – Log In

是否保存用户名:

//读取COOKIE的用户名和密码的值即可
if($_COOKIE[‘uname’]!=”){$CKUNAME =  $_COOKIE[‘uname’];}
if($_COOKIE[‘pwd’]!=”){$CKPWD =  $_COOKIE[‘pwd’];}
echo $CKUNAME;
echo ‘
‘;
echo $CKPWD;
?>

Msimatch – Log In

if(empty($_COOKIE[‘user_id’])){
echo ‘

‘.$error_msg.’

‘;
?>

Log In

Username:

value=”

” />

Password:

}
?>

效果图:

澳门新葡萄京官网注册 1

3、登入页面:loged.php
复制代码 代码如下:

//已登录页面,显示登录用户名
if(isset($_COOKIE[‘username’])){
echo ‘You are Logged as ‘.$_COOKIE[‘username’].’
‘;
//点击“Log Out”,则转到logOut.php页面进行cookie的注销
echo ‘Log
Out(‘.$_COOKIE[‘username’].’)’;
}
/**在已登录页面中,可以利用用户的cookie如$_COOKIE[‘username’]、
* $_COOKIE[‘user_id’]对数据库进行查询,可以做好多好多事情*/
?>

效果图:

澳门新葡萄京官网注册 2

4、注销cookie页面:logOut.php(注销后重定向到lonIn.php)
复制代码 代码如下:

/**cookies注销页面*/
if(isset($_COOKIE[‘user_id’])){
//将各个cookie的到期时间设为过去的某个时间,使它们由系统删除,时间以秒为单位
setcookie(‘user_id’,”,time()-3600);
setcookie(‘username’,”,time()-3600);
}
//location首部使浏览器重定向到另一个页面
$home_url = ‘logIn.php’;
header(‘Location:’.$home_url);
?>

后台文件:admin.php
复制代码 代码如下:
if(!empty($_POST[‘sub’]) && $_POST[‘username’]==”admin”){
 echo “欢迎”.$_POST[‘username’].” 登录成功”;
 if(!empty($_POST[‘yes’])){
  setCookie(“username”,$_POST[‘username’],time()+3600*24*30);
 }else{
  setCookie(“username”,””,time()-10);
 }
}else{
 echo “你的账号错误,请重新输入
“;
}
echo “返回登录页面”;
?>

           type=”password” name=”pwd” id=”pwd” value=”=$CKPWD;?>”
/>        name=”remember” type=”checkbox” value=”1″
if($CKUNAME!=”){?>
       checked=”checked” } ?> /> 记住我!        id=”button”
value=”登录” />

希望本文所述对大家的php程序设计有所帮助。

//登录,将用户名和密码存入到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);
    }
}
?>

发表评论

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