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

Rispondi quotando
