premetto che ho usato il tasto "cerca"! Allora, io utilizzo il seguente codice per controllare se la registrazione va a buon fine:
reg_control.php
Codice PHP:
<?
$username= $_POST['username'];
$password= sha1($_POST['password']);
if(trim($username) == "" OR trim($password == ""))
{
echo "Alcuni campi non sono stati compilati! <br />";
echo "<a href=\"javascript:history.back()\">Torna Indietro</a><br><br><br>";
}
else if (strlen($username) < 6) // controllo che il nome inserito non sia < di 3 caratteri
{
echo "L' <b>username</b> deve contenere da 6 a 12 caratteri!<br />";
echo "<a href=\"javascript:history.back()\">Torna Indietro</a>";
}
else if (!eregi("^([a-zA-Z]{3})([a-zA-Z0-9]*)$", $username))//il nome utente inizia per forza con tre lettere
{
echo "L' <b>username</b> contiene caratteri invalidi<br />";
echo "<a href=\"javascript:history.back()\">Torna Indietro</a>";
}
else if (eregi("^((root)|(bin)|(daemon)|(adm)|(lp)|(sync)|(shutdown)|(halt)|(mail)|(html)|(xhtml)|
(news)|(uucp)|(operator)|(MOD-)|(games)|(mysql)|(httpd)|(nobody)|(dummy)|
(www)|(cvs)|(shell)|(ftp)|(irc)|(debian)|(mod)|(m0d-)|(|(ns)|(download))$", $username)) // controllo che l'utente non inserisca nomi riservati
{
echo "L' <b>username</b> contiene caratteri non accettati!<br />";
echo "<a href=\"javascript:history.back()\">Torna Indietro</a>";
}
?>
I problemi sono 4:
1)Quando lascio il capo "password" vuoto, la registrazione va a buon fine!
2)Quando inserisco il codice per controllare se la passowrd contiene 5 caratteri, basta inserirne 1 e la registrazione va a buon fine!
3)Se inserisco il codice per controllare se l' username è già in uso, è come se non l'ho inserito e la registrazione va a buon fine anche con 2 username!
4)Se inserisco il codice per vedere se la registrazione è andata a buon fine, il messaggio non spunta!
Uso i seguenti codici:
1)
Codice PHP:
if(!$_POST['password']) { die('Errore: Il campo password risulta non compilato');
}
2)
Codice PHP:
else if (strlen($password) < 5)
{
echo "La <b>password</b> deve contenere da 5 a 12 caratteri!<br />";
echo "<a href=\"javascript:history.back()\">Torna Indietro</a>";
}
3)
Codice PHP:
if($q3->username == $_POST['username']) {
die('Username già preso! Per favore ne scelga un altro.');
}
4)
Codice PHP:
case REG_SUCCESS:
echo "Registrazione avvenuta con successo.<br>";
}
Potete aggiustarmi questo codice, risolvendo i 4 errori? Vi ringrazio e, se non bastasse, la registrazione.php è questa:
Codice PHP:
<?php
if(!isset($_POST['submit'])){
echo '<form method="post" action="#">
<center>
<div>
<p>
<p><font size="+3">Registrazione gratuita</font></p>
<font size="+1">Username (12 caratteri):</font>
<input type="text" name="username"><br>
<p>
<font size="+1">Password (12 caratteri):</font>
<input type="password" name="pass"><br>
<p>
<input type="submit" value="Registrati" name="submit"><br>
<input type="reset" value="Reset campi">
<p>
<title>Registrazione</title>
<body bgcolor="#FFFF00">
<table align="center" width="99%" cellpadding="1" cellspacing="1">
<tr>
<td style="border-bottom:groove #000022 1px"><sup><strong></strong></sup></td>
</tr>
<p><font size="+1">Registrati ed esegui il login qui sotto:</font>
</p><a href="/login.php"><font size="+1">Clicca qui per eseguire il login</font></a><a
</form>';
} else {
include 'config.php';
include 'connect.php';
$user = mysql_real_escape_string($_POST['username']);
$pass = mysql_real_escape_string($_POST['pass']);
$query = "INSERT INTO Utenti (username,password) VALUES ('{$user}','{$pass}');";
$result = mysql_query($query,$conn);
if ($result) {
("Errore nella query");
}
}
?>