Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777

    [PHP/MYSQL] controllo utente

    ciao a tutti ...questo è il codice
    Codice PHP:
    $control_utentemysql_query("SELECT * FROM utente WHERE mail='$mail'");
            if(
    mysql_num_rows($control_utente) > 0){
                if(
    $vutentemysql_fetch_array($control_utente)){
                
    $vnome=$vutente['nome'];
                        if(
    $nome != $vnome){
                        
    $error_mail="<span style=\"color:red\">Email già presente</span>";
                        
    $t++;
                        }
                }
            }
            else{
            
    $insert_utentemysql_query("INSERT INTO utente (id,nome,mail) VALUES(NULL,\"$nome\",\"$mail\")");
            } 
    tramite questo codice faccio il controllo su una tabella utente con campi id nome e mail.
    quando l'utente inserisce in un commento nome e mail se sono nuovi vengono inseriti nel db altrimenti scatta il controllo..se è presente la mail ma l'utente non coincide con quello del corrispettivo record viene bloccato altrimenti lo riconosce e va avanti....
    va bene cosi o c'era un modo più facile di effettuare il controllo...

    un'altra cosa
    il campo mail viene controllato dall'espressione regolare...questo mi evita potenziali pericoli della scrittura where mail='$mail' come le iniejction o devo fare qualcos'altro?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    dimenticavo che il nome anche se la mail è diversa può essere uguale..come scongiurare ciò?

  3. #3
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    va bene cosi o c'era un modo più facile di effettuare il controllo...
    dipende se questo è quello che vuoi controllare. Intendo dire che in realtà io posso postare con una mail fittizia senza problemi (cosa generalmente accettata ed accettabile nei commenti). Se poi il vero proprietario della mail cerca di postare si trova bloccato, oppure se mi sono dimenticato che nome avevo messo (magari ci metto un nick o uso le maiuscole in modo diverso...).
    Non mi sembra un controllo utilissimo.


    Solo una nota tescnica sull'ultima query: visto che il campo id è (immagino) autoincrement puoi scriverla così

    Codice PHP:
    "INSERT INTO utente (nome,mail) VALUES(\"$nome\",\"$mail\")" 

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    grazie luke
    allora sono giunto a questo punto in realtà
    Codice PHP:
    $control_utentemysql_query("SELECT * FROM utente");
            
            while(
    $vutentemysql_fetch_array($control_utente)){
                
    $vnome=$vutente['nome'];
                
    $vmail=$vutente['mail'];
                
                if(
    $vnome != $nome AND $vmail != $mail){
                
    $insert_utentemysql_query("INSERT INTO utente (nome,mail) VALUES(\"$nome\",\"$mail\")");
                }
                elseif(
    $vnome != $nome AND $vmail == $mail){
                
    $error_mail="<span style=\"color:red\">Email già presente</span>";
                
    $t++;
                }
                elseif(
    $vnome == $nome AND $vmail != $mail){
                
    $error_nome="<span style=\"color:red\">Nome già presente</span>";
                
    $t++;
                }
                
                
            } 
    cosi mi dovrebbe controllare questi casi:
    1) se il nome è diverso e la mail è diversa dal db è un utente nuovo e viene inserito
    2) se la mail è uguale possono succedere due casi: che il nome è uguale e di conseguenza è l'utente giusto o il nome è diverso.
    3) se la mail può essere diversa ma il nome è uguale..questo per evitare casi di omonimia...

    non mi convince molto se controllare il nome indipendente dalla mail o controllarla do

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    dopo quello che mi ha detto luke sono arrivato a questo punto
    Codice PHP:
    $control_utentemysql_query("SELECT * FROM utente");
            
            while(
    $vutentemysql_fetch_array($control_utente)){
                
    $vnome=$vutente['nome'];
                
    $vmail=$vutente['mail'];
                
                if(
    $vnome != $nome AND $vmail != $mail){
                
    $insert_utentemysql_query("INSERT INTO utente (id,nome,mail) VALUES(NULL,\"$nome\",\"$mail\")");
                }
                elseif(
    $vnome != $nome AND $vmail == $mail){
                
    $error_nome="<span style=\"color:red\">
    Errore sul nome. Puoi aver sbagliato a digitare. Attento alle minuscole e maiuscole
    Se desideri cambiare nome utente clicca qui.</span>"
    ;
                
    $t++;
                }
                elseif(
    $vnome == $nome AND $vmail != $mail){
                
    $error_nome="<span style=\"color:red\">Il nome che hai usato è già stato scelto. Usa un nome diverso.</span>";
                
    $t++;
                }

    mi fa il seguente controllo
    se l'utente mette la mail e poi mette un nick diverso per sbaglio o volontariamente perchè desideroso di cambiarlo gli uscirà un messaggio di errore sul nome e un link per risolvere il problema...
    se invece c'è casi di omonimia viene invitato a u

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 © 2025 vBulletin Solutions, Inc. All rights reserved.