Visualizzazione risultati 1 fino 4 di 4

Discussione: Non riesco a risolvere un problema di codice

  1. #1
    Guest

    Predefinito Non riesco a risolvere un problema di codice

    Ho riscontrato questo problema mentre stavo creando un form per la registrazione di utenti :

    Parse error: syntax error, unexpected T_ELSE in /membri/quelpazzosultubo/register.php on line 86

    So che è un errore di parentesi (penso) ma ho provato in tutti modi a sistemare e con notepad++ mi dice che le parentesi sono tutte aperte e chiuse ma non riesco a sistemare... vi lascio qui il codice della pagina:
    Codice PHP:
    <?php

    include 'header.php';

    ?>

    <div id="wrapper">

    <?php

    if(!isset($_GET['codice'])){

    if(!isset(
    $_POST['invia'])){ ?>

    <form method="post" action="#" id="formreg">

    <label for="username">Username</label>
    <input type="text" name="username" id="username" /> <br>
    <label for="password1">Password</label>
    <input type="password" name="password1" id="password1" /> <br>
    <label for="password2">Ripeti Password</label>
    <input type="password" name="password2" id="password2" /> <br>
    <label for="email1">Email</label>
    <input type="text" name="email1" id="email1" /> <br>
    <label for="email2">Ripeti Email</label>
    <input type="text" name="email2" id="email2" /> <br>
    <input type="submit" name="invia" id="registrati" value="Registrati" />

    </form>


    <?php } else {

    $codice = md5(uniqid(rand()));
    $username = mysql_real_escape_string($_POST['username']);
    $password1 = mysql_real_escape_string($_POST['password1']);
    $password2 = mysql_real_escape_string($_POST['password2']);
    $email1 = mysql_real_escape_string($_POST['email1']);
    $email2 = mysql_real_escape_string($_POST['email2']);

    if(
    $username == "" || $email1 == "" || $email2 == ""){
    echo
    "Devi riempire tutti i campi!";
    }elseif(
    $password1 == "" || $password2 == ""){
    echo
    "Devi riempire tutti i campi!";
    }elseif(
    $password2 != $password1){
    echo
    "Le password non coincidono!";
    }elseif(
    $email2 != $email1){
    echo
    "Le email non coincidono!";
    }else{

    $recuperauseremail = mysql_query("SELECT id FROM utenti WHERE username='$username' OR email='$email1' OR email='$email2");
    $contausermail = mysql_num_rows($recuperauseremail);

    if(
    $contausermail > 0){

    echo
    "Nome utente o email già utilizzati!";

    } else {

    $inviautentitemp = mysql_query("INSERT INTO utenti_temp (codice, username, password, email) VALUES ('$codice' , '$username' , '$password2' , '$email2')");

    if(
    $inviautentitemp){

    $to=$email2;
    $subject="Conferma la registrazione sul sito di Quel Pazzo sul Tubo";
    $header="Da : QuelPazzoSulTubo";
    $message=" Ecco il codice di conferma per attivare il tuo account \r\n";
    $message.=" Clicca sul link per attivare il tuo account ! \r\n";
    $message.=" http://quelpazzosultubo.altervista.org/register.php?codice=$codice";

    $sentmail=mail($to,$subject,$message,$header);
    }

    if(
    $sentmail){

    echo
    "Per completare la registrazione controlla la tua email e clicca sul link di attivazione.";

    }else{

    echo
    "Errore, link di attivazione non inviato. Riprova più tardi.";

    }
    }

    } else {
    //riga dell' errore


    $codice = $_GET['codice'];
    $sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codice = '$codice'";
    $risultatouser = mysql_query($sqlrecuperuser);

    if(
    $risultatouser) {

    $contauser = mysql_num_rows($risultatouser);

    if(
    $contauser == 1) {

    $rows = mysql_fetch_array($risultatouser)
    $username = $rows['username'];
    $email = $rows['email'];
    $password = ['password'];

    $passwordcript = md5($password);

    $sqlattivazioneuser = mysql_query("INSERT INTO utenti (username, password, email) VALUES ('$username', '$passwordcript', '$email')");

    if(
    $sqlattivazioneuser) {

    echo
    "Il tuo account è stato attivato con successo";
    $sqleliminadati = mysql_query("DELETE FROM utenti_temp WHERE codice = '$codice'");

    } else {

    echo
    "Errore!";

    }

    }

    }
    }

    }

    ?>

    </div>

    </body>
    </html>

  2. #2
    Guest

    Predefinito

    Non sono sicuro di aver sistemato, prova così con tutti i file da includere e il database e dimmi se funziona...

    Codice PHP:
    <?php

    include 'header.php';

    ?>

    <div id="wrapper">

    <?php

    if(!isset($_GET['codice'])){

    if(!isset(
    $_POST['invia'])){ ?>

    <form method="post" action="#" id="formreg">

    <label for="username">Username</label>
    <input type="text" name="username" id="username" /> <br>
    <label for="password1">Password</label>
    <input type="password" name="password1" id="password1" /> <br>
    <label for="password2">Ripeti Password</label>
    <input type="password" name="password2" id="password2" /> <br>
    <label for="email1">Email</label>
    <input type="text" name="email1" id="email1" /> <br>
    <label for="email2">Ripeti Email</label>
    <input type="text" name="email2" id="email2" /> <br>
    <input type="submit" name="invia" id="registrati" value="Registrati" />

    </form>


    <?php } else {

    $codice = md5(uniqid(rand()));
    $username = mysql_real_escape_string($_POST['username']);
    $password1 = mysql_real_escape_string($_POST['password1']);
    $password2 = mysql_real_escape_string($_POST['password2']);
    $email1 = mysql_real_escape_string($_POST['email1']);
    $email2 = mysql_real_escape_string($_POST['email2']);

    if(
    $username == "" || $email1 == "" || $email2 == ""){
    echo
    "Devi riempire tutti i campi!";
    }elseif(
    $password1 == "" || $password2 == ""){
    echo
    "Devi riempire tutti i campi!";
    }elseif(
    $password2 != $password1){
    echo
    "Le password non coincidono!";
    }elseif(
    $email2 != $email1){
    echo
    "Le email non coincidono!";
    }else{

    $recuperauseremail = mysql_query("SELECT id FROM utenti WHERE username='$username' OR email='$email1' OR email='$email2");
    $contausermail = mysql_num_rows($recuperauseremail);

    if(
    $contausermail > 0){

    echo
    "Nome utente o email già utilizzati!";

    } else {

    $inviautentitemp = mysql_query("INSERT INTO utenti_temp (codice, username, password, email) VALUES ('$codice' , '$username' , '$password2' , '$email2')");

    if(
    $inviautentitemp){

    $to=$email2;
    $subject="Conferma la registrazione sul sito di Quel Pazzo sul Tubo";
    $header="Da : QuelPazzoSulTubo";
    $message=" Ecco il codice di conferma per attivare il tuo account \r\n";
    $message.=" Clicca sul link per attivare il tuo account ! \r\n";
    $message.=" http://quelpazzosultubo.altervista.org/register.php?codice=$codice";

    $sentmail=mail($to,$subject,$message,$header);
    }

    if(
    $sentmail){

    echo
    "Per completare la registrazione controlla la tua email e clicca sul link di attivazione.";

    }else{

    echo
    "Errore, link di attivazione non inviato. Riprova più tardi.";

    }
    }
    }
    }

    } else {
    //riga dell' errore


    $codice = $_GET['codice'];
    $sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codice = '$codice'";
    $risultatouser = mysql_query($sqlrecuperuser);

    if(
    $risultatouser) {

    $contauser = mysql_num_rows($risultatouser);

    if(
    $contauser == 1) {

    $rows = mysql_fetch_array($risultatouser) ;
    $username = $rows['username'];
    $email = $rows['email'];
    $password = ['password'];

    $passwordcript = md5($password);

    $sqlattivazioneuser = mysql_query("INSERT INTO utenti (username, password, email) VALUES ('$username', '$passwordcript', '$email')");

    if(
    $sqlattivazioneuser) {

    echo
    "Il tuo account è stato attivato con successo";
    $sqleliminadati = mysql_query("DELETE FROM utenti_temp WHERE codice = '$codice'");

    } else {

    echo
    "Errore!";

    }

    }

    }
    }


    ?>

    </div>

    </body>
    </html>

  3. #3
    Guest

    Predefinito

    Ok si funziona grazie mille ;)

  4. #4
    Guest

    Predefinito

    C'erano due errori...

    Il primo riguardava le parentesi graffe.
    Praticamente una delle parentesi graffe che tu avevi messo a fine codice andava chiusa prima ovvero alla linea 84 altrimenti quell'else della linea 85 veniva interpretato come codice del primo else.

    Il secondo invece era un errore sempre di sintassi alla linea 98 dove avevi dimenticato un ";"

    Alla prossima!

Regole di scrittura

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