首页 > php代码 > php中利用session验证登录表单

php中利用session验证登录表单

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

登录页面是:

<!doctype html>
<html>
<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=" ? phper / php - cy / login . html";},1000);
</script>";
    }
} else {
    echo "表单填写不完整";
    echo "<script>
alert('表单填写不完整');
setTimeout(function(){window.location.href=" ? phper / php - cy / login . html";},1000);
</script>";
}
?>

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

<!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();
?>


教程链接:http://www.phprm.com/code/89691.html

随意转载~但请保留教程地址★

标签:none

发表留言