Visualizzazione risultati 1 fino 14 di 14

Discussione: controllo username già esistente...

  1. #1
    L'avatar di fabrifibra
    fabrifibra non è connesso Utente giovane
    Data registrazione
    05-06-2006
    Messaggi
    51

    Lightbulb controllo username già esistente...

    ehi
    devo fare il controllo per verificare se nel database è gia presente un username...

    l'username viene inviato tramite $_POST['username'] e nella tabella "user" il campo degli username è nominato "username"

    ho provato varie soluzioni ma nn mi ritrovo nulla...ho provato anche a cercare nel forum ma niente...

    non penso sia cosa difficile...vorrei che se esistesse gia mi stampasse "Username già esistente" in caso contrario...continuasse con l'esecuzione dello script....


  2. #2
    L'avatar di LastWings
    LastWings non è connesso AlterGuru
    Data registrazione
    14-10-2006
    Messaggi
    1,628

    Predefinito

    Infatti è banale
    Codice PHP:
    $db_name = "my_fabrifibra";
    $db_host = "localhost";
    $db_user = "fabrifibra";

    $err_database="Errore di accesso al database.Riprovare più tardi,nel caso,contattare il web master";

    $db = mysql_connect($db_host, $db_user);
    mysql_select_db($db_name, $db)
    or die (
    $err_database);

    $nick = stripslashes(strip_tags($_POST['username']));

    $read="SELECT Count( * ) AS Conta FROM username WHERE nick = '$nick'";
    $raw=mysql_query($read);
    $row= mysql_fetch_array($raw);
    $raw.close;



    if (
    $row[Conta]>0 ){
    print (
    "Username già esistente");
    }

    else{

    mysql_query ("INSERT INTO username (nick, ...) VALUES ( '$nick',...)");
    }

    mysql_close($db);
    Questo è un esempio, poichè, non conosco la struttura della tua tabella.
    Ecchi Paradise - Frammenti Perduti - Semplici Parole - Recensioni ed Opinioni

    Non contattatemi privatamente per ricevere supporto, per queste cose esiste il forum pubblico
    .

  3. #3
    L'avatar di fabrifibra
    fabrifibra non è connesso Utente giovane
    Data registrazione
    05-06-2006
    Messaggi
    51

    Predefinito

    non riesco a farlo funzionare,
    la struttura della tabella è semplice...cè una colonna username con gli username gia iscritti....
    voglio la query per contare quante righe contengono "$_POST['username']" nella colonna "username" (WHERE username = '$_POST[username]')

    e la regola per fare "$rows > 0" che...in caso riscontrasse una linea ...dia l'errore: username già esistente....in caso contrario vada avanti con lo script!

  4. #4
    L'avatar di LastWings
    LastWings non è connesso AlterGuru
    Data registrazione
    14-10-2006
    Messaggi
    1,628

    Predefinito

    In che senso, non riesci a farlo funzionare?
    Dal vecchio codice, modifica
    Codice PHP:
    $read="SELECT Count( * ) AS Conta FROM username WHERE nick = '$nick'";
    con

    Codice PHP:
    $read="SELECT Count( * ) AS Conta FROM username WHERE username = '$nick'";

    e dove c'è

    Codice PHP:
    mysql_query ("INSERT INTO username (nick, ...) VALUES ( '$nick',...)");
    con

    Codice PHP:
    mysql_query ("INSERT INTO username (username) VALUES ( '$nick')");
    Citazione Originalmente inviato da fabrifibra Visualizza messaggio
    voglio la query per contare quante righe contengono "$_POST['username']" nella colonna "username" (WHERE username = '$_POST[username]')
    scusa, ma questa query secondo te, cosa fa, se non quello che chiedi?
    Citazione Originalmente inviato da LastWings Visualizza messaggio
    Codice PHP:
    $read="SELECT Count( * ) AS Conta FROM username WHERE nick = '$nick'";
    $raw=mysql_query($read);
    $row= mysql_fetch_array($raw);
    $raw.close;
    Citazione Originalmente inviato da fabrifibra Visualizza messaggio
    e la regola per fare "$rows > 0" che...in caso riscontrasse una linea ...dia l'errore: username già esistente....in caso contrario vada avanti con lo script!
    Questa è la parte di codice che fa quello che chiedi.

    Citazione Originalmente inviato da LastWings Visualizza messaggio
    Codice PHP:
    if ($row[Conta]>0 ){
    print (
    "Username già esistente");
    }

    else{

    mysql_query ("INSERT INTO username (nick, ...) VALUES ( '$nick',...)");
    }
    Ecchi Paradise - Frammenti Perduti - Semplici Parole - Recensioni ed Opinioni

    Non contattatemi privatamente per ricevere supporto, per queste cose esiste il forum pubblico
    .

  5. #5
    L'avatar di fabrifibra
    fabrifibra non è connesso Utente giovane
    Data registrazione
    05-06-2006
    Messaggi
    51

    Predefinito

    nn capisco quell AS "Conta"

    che è conta?

  6. #6
    Guest

    Predefinito

    quel AS "conta" si riferisce a questa parte di script:
    Codice PHP:
    $read="SELECT Count( * ) AS Conta FROM username WHERE nick = '$nick'";
    in pratica conta le righe,se sono maggiori di 0 allora significa ke il nome è già in uso,semplice!

  7. #7
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da gbtchiaravalle Visualizza messaggio
    ... in pratica conta le righe,se sono maggiori di 0 allora significa ke il nome è già in uso,semplice!
    Non proprio... serve a definire un alias (cioè un altro nome) ai campi estratti... ed è necessario quando derivano da funzioni aggregate come COUNT().

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  8. #8
    L'avatar di fabrifibra
    fabrifibra non è connesso Utente giovane
    Data registrazione
    05-06-2006
    Messaggi
    51

    Predefinito

    ma "Conta" è una funzione di php? -.-
    nn capisco...
    Count ok
    ma Conta? .-.

  9. #9
    Guest

    Predefinito

    AS dichiara un alias, quindi Conta è come una variabile costruita appositamente per quel dato COUNT.
    Il linguaggio usato nelle query è SQL.


    Ciao!

  10. #10
    L'avatar di fabrifibra
    fabrifibra non è connesso Utente giovane
    Data registrazione
    05-06-2006
    Messaggi
    51

    Predefinito

    Codice PHP:
    $query = "SELECT Count( * ) AS Conta FROM n_user WHERE username = '$_POST[username]'";
    $raw = mysql_query($query);
    $row = mysql_fetch_array($raw);
    $raw.close;
    elseif(
    $row[Conta]>0 )
    {
    echo
    "Username gia esistente";
    }
    OK sto uscendo di testa....
    ditemi dove sto sbagliato

  11. #11
    L'avatar di LastWings
    LastWings non è connesso AlterGuru
    Data registrazione
    14-10-2006
    Messaggi
    1,628

    Predefinito

    Hai un elseif, questo, pregiudica che prima hai aperto un if, e sarebbe utile che mostrassi quella parte.
    Edit: Inoltre, prima dell' elseif, non vedo alcuna parentesi graffa chiusa.
    Ultima modifica di LastWings : 27-02-2008 alle ore 19.59.43
    Ecchi Paradise - Frammenti Perduti - Semplici Parole - Recensioni ed Opinioni

    Non contattatemi privatamente per ricevere supporto, per queste cose esiste il forum pubblico
    .

  12. #12
    L'avatar di fabrifibra
    fabrifibra non è connesso Utente giovane
    Data registrazione
    05-06-2006
    Messaggi
    51

    Predefinito

    Citazione Originalmente inviato da LastWings Visualizza messaggio
    Hai un elseif, questo, pregiudica che prima hai aperto un if, e sarebbe utile che mostrassi quella parte.
    Edit: Inoltre, prima dell' elseif, non vedo alcuna parentesi graffa chiusa.
    Codice PHP:
    /* controllo che siano stati compilati tutti i campi del form */

    if( trim(empty($_POST['username'])) OR
    trim(empty($_POST['password1'])) OR
    trim(empty($_POST['password2'])) OR
    trim(empty($_POST['email'])) OR
    trim(empty($_POST['sex'])))
    {
    echo
    "Errore! Sei sicuro di aver compilato tutti i campi del form?";
    }
    /* controlliamo il formato dell'email */
    elseif(!eregi("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})", $_POST['email']))
    {
    echo
    "Errore! Non hai inserito un indirizzo email valido!";
    }
    /* controllo che le password coincidano */
    elseif($_POST['password1'] != $_POST['password2'])
    {
    echo
    "Le password non coincidono!";
    }
    $conn = mysql_connect($db_host,$db_user,$db_pass) or die("Errore nella connessione a MySql: " . mysql_error());
    mysql_select_db($db_name,$conn) or die("Errore nella selezione del db: " . mysql_error());
    $query = "SELECT Count( * ) AS Conta FROM n_user WHERE username = '$_POST[username]'";
    $raw = mysql_query($query);
    $row = mysql_fetch_array($raw);
    $raw.close;
    elseif(
    $row[Conta]>0 )
    {
    echo
    "Username gia esistente";
    }
    else{
    $conn = mysql_connect($db_host,$db_user,$db_pass) or die("Errore nella connessione a MySql: " . mysql_error());
    mysql_select_db($db_name,$conn) or die("Errore nella selezione del db: " . mysql_error());
    $query = ("INSERT INTO n_user (username,password,email,sex) VALUES ('$_POST[username]',md5('$_POST[password1]'),'$_POST[email]','$_POST[sex]')");
    $ris = mysql_query($query,$conn) or die("Errore nella query: " . mysql_error());
    echo
    "Tutto ok!";
    }
    tra 10 min mi taglio le vene

  13. #13
    L'avatar di LastWings
    LastWings non è connesso AlterGuru
    Data registrazione
    14-10-2006
    Messaggi
    1,628

    Predefinito

    Manca un pezzo, ed è proprio come pensavo, nel post precedente.
    La connessione al database, è fuori da ogni condizione, non risulta essere nel ramo dove non sono presenti errori, ma fuori.
    Ok, va "bene" se terminiamo, il primo ciclo qui:

    Codice PHP:
    echo "Le password non coincidono!";
    }
    Ed al posto di

    Codice PHP:
    elseif($row[Conta]>0 )
    {
    avessi messo, come io ti avevo indicato nei post precedenti, ossia, if, senza else davanti, visto che non neghi nulla, non essendo aperto nessuna condizione, tuttavia la connessione verrebbe effettuata anche se ci sono errori.

    Edit:

    Senza modificare più di tanto il tuo script, ho apportato delle leggere modifiche, che confrontandoli, potrai notare.

    Codice PHP:
    $error = false;
    if(
    trim(empty($_POST['username'])) OR
    trim(empty($_POST['password1'])) OR
    trim(empty($_POST['password2'])) OR
    trim(empty($_POST['email'])) OR
    trim(empty($_POST['sex'])))
    {
    echo
    "Errore! Sei sicuro di aver compilato tutti i campi del form?";
    $error = true;
    }
    /* controlliamo il formato dell'email */
    elseif(!eregi("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})", $_POST['email']))

    {
    $error = true;
    echo
    "Errore! Non hai inserito un indirizzo email valido!";
    }
    /* controllo che le password coincidano */
    elseif($_POST['password1'] != $_POST['password2'])
    {
    $error = true;
    echo
    "Le password non coincidono!";
    }
    if(
    $error == false){
    $conn = mysql_connect($db_host,$db_user,$db_pass) or die("Errore nella connessione a MySql: " . mysql_error());
    mysql_select_db($db_name,$conn) or die("Errore nella selezione del db: " . mysql_error());
    $query = "SELECT Count( * ) AS Conta FROM n_user WHERE username = '$_POST[username]'";
    $raw = mysql_query($query);
    $row = mysql_fetch_array($raw);
    $raw.close;
    if(
    $row[Conta]>0 )
    {
    echo
    "Username gia esistente";
    }
    else{
    /*... RESTO DEL PROGRAMMA*/
    $query = ("INSERT INTO n_user (username,password,email,sex) VALUES ('$_POST[username]',md5('$_POST[password1]'),'$_POST[email]','$_POST[sex]')");
    $ris = mysql_query($query,$conn) or die("Errore nella query: " . mysql_error());
    echo
    "Tutto ok!";
    }
    mysql_close($conn);
    }
    ?>
    Ti consiglio di riguardarti le strutture condizionali, e cercare di capirle meglio.

    Un' altra cosa, riguardo il tuo script, non ho controllato se funziona o meno, mi sono preoccupato di correggertelo, nelle parti ove ho messo mano, le quali erano per ora più importanti del resto.
    Ultima modifica di LastWings : 27-02-2008 alle ore 20.47.38
    Ecchi Paradise - Frammenti Perduti - Semplici Parole - Recensioni ed Opinioni

    Non contattatemi privatamente per ricevere supporto, per queste cose esiste il forum pubblico
    .

  14. #14
    L'avatar di fabrifibra
    fabrifibra non è connesso Utente giovane
    Data registrazione
    05-06-2006
    Messaggi
    51

    Predefinito

    risolto mettendo if

    grazie a tutti, credo di aver fatto il posto piu lungo e niubbo di altervista...per un argmoento stupidissimo

Regole di scrittura

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