开发者社区> 问答> 正文

PHP+MYSQL,我登陆之后,点击“注销”,为何会显示“非法访问”?

代码:

 <!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>欢迎来到XXX网</h1>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">           
    <span>邮箱:<input type="text" name="user_email"></span>
    <span>密码:<input type="text" name="user_pass"></span>
    <span>      <input type="submit" name ='submit' value="登陆"></span>
    <input type="button" onClick="location.href='register.php'" value="注册" />

</form>    

<?php
//开始登录
if(!isset($_POST['submit'])){exit('非法访问!');}
$user_email = htmlspecialchars($_POST['user_email']);
$user_pass = htmlspecialchars($_POST['user_pass']);
//包含数据库连接文件
include('conn.php');
//检测用户名及密码是否正确
$check_query = mysql_query("select user_id,user_nickname from users where user_email='$user_email' and user_pass='$user_pass' limit 1");
if($result = mysql_fetch_array($check_query))
{
    //登录成功
    @ session_start();
    $_SESSION['user_id'] = $result['user_id'];
    $_SESSION['user_email'] = $user_email;
    echo $result['user_nickname'].',欢迎你!---<a href="my.php">用户中心</a>   ';
    echo '<a href="index.php?action=logout">注销</a><br />';
    exit;
} 
    //登陆失败
else {exit('登录失败!点击此处 <a href="javascript:history.back(-1);">返回</a> 重试');}

    //注销登录
    if ( $_GET['action'] == "logout" && isset($_SESSION['user_id']) )
{
    echo '注销成功!点击此处 <a href="login.html">登录</a>';
    unset($_SESSION['user_id']);
    unset($_SESSION['user_email']);
    exit;
}
?>
</body>
</html>

展开
收起
小旋风柴进 2016-03-09 11:31:05 2471 0
1 条回答
写回答
取消 提交回答
  • if(!isset($_POST['submit'])){exit('非法访问!');}

    你不是post访问这个页面并且没有传递sumit参数,上面的代码就是true当然会自行die代码

    判断代码公用的时候注意要增加op参数什么的,判断是相关的操作在判断值是否存在什么的,而不是直接判断值,要不就出现你这种错误了

    2019-07-17 18:55:40
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载

相关镜像