Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Controllo mail esistente AJAX - PHP

    Buon pomeriggio, devo effettuare un controllo su un form di registrazione e vorrei fare un controllo AJAX che mi permetta di verificare se la mail tentata è già esistente nel mio DB o meno.

    Vi posto i codici AJAX e PHP:
    codice:
    //CONTROLLO CHE L'EMAIL NON ESISTA NEL DB
    				var oXHR = new XMLHttpRequest();
    				oXHR.open("post", "objects/checkmail.php", true);
    				oXHR.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    				var found = true; //è al contrario: se trova una mail identica a quella tentata restituisce false
    				oXHR.onreadystatechange = function()
    				{
    					if (oXHR.readystate == 4)
    					{
    						document.write("fin qui ok");
    						
    						if (oXHR.responseText == 'found')
    						{
    							alert("Questo inidirizzo e-mail è già stato usato.");
    							found = false;
    						}
    					}
    				}
    				document.write(var params = "email=" + encodeURIComponent(document.forms['registration']['email'].value));
    				oXHR.send(params);
    				return found;
    Codice PHP:
    <?php
        
    require "mysql_functions.php";
        
    $DB = new MySQLclass();
        
    $DB -> connect();
        
        
    $email filter_var(trim(filter_var($_POST['email'], FILTER_SANITIZE_EMAIL)));
        
        
    $obj $DB -> estract($DB -> query("SELECT email FROM user_info WHERE email='".$email."'"));
        
        if (
    mysql_num_rows($obj) >= 1)
        {
            echo 
    'found';
        }
        else
        {
            echo 
    "not found";
        }
    ?>
    Il controllo non solo non fa nulla, ma blocca anche il codice JS successivo, il che mi fa dedurre che sia totalmente sbagliato, solo che non so dove sia l'errore

  2. #2
    Beh, innanzitutto tieni presente che la XMLHttpRequest è asincrona, quindi nel momento in cui fai return found probabilmente la risposta dal sever non l'hai ancora ottenuta.

    Ti consiglierei di usare una libreria come jQuery ad esempio, rende la vita MOLTO più facile.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  3. #3
    Il fatto è che è la prima volta che uso AJAX e non ho la minima idea di come fare un controllo del genere... Anche in jQuery non so come fare :/

    Ho seguito un esempio su un mio libro di AJAX, praticamente uguale (login con AJAX e PHP), ma evidentemente ho sbagliato a modificarlo secondo le mie esigenze.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.