服务报价 | 域名主机 | 网络营销 | 软件工具| [加入收藏]
 热线电话: #
当前位置: 主页 > php教程 > php教程 >

php中利用session验证登录表单

时间:2016-09-20 11:31来源:未知 作者:最模板 点击:
前段时间在做一个中奖的活了,其中就用到中奖之后把数据写入session 然后再由用户进行数据提交验证了,下面我们要介绍的不是那个例子而一个差不多例子了,具体如下。 登录页面是

前段时间在做一个中奖的活了,其中就用到中奖之后把数据写入session 然后再由用户进行数据提交验证了,下面我们要介绍的不是那个例子而一个差不多例子了,具体如下。

登录页面是:

php;auto-links:false;"><!doctype html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<title>登陆</title> 
</head> 
<body> 
<form name="login" action="login.php" method="post"> 
姓名:<input type=text name="name"><br/> 
密码:<input type=password name="password"><br/> 
<!-- <input type="radio" name="limits" value="1">管理员 --> 
<!-- <input type="radio" name="limits" value="0">普通用户 --> 
<input type="submit" name="submit" value="登录"> 
</form> 
</body> 
</html>

存储session的页面:

<?php 
header("Content-Type: text/html; charset=utf8"); 
if( !isset($_POST["submit"]) ){ 
die("错误执行"); 
}//检测是否有submit操作 
 
require_once('connect.php');//链接数据库 
 
if ( isset($_POST['name']) && isset($_POST['password']) ){//如果用户名和密码都不为空 
 
$name = $_POST['name']; 
 
$password = $_POST['password']; 
 
$sql = " SELECT id, limits, message FROM user WHERE username = '$name' AND password = '$password' LIMIT 1"; 
 
$result = mysqli_query( $con , $sql );//执行sql 用户名和密码 
 
$rows = mysqli_num_rows( $result );//返回用户名密码是否存在 
 
if( $rows != 0 ){ 
 
session_start(); 
 
while( $rows_other = mysqli_fetch_assoc($result) ){ 
 
$_SESSION['id'] = $rows_other['id']; 
$_SESSION['name'] = $name; 
$_SESSION['limits'] = $rows_other['limits']; 
$_SESSION['message'] = $rows_other['message']; 
 
} 
 
header("refresh:0;url=welcome.php");//跳转至welcome.html页面 
 
exit; 
 
}else{ 
 
echo "用户名或密码错误"; 
 
echo "<script> 
alert('用户名或密码错误'); 
setTimeout(function(){window.location.href='login.html';},1000); 
</script>"; 
 
} 
 
}else{ 
 
echo "表单填写不完整"; 
//phpfensi.com 
echo "<script> 
alert('表单填写不完整'); 
setTimeout(function(){window.location.href='login.html';},1000); 
</script>"; 
 
} 
?>

登陆后跳转的页面,根据不同的用户显示不同的权限和用户名:

<?php 
 
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Document</title> 
</head> 
<body> 
 
<?php 
 
session_start(); 
 
if( isset($_SESSION['id']) ){ 
 
require_once('connect.php'); 
 
$id = $_SESSION['id']; 
$name = $_SESSION['name']; 
$limits = $_SESSION['limits']; 
$message = $_SESSION['message']; 
 
if( $limits == 1 ){ 
 
echo 'hello, 管理员' . '<br/>'; 
 
}else{ 
 
echo 'helo, 普通用户' . '<br/>'; 
} 
 
echo 'hello you name is:' . $name; 
 
}else{ 
 
echo '未登录!'; 
 
header("refresh:3;url=login.html"); 
 
} 
?> 
 
  
</body> 
</html> 
?>

使用session注意事项

1.在当前页面要使用session时我们在文件最前面没有输入内容时加上session_start();

2.session有一个时间限制的这个我们可以进行修改的,具体如下

其实PHP5 Session还提供了一个函数 session_set_cookie_params(); 来设置PHP5 Session的生存期的,该函数必须在 session_start() 函数调用之前调用:

<?php 
    // 保存一天 
    $lifeTime = 24 * 3600; 
    session_set_cookie_params($lifeTime); 
    session_start(); 
?>
(责任编辑:最模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------