In queste righe di codice mi servono per eseguire una semplice registrazione. Vicino all'imput type username io volevo far comparire una stringa in continuo aggiornamento che mi dice se tale username che l'utente sta inserendo è già inserito o no.
registrazione.html
codice:<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Documento senza titolo</title> <script type="text/javascript" src="controllo.js"></script> </head> <body> <script type="text/javascript"> process(); </script> <form action="registrazione.php" method="post" > Nome: <input type="text" name="nome" required> Cognome: <input type="text" name="cognome" required> Citta: <input type="text" name="citta" required> Via: <input type="text" name="via" required> Telefono: <input type="tel" name="telefono"required > Username: <input type="text" name="user" id="myname" required> <div id="divMessage" /> Password: <input type="password" name="password" required> E-mail: <input type="email" name="email" required> <input type="submit" value="Invia" > </body> </html>
controllo.js
codice:var xmlHttp=createXmlHttpRequestObject(); function createXmlHttpRequestObject() { var xmlHttp; //se l'utente usa internet explorer if(window.ActiveXObject) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { xmlHttp=false; } } //se usa altri browser else { try { xmlHttp=new XMLHttpRequest(); } catch (e) { xmlHttp=false; } } if(!xmlHttp) alert("errore durante la creazione dell'oggeto XMLHttpRequest."); else return xmlHttp; } //---------------------------------------------------------------------------------------------------------------------------- function process() { if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) { name = encodeURIComponent(document.getElemnetById("myname").value); xmlHttp.open("GET", "controlloUser.php?name=" +name, true); xmlHttp.onreadystatechange=handleServerResponse; xmlHttp.send(null); } else setTimeout('process()', 1000); } //----------------------------------------------------------------------------------------------------------------------------- function handleServerResponse() { if (xmlHttp.readyState ==4) { if (xmlHttp.status ==200) { xmlResponse = xmlHttp.responseXML; xmlDocumentElement=xmlResponse.documentElement; element.helloMessage = xmlDocumentElement.firstChild.data; document.getElementById("divMessage").innerHTML= helloMessage; setTimeout('process()', 1000); } else { alert("C'è stato un problema nell'accesso del server: " + xmlHttp.statusText); } } }
controlloUser.php
Codice PHP:<?php
header('Content-Type: text/xml');
echo "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>";
echo '<response>';
$host="localhost";
$username="root";
$password="";
$conn=mysql_connect($host,$username,$password);
if(!$conn)
{
echo"errore connessione";
}
mysql_select_db("temporaneo", $conn)
or die ("errore nella connessione con il database");
$username=$_GET['name'];
$sql="select username from utenti where username='$username' ";
$ab=mysql_query($sql);
if ($ab==false) die("errore nel controllo dei doppi");
if (mysql_num_rows($ab)>=1) die("Il nome utente esiste, inseriscine un'altro!!");
echo '</response>';
?>
In teoria mentre digito l'username vicino dovrebbe comparire la stringa "username usato" solo se l'username è veramente usato, invece non succede niente. Anche quando faccio il GET manuale del file php (controlloUser.php?name=usergiausato) mi restituisce l'errore "Errore interpretazione XML: nessun elemento trovato". Consigli????? Vi prego aiutatemi!

Rispondi quotando
