php中session实现保存用户登录信息

session在php中是一个非常重要的东西,像我们用户登录一般都使用到session这个东西,相对于cookie来说session 要安全很多,同时我们财物车经常使用session来做临时的记录保存哦。

简单的创建session

代码如下

在该例子中,我们向 session 注册了一个名为 username 的变量,其值为 nostop 。

读取 session

php 内置的 $_session 变量可以很方便的访问设置的 session 变量。

代码如下

例子:

销毁 session

代码如下

session_unregister() 注销单个 session 变量
unset($_session[‘age’]); 用于注销以$_session[‘age’]注册的session变量
session_unset() 删除所有已注册的变量
session_destroy() 注销所有的session变量,并注销整个 session 会话

例子:

代码如下

看一个完整的session使用方法,

使用session来保存用户登录信息

代码如下

登录页面:login.php

代码如下

//如果用户未登录,即未设置$_session[‘user_id’]时,执行以下代码
if(!isset($_session[‘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’]));

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);
//若查到的记录正好为一条,则设置session,同时进行页面重定向
if(mysqli_num_rows($data)==1){
$row = mysqli_fetch_array($data);
$_session[‘user_id’]=$row[‘user_id’];
$_session[‘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

msimatch – log in

Posted in 未分类