[PHP] Aiutatemi a trovare l'errore in questa pagina!

Vi prego aiutatemi a trovare l'errore in questa pagina che ho ricontrollato 2000 volte...eppure non ci sono ancora riuscito...

Questa dovrebbe essere la pagina per inserire una query nel database per la registrazione di username e password e dovrebbe funzionare così: 1- controlla che siano riempiti i campi; 2- controlla che l'username non esista già nel db; 3- se esiste già torna alla pagina di iscrizione, se non esiste aggiunge la query.

<?php
/***************************************************************/
/* ©opyright 2005/2006 by z3ro & z3rolabs Network              */
/* z3rolabs Network - www.z3rolabs.altervista.org              */
/* z3ro Home Page - www.z3ro.altervista.org                    */
/***************************************************************/
/* Add User / Registration Save File                           */
/***************************************************************/

include("inc/config.php");
if (trim($user) == "" OR trim($pass) == ""):
header("Refresh:3 ; add_user.php");
echo "I campi devono essere riempiti!Attendi il caricamento o clicca <a href=\"add_user.php\">qui</a>";
else:
$user = addslashes(stripslashes($user));
$pass = addslashes(stripslashes($pass));
$user = str_replace("<", "&lt;", $user);
$pass = str_replace(">", "&gt;", $pass);

$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");

// Check
   $keys = explode (",", $username);
   $query = "";
   reset ($keys);
   while (list(,$parola) = each ($keys))
   { $parola = trim($parola);
   if ($parola != "")
   $query .= "username LIKE '%$parola%' ";
   }
   $query .= "0";
   $query = "SELECT username FROM z3_user WHERE " . $query;
   $result = mysql_query($query, $db);
   while ($row = mysql_fetch_array($result));
      if ($result = "")
   {
   header("Refresh:3 ; add_user.php");
   echo "Errore! Questo username è già stato inserito! Attendi il caricamento o clicca <a href=\"add_user.php\">qui</a>";
   }
   else
   {
   $query = "INSERT INTO z3_user (username , password) VALUES ('$user', '$pass')";
         
         if (mysql_query($query, $db)){      
         header("Refresh:3 ; index.php");   
         echo "Grazie per esserti registrato!<br>Attendi il caricamento oppure clicca <a href=\"index.php\">qui</a>";
         }
         else{
         header("Refresh:3 ; add_user.php");
         echo "Si è verificato un errore durante l'inserimento!<br>Attendi il caricamento oppure clicca <a href=\"add_user.php\">qui</a>";
         }
         mysql_close($db); 
          
   }
?>

Grazie!

inviato 11 anni fa
z3ro
z3ro
1
X 0 X

che errore ti da?

risposto 11 anni fa
Gianni Tomasicchio
X 0 X
che errore ti da?

Parse error: syntax error, unexpected $end in D:\AppServ\www\z3rolabs_login\add_user_save.php on line 59

risposto 11 anni fa
z3ro
z3ro
1
X 0 X

prova con un "endif" alla fine dello script.

Comunque non usare la sintassi per gli if cheusa i due punti ":". Usa piuttosto le parentesi graffe.

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

prova con un "endif" alla fine dello script.

Comunque non usare la sintassi per gli if cheusa i due punti ":". Usa piuttosto le parentesi graffe.

 :bye:

se aggiungo un endif prima dell'ultima parentesi ottengo questo:

Parse error: syntax error, unexpected T_ENDIF in D:\AppServ\www\z3rolabs_login\add_user_save.php on line 57

risposto 11 anni fa
z3ro
z3ro
1
X 0 X

metti "endif" come ultima riga dello script, appena prima di "?>"

risposto 11 anni fa
Gianni Tomasicchio
X 0 X
metti "endif" come ultima riga dello script, appena prima di "?>"

finalmente sembra funzionare... il problema è che, a quanto pare, non fa il check all'interno del database se l'user è già stato inserito...

risposto 11 anni fa
z3ro
z3ro
1
X 0 X
metti "endif" come ultima riga dello script, appena prima di "?>"

finalmente sembra funzionare... il problema è che, a quanto pare, non fa il check all'interno del database se l'user è già stato inserito...

sono riuscito anche a risolvere il problema del check! c'era la variabile $user anzichè $username  ;D ora però dà come errore: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\AppServ\www\z3rolabs_login\add_user_save.php on line 38 però poi lo script funziona correttamente  :(

risposto 11 anni fa
z3ro
z3ro
1
X 0 X

La query che costruisci alla riga 36 deve essere sbagliata. Controlla la stringa $query magari con una echo

risposto 11 anni fa
Gianni Tomasicchio
X 0 X
La query che costruisci alla riga 36 deve essere sbagliata. Controlla la stringa $query magari con una echo

Grazie di tutto ma a questo punto credo che rinuncerò perchè questo genere di script è troppo difficile per le mie capacità... ho notato che ci sono molti errori dovuti sempre alla ricerca all'interno del database oltre al fatto che le password non vengono criptate e si possono leggere facilmente nel database (cosa che comporta una scarsa sicurezza dello script).. proverò ad ultimarlo più avanti, quando, forse, sarò capace di farlo!

Grazie comunque di tutto :bye:

risposto 11 anni fa
z3ro
z3ro
1
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda