在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>
答案 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。