Salve ragazzi.
Mi sono messo d'impegno per costruire un'area privata autonomamente, stuadiando un pò l'argomento. Ebbene, fino ad ora ho costruito due files: uno è il form per l'inserimento dei dati dell'utente al momento della registrazione, l'altro invece accetta questi dati e li passa al database. Bene, in questo secondo file, prima che accetti i dati e li passi alla tabella del database (di nome "utenti") avrei voluto che confrontasse i valori di "username" e password" al momento dell'inserimento, con quelli presenti già nella tabella e, qualora vi fosse corrispondenza, rimandasse indietro al form per cambiare "username" o password". Bene, questo punto non mi riesce!
Vi posto il codice. Inizio dal Form, così da far capire che dati vengono inseriti:
<html>
<head>
<title>Modulo di registrazione</title>
</head>
<body>
<form action="register.php" method="post">
<div align="center">
<table border="0" width="300">
<tr>
<td>Nome:</td>
<td><input type="text" name="nome"></td>
</tr>
<tr>
<td>Cognome:</td>
<td><input type="text" name="cognome"></td>
</tr>
<tr>
<td>Username:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td>Mail:</td>
<td><input type="text" name="mail"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="action" value="Invia"></td>
</tr>
</table>
</div>
</form>
</body>
</html>
Il secondo, quello che accetta i dati, si chiama "register.php":
<?php
$nome = htmlentities(strip_tags($_POST["nome"]));
$cognome = htmlentities(strip_tags($_POST ["cognome"]));
$username = htmlentities(strip_tags($_POST ["username"]));
$password = htmlentities(strip_tags($_POST["password"]));
$mail = htmlentities(strip_tags($_POST["mail"]));
if($nome=="")
{
print ("Il nome è obbligatorio
<a href=\"formregistraz.php\">indietro</a>
");
}
elseif($cognome=="")
{
print "Il cognome è obbligatorio
<a href=\"formregistraz.php\">indietro</a>
";
}
elseif($username=="")
{
print "L'username è obbligatorio
<a href=\"formregistraz.php\">indietro</a>
";
}
elseif($password=="")
{
print "La password è obbligatoria
<a href=\"formregistraz.php\">indietro</a>
";
}
elseif($mail=="")
{
print "La mail è obbligatoria
<a href=\"formregistraz.php\">indietro</a>
";
}
else
{
include("config.php");
mysql_connect($db_host,$db_user,$db_password,$db_n ame) or die ("non riesco a connettermi");
mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");
$sql = "select * from utenti where username='$username'";
$query =mysql_query ($sql) or die (errore_server());
if ($_POST['username'] == $query ) {
echo "nome utente già occupato
";
echo "<a href=\"javascript:history.back()\">ritenta</a> con un altro username";
}
else
{
function reg_register($data){
//registro l'utente
global $_CONFIG;
$id = reg_get_unique_id();
mysql_query("
INSERT INTO ".$_CONFIG['table_utenti']."
(nome, cognome, username, password, mail)
VALUES
('".$data['nome']."','".$data['cognome']."','".$data['username']."',',MD5('".$data['password']."'),'".$data['mail']."', '".time()."','".$id."')");
}
}
}
echo "$nome";
mysql_close();
?>
Bene in questo secondo file mi interesserebbe capire dove stà l'errore nella parte di codice:
else
{
include("config.php");
mysql_connect($db_host,$db_user,$db_password,$db_n ame) or die ("non riesco a connettermi");
mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");
$sql = "select * from utenti where username='$username'";
$query =mysql_query ($sql) or die (errore_server());
if ($_POST['username'] == $query ) {
echo "nome utente già occupato
";
echo "<a href=\"javascript:history.back()\">ritenta</a> con un altro username";
}
else
{
oppure se c'è qualche errore nella costruzione dei cicli. Quel che posso dire è che, avendo inserito un "echo" alla fine, i dati vengono inseriti nel database perchè mi stampa la variabile richiesta (in questo caso il nome).
Solo che ho provato ad inserire dal form per più volte lo stesso "username" e me lo accetta, mentre io vorrei, come detto, che, esistendo già all'interno del database, mi rimandasse indietro al form per cambiare username.
Dove ho sbagliato?
Grazie ragazzi
p.s. spero di essere stato chiaro