POSTmethod ve PHP-giriş doğrulama

1 Cevap

Ben .. Ben GET ile çıktı aldım giriş doğrulaması için bir kod yazdı. Daha secure.pls benim kodda herhangi bir hata varsa bana bildirin çünkü ama POST ile çıktı gerekir.

javascript kodu:

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";
}

?>

benim uyarı tüm görüntülenir değil çünkü doğrulama, hiçbir şey geri dönmez ... pls ne yanlış söyle ....

1 Cevap

Eğer herhangi bir hata varsa, doğrudan görmek için PHP sayfasına erişerek denediniz mi? Ayrıca, (Firefox için) Firebug kullanarak denemek isteyebilirsiniz, ya da Chrome geliştirici araçları isteği gerçekten gönderiliyor emin olun, ve sonucu inceleyin.

Passwword veritabanında bu şekilde yazıldığından, ya da sadece PHP bir yazım hatası mı?

- Kötü niyetli bir kullanıcının bazı kötü argümanlar geçmek ve veritabanı için kötü şeyler yapabileceğini kod SQL injection açıktır: şimdi size sorunlara neden olmaz ise son olarak, bu satır aşağı olabilir. Siz, örneğin, bir SQL sorgusunda kullanmadan önce $username kaçmak gerekiyor:

"SELECT ... WHERE userhandle = '" . mysql_real_escape_string($username) . "'"