Visualizzazione risultati 1 fino 14 di 14

Discussione: Errore chiusura database

  1. #1
    Guest

    Predefinito 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?

  2. #2
    Guest

    Predefinito

    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!

  3. #3
    Guest

    Predefinito

    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;
    ?>

  4. #4
    Guest

    Predefinito

    Qual è l'errore che ti restituisce?
    In quale riga?


    Ciao!

  5. #5
    Guest

    Predefinito

    sempre lo stesso di prima

  6. #6
    Guest

    Predefinito

    Se usi le graffe non puoi usare endif


    Ciao!

  7. #7
    Guest

    Predefinito

    quindi cosa devo fare?

  8. #8
    Guest

    Predefinito

    Cancellare 'endif'


    Ciao!

  9. #9
    Guest

    Predefinito

    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!" ,".");

  10. #10
    Guest

    Predefinito

    Spiegati meglio.
    Ti resistuisce l'errore dei campi username password e email, oppure un errore di sintassi php?


    ciao!

  11. #11
    Guest

    Predefinito

    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

  12. #12
    Guest

    Predefinito

    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!

  13. #13
    Guest

    Predefinito

    mancano due chiusure
    il primo foreach quasi sicuramente e forse quello dell' if subito sopra

  14. #14
    Guest

    Predefinito

    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
    Ultima modifica di webeasy : 29-11-2008 alle ore 14.26.16

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •