post方法中的错误

时间:2015-06-09 19:58:34

标签: php jquery

在POST中出现错误,我尝试发送变量登录思想加载,但是当我尝试在sea.php中收到它时,它给了我错误。

js code:

$(document).on('click','#sea_submit', function () {
    var login = $("input[name=log]").val();
    if (login != "")
    {
        $("#din_content").load("sea.php", {login:login});
        return false;
    }
});

php代码:

$login=stripslashes(strip_tags($_POST['login'])); //mistake here
// I tried  and like that $login = $_POST['login'];
if ((isset($login)) && (!empty($login)))
{
    $result=mysql_query("SELECT * FROM users WHERE Login='$login'",$db);
    if (empty($result))
    {
        printf("The user with login=".$login." not found");
    }
    else 
    {
        $row=mysql_fetch_result($result);
       //code
    }
}

Html代码:

<form>
 <div id="sea_cr_login">
        <h2 class="sea_names">Login:</h2>
        <div>
            <div class="sea_labels">                        
                <label class="sea_var">Login:</label>
                <input class="sea_ch" name="log" type="text" maxlength="16" size="10">
            </div>
        </div>
    </div>
    <div class="cleaner"></div>
    <div id="sea_sub">
        <input type="submit" value="sea" id="sea_submit">
    </div>  
</form>

1 个答案:

答案 0 :(得分:4)

您有(在OP编辑之前)错误匹配的变量名称。您正在发送login_sch,因此您必须更改此行:

$login=stripslashes(strip_tags($_POST['login_sch'])); //mistake here

理想情况下,您应该将行更改为使用mysql_real_escape_string(),因为它比您现在拥有的两个嵌套函数更有效:

$login = mysql_real_escape_string($_POST['login']);

Your script is at risk for SQL Injection需要尽快修复。

如果可以,你应该stop using mysql_* functions。它们不再被维护,而是officially deprecated。请转而了解prepared statements,并考虑使用PDO,it's really not hard

如果你打算建立自己的登录系统,你应该从适当的基础开始 - Use the proper methods to hash passwords with PHP