蓝色水瓶子 2015-09-12 09:42 采纳率: 0%
浏览 2007
已采纳

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>

  • 写回答

4条回答 默认 最新

  • 斯洛文尼亚旅游 2015-09-12 10:20
    关注

    if(!isset($_POST['submit'])){exit('非法访问!');}

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 iOS绕地区网络检测
  • ¥15 python验证码滑块图像识别
  • ¥15 根据背景及设计要求撰写设计报告
  • ¥15 QT6颜色选择对话框显示不完整
  • ¥20 能提供一下思路或者代码吗
  • ¥15 用twincat控制!
  • ¥15 请问一下这个运行结果是怎么来的
  • ¥15 单通道放大电路的工作原理
  • ¥30 YOLO检测微调结果p为1
  • ¥15 DS18B20内部ADC模数转换器