-
Errore chiusura database
ho creato questo codice per una registrazione
Codice PHP:
<?
include ("config.php");
$user=$_REQUEST["user"];
$pass=$_REQUEST["pass"];
$verpass=$_REQUEST["verpass"];
$email=$_REQUEST["email"];
if ($user == "" OR $pass == "" OR $verpass == "" OR $mail == "")
Errore("javascript:history.go(-1)", "Errore", "I campi username, password ed email devono essere riempiti!" ,".");
$user1 = str_replace(" ", "", $user);
if (!eregi("^[_.0-9a-z-]+$", $user1))
Errore("javascript:history.go(-1)", "Errore", "L'username, il nome o il cognome hanno caratteri non consentiti." ,".");
if ($pass == $pass2)
{
$user = addslashes(stripslashes($user));
$email = addslashes(stripslashes($email));
$user = htmlspecialchars($user);
$email = htmlspecialchars($email);
if (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $email))
{
// Check 4(1): Controllo numero caratteri minimi
$exlen = array (
'user'=>4,
'pass'=>4,
);
foreach ($exlen as $key=>$val)
{
if (strlen($$key) < $val)
Errore("javascript:history.go(-1)", "Errore", "I campi username e password devono contenere almeno 4 caratteri!" ,".");
}
// Check 4(2): Controllo numero caratteri massimi
$exlen1 = array (
'user'=>15,
'pass'=>15,
'email'=>30
);
foreach ($exlen1 as $key1=>$val1)
{
if (strlen($$key1) > $val1)
{
Errore("javascript:history.go(-1)", "Errore", "Alcuni campi contengono troppi caratteri!" ,".");
}
}
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.php");
$query = "SELECT * from user WHERE user = '$user'";
$risultato = mysql_query($query);
$num_righe = mysql_num_rows($risultato);
if($num_righe)
Errore("javascript:history.go(-1)", "Errore", "User già esistente" ,".");
$query = "INSERT INTO user (user, pass, email) VALUES ('$user', '$pass', '$email')";
if (mysql_query($query, $db))
echo "Sei stato registrato corretamente";
else
echo "Errore durante la registrazione";
//endif;
mysql_close($db);
endif; // chiude la verifica della presenza dei dati
?>
però quando lo provo mi da il segente errore
Parse error: syntax error, unexpected T_ENDIF in /membri/webeasy/conferma registrazione.php on line 79
la linea 79 corrisponde a endif; è per questo che credo che l'errore sia nella chiusura del database
Come posso corregerlo?
-
Un database non si "chiude", ci si connette e al massimo ci si disconnette.
Il problema è nella sintassi che usi per le strutture if...else: usa le graffe per delimitarle, altrimenti non si riesce nemmeno a capire bene ciò che posti.
Ciao!
-
grazie ho messo le graffe dove è possibile: nopn le ho messe dove mi dava errore ma comunque mi da sempre errore il codice adesso è questo
Codice PHP:
<?
include ("config.php");
$user=$_REQUEST["user"];
$pass=$_REQUEST["pass"];
$verpass=$_REQUEST["verpass"];
$email=$_REQUEST["email"];
if ($user == "" OR $pass == "" OR $verpass == "" OR $mail == "") {
Errore("javascript:history.go(-1)", "Errore", "I campi username, password ed email devono essere riempiti!" ,"."); }
$user1 = str_replace(" ", "", $user);
if (!eregi("^[_.0-9a-z-]+$", $user1)) {
Errore("javascript:history.go(-1)", "Errore", "L'username, il nome o il cognome hanno caratteri non consentiti." ,"."); }
if ($pass == $varpass) {
$user = addslashes(stripslashes($user));
$email = addslashes(stripslashes($email));
$user = htmlspecialchars($user);
$email = htmlspecialchars($email); }
if (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $email))
{
// Check 4(1): Controllo numero caratteri minimi
$exlen = array (
'user'=>4,
'pass'=>4,
);
foreach ($exlen as $key=>$val)
{
if (strlen($$key) < $val) {
Errore("javascript:history.go(-1)", "Errore", "I campi username e password devono contenere almeno 4 caratteri!" ,"."); }
}
// Check 4(2): Controllo numero caratteri massimi
$exlen1 = array (
'user'=>15,
'pass'=>15,
'email'=>30
);
foreach ($exlen1 as $key1=>$val1) {
if (strlen($$key1) > $val1) {
Errore("javascript:history.go(-1)", "Errore", "Alcuni campi contengono troppi caratteri!" ,"."); }
}
}
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE) {
die ("Errore nella connessione. Verificare i parametri nel file config.php"); }
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.php");
$query = "SELECT * from user WHERE user = '$user'";
$risultato = mysql_query($query);
$num_righe = mysql_num_rows($risultato);
if($num_righe) {
Errore("javascript:history.go(-1)", "Errore", "User già esistente" ,"."); }
$query = "INSERT INTO user (user, pass, email) VALUES ('$user', '$pass', '$email')";
if (mysql_query($query, $db)) {
echo "Sei stato registrato corretamente";
} else {
echo "Errore durante la registrazione"; }
mysql_close($db);
endif;
?>
-
Qual è l'errore che ti restituisce?
In quale riga?
Ciao!
-
sempre lo stesso di prima
-
Se usi le graffe non puoi usare endif
Ciao!
-
-
Cancellare 'endif' :dotto:
Ciao!
-
ok però adesso mi da l'errore sul codice
Codice:
Errore("javascript:history.go(-1)", "Errore", "I campi username, password ed email devono essere riempiti!" ,".");
-
Spiegati meglio.
Ti resistuisce l'errore dei campi username password e email, oppure un errore di sintassi php?
ciao!
-
visto l'errore di javascript o deciso di eliminare tutti gli script i js il codice adesso risulta cosi
Codice PHP:
<?
include ("config.php");
$user=$_REQUEST["user"];
$pass=$_REQUEST["pass"];
$verpass=$_REQUEST["verpass"];
$email=$_REQUEST["email"];
if ($user == "" OR $pass == "" OR $verpass == "" OR $email == "") {
echo "I campi devono essere riempiti!";exit(); }
$user1 = str_replace(" ", "", $user);
if (!eregi("^[_.0-9a-z-]+$", $user1)) {
echo "L'user deve essere composto solo di lettere e numeri!";exit(); }
if ($pass == $varpass) {
$user = addslashes(stripslashes($user));
$email = addslashes(stripslashes($email));
$user = htmlspecialchars($user);
$email = htmlspecialchars($email); }
if (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $email))
{
// Check 4(1): Controllo numero caratteri minimi
$exlen = array (
'user'=>4,
'pass'=>4,
);
foreach ($exlen as $key=>$val)
{
if (strlen($$key) < $val) {
echo "L'user e la password davono avere almeno 4 caratteri!";exit(); }
// Check 4(2): Controllo numero caratteri massimi
$exlen1 = array (
'user'=>15,
'pass'=>15,
'email'=>30
);
foreach ($exlen1 as $key1=>$val1) {
if (strlen($$key1) > $val1) {
echo "L'user e la password possono avere al massimo 15 caratteri e l' email 30!";exit(); }
}
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE) {
die ("Errore nella connessione. Verificare i parametri nel file config.php"); }
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.php");
$query = "SELECT * from user WHERE user = '$user'";
$risultato = mysql_query($query);
$num_righe = mysql_num_rows($risultato);
if($num_righe) {
echo "L'user esiste gia prova con un altro!";exit(); }
$query = "INSERT INTO user (user, pass, email) VALUES ('$user', '$pass', '$email')";
if (mysql_query($query, $db)) {
echo "Sei stato registrato corretamente";
} else {
echo "Errore durante la registrazione"; }
mysql_close($db);
?>
ma continua a darmi un errore
Codice:
Parse error: syntax error, unexpected $end in /membri/webeasy/conferma registrazione.php on line 72
come lo risolvo?
ti ringrazzio per l'aiuto
-
Per come è indentato (male) lo script non riesco a controllare tutte le aperture e chiusure delle varie strutture (if, foreach, ecc).
Devi farlo tu.
Ciao!
-
mancano due chiusure
il primo foreach quasi sicuramente e forse quello dell' if subito sopra
-
grazie mille inverno lo script adesso registra corretamente e non mi da errori devo solo provare le restrizioni
posto di seguito lo script completo
Codice PHP:
<?
include ("inc/config.inc.php");
$user=$_REQUEST["user"];
$pass=$_REQUEST["pass"];
$verpass=$_REQUEST["verpass"];
$email=$_REQUEST["email"];
if ($user == "" OR $pass == "" OR $verpass == "" OR $email == "") {
echo header("Location: Registrazione.php?errorcamp=I campi devono essere tutti riempiti!");exit(); }
$user1 = str_replace(" ", "", $user);
if (!eregi("^[_.0-9a-z-]+$", $user1)) {
echo header("Location: Registrazione.php?errorformat=L/'user deve essere composto solo da lettere e numeri!");exit(); }
if ($pass == $verpass) {
$user = addslashes(stripslashes($user));
$email = addslashes(stripslashes($email));
$user = htmlspecialchars($user);
$email = htmlspecialchars($email);
if (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $email))
{
// Check 4(1): Controllo numero caratteri minimi
$exlen = array (
'user'=>4,
'pass'=>4,
);
foreach ($exlen as $key=>$val)
{
if (strlen($$key) < $val) {
echo header("Location: Registrazione.php?errormin=Caratteri minimi non raggiunti!");exit(); }
// Check 4(2): Controllo numero caratteri massimi
$exlen1 = array (
'user'=>15,
'pass'=>15,
'email'=>30
);
foreach ($exlen1 as $key1=>$val1) {
if (strlen($$key1) > $val1) {
echo header("Location: Registrazione.php?errormax=Superati caratteri massimi!");exit(); }
}
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE) {
die (header("Location: Registrazione.php?errorcon=Errore nella connesione al database!")); }
mysql_select_db($db_name, $db)
or die (header("Location: Registrazione.php?errorselect=Errore nella selezione del database!"));
$query = "SELECT * from user WHERE user = '$user'";
$risultato = mysql_query($query);
$num_righe = mysql_num_rows($risultato);
if($num_righe) {
echo header("Location: Registrazione.php?erroruseresist=User gia esistente! Prova con un altro!");exit(); }
$crypt_pass = md5($pass);
$query = "INSERT INTO user (user, pass, email) VALUES ('$user', '$crypt_pass', '$email')";
if (mysql_query($query, $db)) {
echo "Sei stato registrato corretamente";exit();
} else {
echo header("Location: Registrazione.php?errorfall=Errore durante la registrazione!");exit(); }
mysql_close($db);
}
} else {
echo header("Location: Registrazione.php?erroremail=Email non valida!");exit(); }
} else {
echo header("Location: Registrazione.php?errorpass=Le password devono essere uguali!");exit(); }
?>
grazie mille a tutti