2014-01-11 5 views
-1

Все, здесь я объясняю свою проблему (насколько я был красным, я не нашел никакого рабочего решения). здесь я связываю мои файлы:метод ajax post и php

progetto.html

<html> 
<head> 
    <script type="text/javascript" src="funzioni.js"></script> 
    <title>Pagina iniziale</title> 
</head> 
<body align='center'> 
    <p>Gymnasium</p> 
    <p>icona</p> 
    <form id="ajaxForm" name="ajaxForm"> 
     <table align="center"> 
      <tr> 
       <td><label>Utente</label></td> 
       <td><input type="text" name="user" id="user" value="" /></td> 
      </tr> 
      <tr> 
       <td><label>Password</label></td> 
       <td><input type="password" name="password" id="password" value="" /></td> 
      </tr> 
     </table> 
     <input type="button" id="submit" name="submit" value="Accedi" onclick='submitForm()' /> 
    </form> 
    <div id="risultato"></div> 
</body> 

файла JavaScript

function createXMLHttpRequestObject(){ 
if (window.XMLHttpRequest) { return new XMLHttpRequest(); } 
if (window.ActiveXObject) { return new ActiveXObject(Microsoft.XMLHTTP); } 
return null; 

}

function submitForm(){ 
var ajax = createXMLHttpRequestObject(); 
ajax.onreadystatechange = function() { 
         if (ajax.readyState==4 && ajax.status==200){ 
         var response = ajax.responseText; 
         document.getElementById("risultato").innerHTML = response; 
        } 
       } 
ajax.open("post", "ajaxLogin.php", true); 
var data = "utente=" + document.getElementById('user').value + "&password=" + document.getElementById('password').value; 
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
ajax.send(data); 

}

ajaxLogin.php

<?php 
if (!isset($_POST["user"]) || !isset($_POST["password"])){ 
    die("Bad login"); 
} 
$user = $_POST['user']; 
$pwd = $_POST['password']; 
if ((($user == "angel") && ($pwd == "devil")) || (($user == "john") && ($pwd == "smith"))){ 
    $response = "Benvenuto " . $user; 
    echo $response; 
} 

?>

Проблема я всегда получаю Bad Войти сообщение, даже если я использую правильный пользователя и пароль. Это проблема POST, с которой мне действительно сложно определить решение.

ответ

2

Это ваши данные:

var data = "utente=" + document.getElementById('user').value + "&password=" + document.getElementById('password').value; 

И это то, что вы проверяете:

if (!isset($_POST["user"]) || !isset($_POST["password"])){ 

Вы должны изменить utente к user или наоборот. В вашей форме вы используете user, поэтому я бы рекомендовал использовать это везде.

Итак:

var data = "user=" + document.getElementById('user').value + "&password=" + document.getElementById('password').value; 
+0

Это сработало, спасибо так много. –

+0

@ user3184908 Добро пожаловать, пожалуйста, не забудьте пометить anwer как принятый, если он решит вашу проблему. – jeroen