http://dimoshake.altervista.org/registrazione.html
Allora, questo è un piccolo form per la registrazione, in cui ci sono tutti gli errori possibili in caso qualcuno sbagli qualcosa (ripetizione password ecc), o ci sia gia un username/mail esistente, e fin qui tutto perfetto. Ora dato che ho il codice della registrazione in php con un bottone che rimanda alla pagina della registrazione, avevo intenzione di creare due bottoni, che tramite ajax si aggiornano. Quando tutti i campi sono corretti compare un bottone che rimanda alla pagina php per registrarsi, quando c'è almeno un campo sbagliato il bottone diventa disabled="disabled" e questo so farlo.
Ad esempio metto una funzione dentro l'evento onblur e la richiamo in tutti i campi, quando soddisfa tutte le condizioni dei cicli if allora aggiorna l'html tramite ajax, mettendo il bottone cliccabile. Il problema è che non riesco ad andare avanti con questo codice (che permette di aggiornare i due tipi di bottone) quando si tratta di verificare che l'username/email sia già utilizzato. Ecco i codici che riguarda l'username
registrazione.html
Ho messo solo username dato che l'email ha il codice identico, se non per il discorso di alcune variabili.Codice PHP:<script type="text/javascript" language="javascript">
function checkusername(){
var status = document.getElementById("usernamestatus");
var u = document.getElementById("uname").value;
if(u == 0){
status.innerHTML = "Inserisci un username valido";
} else {
if(u != ""){
status.innerHTML = 'ricerca...';
var hr = new XMLHttpRequest();
hr.open("POST", "controllausr.php", true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
status.innerHTML = hr.responseText;
}
}
var v = "name2check="+u;
hr.send(v);
}
}
}
</script>
</head>
<body>
<form>
<table>
<tr>
<td>
Username:
</td>
<td>
<input type="text" name="uname" id="uname" onblur="checkusername();" maxlength="15" />
</td>
<td>
<div id="usernamestatus">Inserisci un username valido</div>
</td>
</tr>
</form>
Questa è la pagina php che cerca se l'username esiste o meno e da i relativi errori
controllausr.php
In sostanza, come faccio a verificare che il campo username e email siano "Ok" quindi corretti?Codice PHP:<?php
if(isset($_POST["name2check"]) && $_POST["name2check"] != ""){
include_once 'connect.php';
$username = preg_replace('#[^a-z0-9]#i', '', $_POST['name2check']);
$sql_uname_check = mysql_query("SELECT id FROM utenti WHERE username='$username' LIMIT 1");
$uname_check = mysql_num_rows($sql_uname_check);
if (strlen($username) < 3) {
echo "<div style='color: #d70000;'>l'username deve essere tra i 3 e 15</div>";
exit();
}
if (is_numeric($username[0])) {
echo 'First character must be a letter';
exit();
}
if ($uname_check < 1) {
echo "<div style='color: #0ba60b;'>Ok</div>";
exit();
} else {
echo "<div style='color: #d70000;'>[b]$username[/b] e' gia utilizzato</div>";
exit();
}
}
?>

Rispondi quotando
