我写了一个用于登录验证的代码..我用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都没有显示我的警告......请告诉我,什么是错....
请开始通过反应等'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