POSTmethod和PHP-登录验证
我写了一个用于登录验证的代码..我用GET获得了输出。但我需要用POST输出,因为它更安全。如果我的代码中有任何错误,请告诉我。POSTmethod和PHP-登录验证
javascript代码:
var xml;
function verifyusernamepasswd(pass)
{
//pass is password that will be passed as parameter
xml=new XMLHttpRequest();
var url="http://localhost/loginvalidate.php";
var para="q="+username+"&p="+pass;//username is global
xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xml.setRequestHeader("Content-length", para.length);
xml.setRequestHeader("Connection", "close");
xml.open("POST",url,true);
xml.onreadystatechange=statechanged1;
xml.send(para);
}
function statechanged1()
{
if(xml.readyState==4)
alert(xml.responseText);
}
php code:
<?php
$username=$_POST["q"];
$password=$_POST["p"];
$con=mysql_connect("localhost","root","blaze");
if(!$con)
{
die('Could not connect: '.mysql.error());
}
mysql_select_db("BLAZE",$con) or die("No such Db");
$result=mysql_query("SELECT Passwword FROM USERTABLE WHERE Userhandle='$username'");
if($result==null)
echo "false";
else if($result!=null)
{
$row=mysql_fetch_array($result);
if((strcmp($row['Passwword'],$password)==0))
echo "true";
else
echo "false";
}
?>
验证不返回任何东西,COS都没有显示我的警告......请告诉我,什么是错....
你试过访问直接查看PHP页面是否有任何错误?您可能还想尝试使用Firebug(适用于Firefox)或Chrome中的开发人员工具,以确保请求实际上正在发送,并检查结果。
是Passwword
拼写在数据库中的方式,还是它只是在你的PHP错字?
最后,虽然它现在不会导致你的问题,但它可能会降低你的代码:你的代码容易受到SQL injection的影响 - 恶意用户可能会传递一些不合适的论点,并将不好的事情传递给你的数据库。你需要在SQL查询中使用它之前逃脱$username
,例如:
"SELECT ... WHERE userhandle = '" . mysql_real_escape_string($username) . "'"
是passwword拼写在我的分贝: - 这是一个拼写错误...我的php代码是正确的。我在本地主机上运行它,它给出了正确的输出......并感谢您关于sql注入的说明..它会有所帮助... – Neethusha 2010-03-20 22:04:09
另一件事是我试图回显$ username n的值,然后$密码php代码在开始。没有alert.so我认为参数r没有达到php代码.. – Neethusha 2010-03-20 22:06:27
你确定浏览器正在发送请求吗?使用Firebug/chrome开发工具/等。尝试提醒readyState的值,即使它不是4等。 – Chris 2010-03-20 22:23:49
请开始通过反应等'readyState's比4做一些调试 - 你可能会回来,解释什么是错的错误消息。这是通常的方式去做这样的事情,步骤调试的步骤。然后,可能需要查看像JQuery这样的JS框架,它使得AJAX调用更加容易:http://api.jquery.com/category/ajax/。然后,你有一个大的SQL注入,但我让你意识到已经在最后一个问题,所以我不重新发布链接在这里:) – 2010-03-20 21:53:11
但你认为格式都是正确的吗?像我不得不添加任何额外的东西,让POST工作吗?是的,我记得关于SQL注入..但我不认为这是问题在这里...因为只有很少的必要的变化,我用GET方法得到输出... – Neethusha 2010-03-20 21:57:17
好吧,看看通过你给的链接...但请张贴我与其他任何想到你的想法... – Neethusha 2010-03-20 21:59:23