php通过会话控制实现身份验证

身份验证应用程序主体:authmain.php

<?php
//开启一个会话
session_start();

if((!isset($userid))||(!isset($password))) {
    $userid=$_POST['userid'];
    $password=$_POST['password'];
//连接数据库
$db_conn=new mysqli("localhost", "root", "","auth");
if(mysqli_connect_errno()){
    echo '连接数据库失败:'.mysqli_connect_error();
    exit();
}
//执行SQL查询语句
$query="SELECT * FROM authorized_users WHERE name='".$userid."' and password=sha1('".$password."')";
$result=$db_conn->query($query);
if($result->num_rows>0){
    //注册一个会话变量
    $_SESSION['valid_user']=$userid;
}
//断开数据库连接
$db_conn->close();
}
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>身份验证</title>
</head>
<body>
<h1>主页</h1>
<?php
//判断用户是否已经登录
if(isset($_SESSION['valid_user'])){
    echo $_SESSION['valid_user'].',您好,你已经登录';
    echo '<a href="logout.php">退出登录</a><br/>';
}else{
    if(isset($userid)){
        echo '您没有登录成功';
    }else{
        echo '您还没有登录<br/>';
    }
    ?>
    <form method="post" action="authmain.php">
        <p>用户名:<input type="text" name="userid"></p>

        <p>密码:<input type="password" name="password"></p>

        <p><input type="submit" name="submit" value="登录"></p>
    </form>
<?php
}
?>
<br/>
<a href="members_only.php">登录进入</a>

</body>
</html>
显示效果:

  

网站的有效用户检查:members_only.php

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>身份验证</title>
</head>
<body>
<?php
//启用会话
session_start();

echo '<h1>会员有效</h1>';
if(isset($_SESSION['valid_user'])){
    echo "<p>".$_SESSION['valid_user'].",您好,您已经登录成功</p>";
    echo '<p>会员可享受折扣优惠</p>';
}else{
    echo '<p>您还没有登录成功</p>';
    echo '<p>只有登录成功才能查看此页</p>';
}
echo '<a href="authmain.php">返回主页</a>';
?>
</body>
</html>
显示的效果:



注销会话变量并销毁会话:logout.php

<?php
//启用会话
session_start();
$olduser=$_SESSION['valid_user'];
//注销会话变量
unset($_SESSION['valid_user']);
//销毁会话
session_destroy();
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>退出登录</title>
</head>
<body>
<h1>您退出登录了!</h1>
<?php
if(!empty($olduser)){
    echo '退出登录了<br/>';
}else{
    echo '您没有登录过,所以当然也不存在退出登录<br/>';
}
?>
<a href="authmain.php">返回主页</a>
</body>
</html>
显示效果:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值