Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查登录脚本PHPjQuery后不会发生任何事情_Php_Jquery_Login_Firebug - Fatal编程技术网

检查登录脚本PHPjQuery后不会发生任何事情

检查登录脚本PHPjQuery后不会发生任何事情,php,jquery,login,firebug,Php,Jquery,Login,Firebug,我正在尝试更正一个简单的登录脚本。当我执行“checklogin.php”脚本时(在被登录表单调用时)——什么都没有发生。我停留在index.php上,仍然可以看到表单(应该被一些jquery删除)。如果我打开firebug,我会看到: POST http://localhost/~Eamon/checklogin.php 200 OK 2ms jquery.js (line 8724) GET http://localhost/~Eamon/templates/login_success.p

我正在尝试更正一个简单的登录脚本。当我执行“checklogin.php”脚本时(在被登录表单调用时)——什么都没有发生。我停留在index.php上,仍然可以看到表单(应该被一些jquery删除)。如果我打开firebug,我会看到:

POST http://localhost/~Eamon/checklogin.php 200 OK 2ms  jquery.js (line 8724)
GET http://localhost/~Eamon/templates/login_success.php 302 Found 1ms   jquery.js (line 8724)
GET http://localhost/~Eamon/index.php 200 OK 1ms    
GET http://localhost/~Eamon/reqscripts/jquery.js?_=1371173056318 200 OK 1ms jquery.js (line 8724)
GET http://localhost/~Eamon/js/application.js?_=1371173056319 200 OK 0
没有任何错误,但我想知道这些“GET”请求是否都正确。它们中应该有一个是“POST”吗

这是我的密码:

index.php

<!DOCTYPE html>
<html>
<head>
<title>it IT</title>
<script src="reqscripts/jquery.js"></script>
<script src="js/application.js"></script>
</head>
<body>
<form id="login" method="post" action="checklogin.php">
    <h1>Member Login</h1>
    <p>Username:<input name="myusername" type="text" id="myusername"></p>
    <p>Password:<input name="mypassword" type="password" id="mypassword"></p>
    <input type="submit" name="Submit" value="Login">
</form>
</body>
</html>
模板/login_success.php

<?php
session_start();

if($_SESSION['username'] === null){
    header("location: ../index.php");
}
?>

<!DOCTYPE html>
<html>
<body>
<h1>Login Successful</h1>
<h2>Username: <? echo $_SESSION['username']?></h2>
<a href = "logout.php">Log out</a>
</body>
</html>

登录成功
用户名:
更新

以下是尝试登录后的源代码。我将试图说明为什么我认为$\u会话['username']从未被设置(但为什么?)


它
会员登录

用户名:

密码:

会员登记 用户名:

密码:

电邮:


请注意整个页面是如何在分区中的……但是在底部还有一个空的“showuser”div。这使我困惑。我认为,当表单调用checklogin.php时,出现了一些问题,用户永远不会保存在$\u会话['username']中。因此…当调用login_success.php时-$会话['username']设置为null…并且index.php(所有)在$.post请求上加载…因为根据login_success.php,$会话['username']为null时会发生这种情况。从本质上讲,login_success.php会在某个地方变成index.php。开导我吧

找到了答案,感谢@fattomhk的评论。我不得不将checklogin.php中的session_destroy()行放入else块中……如下所示:

...

else {
    echo "Wrong Username or Password";
    session_destroy();
}
?>

在checklogin.php脚本运行后,会话被破坏-因此会话用户名从未被设置…并且login\u success.php在加载页面之前检查用户名…如果没有用户名-它将加载index.php(这就是页面在登录时没有更改的原因)。

请检查网络选项卡,ajax响应是否返回500内部服务器错误?@Ohgod为什么网络选项卡在哪里?它在Firebug中,单击“网络”作为选项卡。它将显示您的请求,还将显示服务器返回的内容。@OhGod为什么不只看到任何错误<代码>304未修改,
200正常
,找到
302
。。。一些请求具有相同的状态。对帖子的响应显示在URL-200OK之后。随后的回复是302200200。
<?php
session_start();

if($_SESSION['username'] === null){
    header("location: ../index.php");
}
?>

<!DOCTYPE html>
<html>
<body>
<h1>Login Successful</h1>
<h2>Username: <? echo $_SESSION['username']?></h2>
<a href = "logout.php">Log out</a>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<body>
<div id="showuser">
  <title>it IT</title>
  <script src="reqscripts/jquery.js">
  <script src="js/application.js">
  <form id="login" action="checklogin.php" method="post">
  <h1>Member Login</h1>
    <p>
      Username: <input id="myusername" type="text" name="myusername">
    </p>
    <p>
      Password: <input id="mypassword" type="password" name="mypassword">
    </p>
  <input type="submit" value="Login" name="Submit">
  </form>
  <form id="register" action="checkreglogin.php" method="post">
  <h1>Member Registration</h1>
    <p>
      Username: <input id="rmyusername" type="text" name="rmyusername">
    </p>
    <p>
      Password: <input id="rmypassword" type="password" name="rmypassword">
    </p>
    <p>
      Email: <input id="myemail" type="text" name="myemail">
    </p>
    <input type="submit" value="Register" name="Submit">
  </form>
  <div id="showuser"></div>
</div>
</body>
</html>
...

else {
    echo "Wrong Username or Password";
    session_destroy();
}
?>