Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    28

    Problema verifica utente in registrazione

    Ciao a tutti
    Premetto che mi sto affacciando ancora ora al mondo del php, ma è già sorto il primo problema.

    Utilizzo questo script per le registrazioni:

    <?php
    $nomehost = "";
    $nomeuser = "";
    $password = ";
    $dbname="";
    $connessione = mysql_connect($nomehost,$nomeuser,$password); //script d connessione
    $on = 0;
    if($on==1) die("Registrazioni offline");
    else
    if($connessione==0){echo"Connessione fallita";}
    $database_select=mysql_select_db($dbname,$connessi one);
    if($database_select==0){echo"Selezione non riuscita";}
    $username=$_POST['username'];
    $nome=$_POST['nome'];
    $password=$_POST['password'];
    $conferma=$_POST['conferma'];
    $email=$_POST['email'];
    if($password!=$conferma){echo"<font color='white'>Ricontrolla i campi password</font>";}else{
    if($username=='' or $nome=='' or $password=='' or $conferma=='' or $email==''){echo "<font color='white'>Ricorda di compilare tutti i campi</font>";}
    $sql = "SELECT id FROM utenti WHERE username='$username'";
    $risultato = mysql_query($sql, $connessione);
    $num_righe = mysql_num_rows($risultato);
    if($num_righe == 0){
    $sql2 = "Insert into `utenti` (`username`,`nome`,`password`,`email`) VALUES ('$username','$nome','$password','$email')";
    $result = mysql_query($sql2, $connessione);
    header("location:regf.php");
    } else {
    $return = false;
    }
    }
    ?>


    Vorrei che nel caso in cui l'username fosse già esistente, comparisse un messaggio di errore nella stessa pagina di registrazione, per poter far ri-registrare l'utente.
    Ho provato ad inserire: else { $return = false; echo("Errore: nome utente già in uso")} } ?>
    ma la scritta in "echo" mi compare prima ancora del tentativo di registrazione...
    Qualcuno mi salvi

  2. #2
    La domanda sorge spontanea...se stai apprendendo il PHP, perchè non cominci a studiare le basi? Il copia/incolla (da cui suppongo provenga lo script che hai postato) non aiuta l'apprendimento, ma genera appunto i problemi nei quali sei incappato!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    28
    So quello che ho scritto ma sono incappato in questo problema. Se mi aiutassi te ne sarei grato!

  4. #4
    Ciao Insites! Non conosco tutta la dinamica dello script, quindi non saprei analizzare la cosa in dettaglio, però prova cosi:

    <?php
    $nomehost = "";
    $nomeuser = "";
    $password = "";
    $dbname="";
    $connessione = mysql_connect($nomehost,$nomeuser,$password); //script d connessione
    $on = 0;
    if($on==1) die("Registrazioni offline");
    else
    if($connessione==0){echo"Connessione fallita";}
    $database_select=mysql_select_db($dbname,$connessi one);
    if($database_select==0){echo"Selezione non riuscita";}
    $username=$_POST['username'];
    $nome=$_POST['nome'];
    $password=$_POST['password'];
    $conferma=$_POST['conferma'];
    $email=$_POST['email'];
    if($password!=$conferma){echo"<font color='white'> Ricontrolla i campi password</font>";}else{
    if($username=='' or $nome=='' or $password=='' or $conferma=='' or $email==''){echo "<font color='white'> Ricorda di compilare tutti i campi</font>";}
    $sql = "SELECT id FROM utenti WHERE username='$username'";
    $risultato = mysql_query($sql, $connessione);
    $num_righe = mysql_num_rows($risultato);
    if($num_righe == 0){
    $sql2 = "Insert into `utenti` (`username`,`nome`,`password`,`email`) VALUES ('$username','$nome','$password','$email')";
    $result = mysql_query($sql2, $connessione);
    header("location:regf.php");
    } else {
    if(isset($_POST['username']) && $_POST['username'] != '')
    {
    $return = false; echo 'Errore: nome utente già in uso';
    }
    }
    }
    ?>

    Se ci sono problemi fammi sapere, e comunque benvenuto nel forum e... nel mondo di php

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    28
    Grazie Kajin ^^

    comunque lo script così non va..quando carica la pagina di registrazione mi porta direttamente alla pagina "regf.php" salvando campi vuoti nel db

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da satifal
    La domanda sorge spontanea...se stai apprendendo il PHP, perchè non cominci a studiare le basi? Il copia/incolla (da cui suppongo provenga lo script che hai postato) non aiuta l'apprendimento, ma genera appunto i problemi nei quali sei incappato!
    Ah ma lui sa cosa scrive

    http://www.inforge.net/community/sof...p-e-mysql.html

  7. #7
    Dimmi, all'interno dello stesso file hai scritto sia la parte html che php? Se sì, potresti postare il file per intero? Così è molto più semplice capire la struttura del tutto

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    28
    Si ho inserito tutto nella stessa pagina! Eccolo completo:
    <?php
    $nomehost = "";
    $nomeuser = "";
    $password = "";
    $dbname="";
    $connessione = mysql_connect($nomehost,$nomeuser,$password);
    $on = 0;
    if($on==1) die("Registrazioni offline");
    else
    if($connessione==0){echo"Connessione fallita";}
    $database_select=mysql_select_db($dbname,$connessi one);
    if($database_select==0){echo"Selezione non riuscita";}
    $username=$_POST['username'];
    $nome=$_POST['nome'];
    $password=$_POST['password'];
    $conferma=$_POST['conferma'];
    $email=$_POST['email'];
    if($password!=$conferma){echo"<font color='white'>Ricontrolla i campi password</font>";}else{
    if($username=='' or $nome=='' or $password=='' or $conferma=='' or $email==''){echo "<font color='white'>Ricorda di compilare tutti i campi</font>";}
    $sql = "SELECT id FROM utenti WHERE username='$username'";
    $risultato = mysql_query($sql, $connessione);
    $num_righe = mysql_num_rows($risultato);

    if($num_righe == 0){
    $sql2 = "Insert into `utenti` (`username`,`nome`,`password`,`email`) VALUES ('$username','$nome','$password','$email')";
    $result = mysql_query($sql2, $connessione);
    header("location:regf.php");
    } else {
    $return = false;
    }
    }
    ?>


    <?php
    include ("menu.php");
    ?>
    <div id="frase">
    <h2>

    Benvenuto nella pagina di registrazione</p></h2>
    </div>
    <div id="form">
    <form method='post' action="registra.php">
    <table border='0' align='center'>
    <tr>
    <td>Username :</td><td align='center'>
    <input name='username' size='30' /></td>
    </tr>
    <tr>
    <td>Nome :</td><td align='center'>
    <input name='nome' size='30' /></td>
    <td>Nome Del Registrante</td>
    </tr>
    <tr>
    <td>Password :</td><td align='center'>
    <input name='password' type='password' size='30' /></td>
    </tr>
    <tr>
    <td>Ripeti Password :</td><td align='center'>
    <input name='conferma' type='password' size='30' /></td>
    <td>Ripeti La Password</td>
    </tr>
    <tr>
    <td>Email :</td><td align='center'>
    <input name='email' size='30' /></td>
    <td>Inserite una mail valida.</td>
    </tr>
    </table>


    <button input type='submit' name='action' class='submit' value=''>Registra</button>
    </form>
    </div>
    </body>
    </html>

  9. #9
    Originariamente inviato da RoTeam
    Ah ma lui sa cosa scrive

    http://www.inforge.net/community/sof...p-e-mysql.html
    Spero che almeno si sia reso conto di appartenere a quell'80%
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Bene, ora è tutto più chiaro, grazie!

    Ti dico subito che in questo script succedono cose strane perché PHP esegue all'istante le tue direttive, anche se ovviamente $username(e cioè $_POST['username']) risulta vuoto...

    Quindi questa query...

    ....$sql = "SELECT id FROM utenti WHERE username='$username'";....

    ...In pratica ti prende tutte le righe in cui l'username corrisponde a "" (vuoto), quindi anche se istintivamente noi crediamo che non esista nessun username con quel nome... in realtà php conta anche quelli!


    Dunque, se nella tua tabella utenti ci sono 10 righe in cui username è vuoto, il conteggio che tu fai con $num_righe = mysql_num_rows($risultato) non è 0, bensì 10... ed è per questo che lo script non funziona!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.