Php 正在获取var_dump(),但没有jquery操作/登录系统

Php 正在获取var_dump(),但没有jquery操作/登录系统,php,jquery,session,login,single-page-application,Php,Jquery,Session,Login,Single Page Application,checklogin.php <?php session_start(); $host="localhost"; // Host name $username="root"; // Mysql username $password="bonjour3"; // Mysql password $db_name="itit"; // Database name $tbl_name="members"; // Table name // Connect to server and sele

checklogin.php

<?php

session_start();

$host="localhost"; // Host name
$username="root"; // Mysql username
$password="bonjour3"; // Mysql password
$db_name="itit"; // Database name
$tbl_name="members"; // Table name

// Connect to server and select databse.
$mysqli = new mysqli("$host", "$username", "$password", "$db_name")or die("cannot connect");

// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

$sql = $mysqli->prepare("SELECT * FROM $tbl_name WHERE username=? and password=?");
$sql->bind_param('ss',$myusername,$mypassword);
$sql->execute();
$sql->store_result();//apply to prepare statement
$numRows = $sql->num_rows;
if($numRows === 1){
    $_SESSION['username'] = $myusername;
    var_dump($_SESSION['username']);
}
else 
{
    echo "Wrong Username or Password";
    session_destroy();
}
?>
登录后,jquery加载一个“login\u success.php”模板:

模板/login_success.php

<?php
session_start();
?>

<h1>Login Successful</h1>
<h2>Username: <? echo $_SESSION['username']?></h2>
<div id="logoutlinkdiv" >
    <a href = "#" >Log out</a>
</div>
我单击登录链接并查看:

POST http://localhost/~Eamon/checklogin.php 200 OK
GET jquery.js 304 Not Modified
GET application.js 304 Not Modified
GET http://localhost/~Eamon/templates/login_success.php 200 OK
GET http://localhost/~Eamon/templates/logout.php 200 OK
我单击注销链接并查看:

POST http://localhost/~Eamon/checklogin.php 200 OK
GET jquery.js 304 Not Modified
GET application.js 304 Not Modified
GET http://localhost/~Eamon/templates/login_success.php 200 OK
GET http://localhost/~Eamon/templates/logout.php 200 OK
然后我再次单击将我带到登录页面的链接,我看到:

GET http://localhost/~Eamon/ 200 OK
GET http://localhost/~Eamon/templates/indexforms.php 200 OK
GET http://localhost/~Eamon/templates/indexforms.php 200 OK
然后,我输入我的信息并再次登录,所有请求都被清除,我只看到:

POST http://localhost/~Eamon/checklogin.php 200 OK
我想我应该看到:

POST http://localhost/~Eamon/checklogin.php 200 OK
GET jquery.js 304 Not Modified
GET application.js 304 Not Modified

经过一点研究,我想我已经解决了…我不得不将jquery改为:

...

$(document).on("click", "#loginlinkdiv a", function(e) {
    e.preventDefault();
    location.reload();
    $("#main").load("templates/indexforms.php");
});

...

我认为application.js没有被执行(在第二次登录时),因为index.php没有在单击“loginlinkdiv”链接时重新加载脚本……我唯一能想到的方法是使用
location.reload()我认为它正在重新加载index.php,脚本正在被再次读取。任何能够解释这一点的人(或者可能会提出更好的答案)都会得到赞誉。

您是否在打开Chrome网络标签(或同等标签)的情况下尝试过这一点?当我第二次登录时,@ChrisHanson@firebug的net面板中,我只看到对checklogin.php的post调用-我应该看到对application.js的get请求…我认为是对indexforms.php的get请求(在jquery中会立即删除它…这只是为了在初次访问该站点时加载indexforms.php模板)。@ChrisHanson您可能了解了一些事情…我将更新我的问题,以显示firebug控制台在net选项卡下的过程中做了些什么
POST http://localhost/~Eamon/checklogin.php 200 OK
GET jquery.js 304 Not Modified
GET application.js 304 Not Modified
...

$(document).on("click", "#loginlinkdiv a", function(e) {
    e.preventDefault();
    location.reload();
    $("#main").load("templates/indexforms.php");
});

...