jag försöker skapa en sida som kombinerar Ajax och PHP. När man skrivit in användarnamn och lösenord och trycker på knappen, ska losenordskoll.php kolla att användarnamn och lösenord är de rätta. Därefter ska ett av två meddelanden läsas in av ett script i HTML-filen, och skrivas ut i en div-tagg där.
Mitt problem är att värdena anvandarnamn och losenord aldrig förs över till PHP, så den skickar alltid tillbaka felmeddelandet. Vad är det jag har missat?
<?php
//kontrollerar förväntade användarnamn och lösenord
if ( ($_GET['anvandarnamn'] == "per") && ($_GET['losenord'] == "1234") )
{
echo "Detta är ett superhemligt meddelande";
}
else {
echo "Du måste ange rätt användarnamn och lösenord";
}
?>
och asynkron.js, som refereras till:
function hamtaFranServern(url, handelsehanterare)
{
var XHRobjekt = null;
try {
XHRobjekt = new XMLHttpRequest(); // Firefox, Opera, ...
}
catch(err1) {
try {
XHRobjekt = new ActiveXObject("Microsoft.XMLHTTP");// Några IE ver
}
catch(err2) {
try {
XHRobjekt = new ActiveXObject("Msxml2.XMLHTTP"); // Några IE ver
}
catch(err3) {
XHRobjekt = false;
}//catch 3
}//catch 2
}//catch 1
if (XHRobjekt)
{
XHRobjekt.onreadystatechange = function()
{
if (XHRobjekt.readyState == 4)
{
handelsehanterare(XHRobjekt);
delete XHRobjekt; //städar upp
XHRobjekt = null; //referensen pekar nu på null
}//if
}//slut på den anonym funktion som körs när tillståndet i XHR ändras
XHRobjekt.open("GET", url);
XHRobjekt.send(null);
}//if objekt existerar
}//slut på funktionen hamtaFranServern()
Ingenstans i koden på serversidan behandlar du ju användarnamn/lösenord alls. Användarnamnet flyttar sig inte magiskt in i AJAX-anropet, utan detta måste din kod göra.
Om du bara vill få godkänt på uppgiften bör följande kod göra susen. Sen finns det problem med koden i sin nuvarande utformning. Tex borde du använda en POST-request istället för en GET-request för en sådan sak som lösenord.
var anvandarnamn_esc = escape(document.getElementById('anvandarnamn').value);
var losenord_esc = escape(document.getElementById('losenord').value);
XHRobjekt.open("GET", url + '?anvandarnamn=' + anvandarnamn_esc + '&losenord=' + losenord_esc);