0

一旦用户登录,我想使用 jQuery 清空内容 div 并将另一个页面加载到该 div 中。

我使用单击按钮后的正常工作方式:

$(document).ready(function() {
    $("#login").click(function() {
        $("#content").empty();
        $("#content").load("DIS-loginform.php");
    });
});

我不希望单击任何内容以在我的内容 div 中加载另一个页面。

这是我主页侧边栏中的登录脚本,因此一旦登录,它将输出用户的用户名,

<?php  //LOGIN PHP SCRIPT
    $login = $_POST['username'];
    $loginpass =$_POST['password'];
    if((isset($login)) || (isset($loginpass))){
        include("DIS-connect.php");
        $query = "SELECT * FROM user WHERE username='$login' and password=('$loginpass')";
        $result = mysql_query($query) or die($query."<br/><br/>".mysql_error());
        $count = mysql_num_rows($result);
        //echo $count;
        if($count >0){
            echo "Logged in as <button id='user' value='$login'>$login</button>";
            $_SESSION['valid_user'] = $login;
        }
        else{
            echo "<p>sorry login failed</p>";
        }
    }
// LOGIN PHP END ?> `

这是我的简单登录表单,当登录选项被选中时,它会加载到我的主页的内容 div 中。

<div id="login">
    <form name="login" action="DIS-home.php" method="POST" 
                onSubmit="return confirm('Continue with Login?');">
        <table border="1">
            <tr>
                <th>Username</th><td><input name="username" type="text" id="username" /></td>
            </tr>
    <tr>
        <th>Password</th><td><input name="password" type="password" id="password" /></td>
    </tr>
        </table>
        <input type="submit" name="Submit" value="Login" id="loginbutton" />
    </form>
</div>
4

1 回答 1

0

如果您不想点击任何内容,请使用

$(document).ready(function() {
    $("#content").empty();
    $("#content").load("DIS-loginform.php");
});

代替

$(document).ready(function() {
    $("#login").click(function() {
        $("#content").empty();
        $("#content").load("DIS-loginform.php");
    });
});

而且我认为您最好更改您的 SQL 查询,因为它不保存(SQL 注入)!同样在查询中:密码值上没有散列或其他东西?所以也许考虑使用 MD5 或 SHA2 加密?

我目前看到的最后一件事:

而不是使用:

if($count >0)

利用

if($count == 1)

这可以防止黑客使用返回多行的 SQL 注入进行登录。

例如:

我可以不使用密码和这个用户名登录:

' or 'test'='test' -- '

因为它会得到所有用户的结果,并且查询中的密码部分将被注释掉。

于 2013-04-15T04:17:39.250 回答