php / jquery简单登录系统

时间:2013-06-15 17:32:17

标签: php jquery forms session login

我正在尝试创建单页应用。成功登录后,将显示一个成功页面(login_success.php),其中包含指向注销的链接。当您单击注销链接时,我希望它清空“main”div,并将logout.php(“您已经注销”页面)插入“main”div。但是,当我单击注销链接时,没有任何反应。 JS / application.js中

$(document).ready(function() {
    $("#logoutlinkdiv a").click(function(event) {
        event.preventDefault();
        $("#main").empty();
        $("#main").load("templates/logout.php");
        alert("working");
   });
});

警报永远不会被执行......

模板/ 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>
<div id="logoutlinkdiv">
<a href = "#">Log out</a>
</div>
</body>
</html>

的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>
<div id="main"></div>
</body>
</html>

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;
}
else {
    echo "Wrong Username or Password";
    session_destroy();
}
?>

4 个答案:

答案 0 :(得分:0)

function(event)内添加事件。否则将执行默认的href =“#”。

  $("#logoutlinkdiv a").click(function(event) {
            event.preventDefault();
            ....
    }

答案 1 :(得分:0)

尝试:

    $("#main").load("templates/logout.php", function() {
        alert("working");
 });

确保文件的路径正确

答案 2 :(得分:0)

想出来......事实证明我的application.js脚本在登录时没有运行 - 我不得不将它添加到login_success.php html头部。有谁知道为什么呢?

我改变了这个:

<?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>
<div id="logoutlinkdiv" > <!--onclick='swap()'> -->
    <a href = "#" >Log out</a>
</div>
</body>
</html>

到此:

<?php
session_start();

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

<html>
<script src="js/application.js"></script>
<body>
<h1>Login Successful</h1>
<h2>Username: <? echo $_SESSION['username']?></h2>
<div id="logoutlinkdiv" > <!--onclick='swap()'> -->
    <a href = "#" >Log out</a>
</div>
</body>
</html>

有谁知道为什么我必须在此页面上加载脚本?我正在尝试创建一个单页应用程序...所以我不想在整个地方重新加载脚本。

答案 3 :(得分:0)

这是因为login_success.php是一个单独的静态页面,因此在重定向时你需要你的jQuery文件。