Ciao a tutti.
Ho provato a creare un form di registrazione inserendo la conferma della password inserita, ma senza riuscirci.
Ho due pagine: Registrazione.php e Dati_inseriti.php
In registrazione.php ho un form che contiene le due passeord:
Codice HTML:
<div id="password" onmouseover="mostra(this.id)" onmouseout="nascondi(this.id)">
<br />Password - <span class="author_createdate Stile6">max 20 caratteri</span>
<br /><input name="pass" type="password" id="password" maxlength="20">
</div>
<div id="confermapassword" onmouseover="mostra(this.id)" onmouseout="nascondi(this.id)">
<br />Conferma password
<br /><input name="confpass" type="password" id="confpassword" maxlength="20">
</div>
seguito ovviamente dal bottone
Codice HTML:
<input name="Submit" type="submit" class="button" value="Registrati">
Il problema è nel file Dati_inseriti:
Codice PHP:
<?php
require('connessionedb.php');
$user = mysql_real_escape_string($_POST['user']);
$pass = mysql_real_escape_string(md5($_POST['pass']));
$confpass = mysql_real_escape_string(md5($_POST['confpass']));
//utente nel database
$query = "SELECT * FROM user " .
"WHERE user_username = '$user' " .
"OR user_email = '$pass' ";
$result = mysql_query($query) or die (mysql_error());
if ($user == " ") {
header("location:../../Registrazione.php");
}
else
{
if (mysql_num_rows($result) != 0)
{
while ($row = mysql_fetch_array($result))
{
//QUI È IL PROBLEMA ----------------------------------------------------------------
//conferma password errata
if ("$pass" != "$confpass")
{
echo "<p>";
echo " Le due password non coincidono.";
echo "</p>";
}
//username già presente nel db
if ($row['user_username'] == $user)
{
echo "<p>";
echo " L'username, <b>" . $row['user_username'] . "</b> è già in uso da un altro utente, scegliere uno diverso";
echo "</p>";
}
//email già presente nel db
if ($row['user_email'] == $_POST['email'])
{
echo "<p>";
echo " La casella E-mail, <b>" . $row['user_email'] . "</b> è già presente nel Data Base, scegliere una diversa";
echo "</p>";
}
}
//rimandiamo l'utente alla pagina precedente
echo "<p>";
echo "<a href=\"../../Registrazione.php\">";
echo "Clicca qui per tornare alla registrazione";
echo "</a>";
echo "</p>";
}
//Se invece username e email non sono presenti nel db procediamo con l'inserimanto
else
{
/* inserisco dati nel database e le solite cose */
}
?>
Quindi ecco che succede:
se l'E-Mail o l'username è già presente e le password non coincidono, vengono stampati tutti gli errori, compreso quello della password non coincidente.
Se l'E-Mail che non coincide è l'unico errore, lo "lascia andare" e senza nemmeno stampare l'errore procede con l'inserimento dei dati nel database... perché?
Grazie.