Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente bannato
    Registrato dal
    Mar 2009
    Messaggi
    37

    profilo utente e controllo email

    Salve, sto faccendo il profilo degli utenti , ma mi servirebbe come fare ad controllare
    quando provono ad modificare l'email e io devo verificare se quell'email esiste già.
    Ho provato tutti i modi ma non mi riesce.
    Ora vi posto il codice che uso:

    Codice PHP:
    <?php
    session_start
    ();
    require_once(
    dirname(__FILE__) . '/../include.php');
    require_once(
    dirname(__FILE__) . '/header.php');
        
    checkLogin('1');
        
    $query mysql_query "SELECT * FROM `users` WHERE `ID` = '" mysql_real_escape_string $_SESSION['user_id'] ) . "'" );
        
    $rmysql_fetch_assoc $query );
        
    if(isset(
    $_POST)) {

    $email mysql_codifica($_POST['email']);
    $user mysql_codifica($_SESSION["user_id"]);
    $query "SELECT * FROM users " .
              
    "WHERE Username = '$user' " .
              
    "OR Email = '$email' ";
    $result mysql_query($query) or die (mysql_error());
    if (
    mysql_num_rows($result) != 0)
    {
    while (
    $row mysql_fetch_array($result))
    {

      
    //email già presente nel db  QUI DEVE STARE IL CONTROLLO.
      
    if (!$row["Email"] == $email)
      {
       echo 
    "

    "
    ;
       echo 
    "La casella E-mail, [b]" $row['Email'] . "[/b] è già presente nel Data Base, scegliere una diversa";
       echo 
    "</p>";
      }
    }


    }
    //Se invece username e email non sono presenti nel db procediamo con l'inserimanto
    else
    {
        
    $update "UPDATE `users` SET `Email` = '" mysql_real_escape_string $_POST['email'] ) . "'";
            
    /* if we have a new password via POST we update the old one */
                
                
                
    $update .= " WHERE `ID` = " mysql_real_escape_string $_SESSION['user_id'] ) . "";
                
                if ( 
    mysql_query $update ) )
                {
                    
    $msg 'Your profile was successfully updated!';
                }
                else {
                    
    $error 'I was unable to save your profile. Please contact the administrator'.mysql_error();
                }             

         }
       }
    ?>
    <?php    
    if ( isset ( $error ) )    { echo '            <p class="error">' $error '</p>' "\n";    }    ?>
    <?php    
    if ( isset ( $msg ) )    { echo '            <p class="msg">' $msg '</p>' "\n";    }    ?>

        <form class="form" action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
        
            <input type="hidden" name="_submit_check" value="1"/> 
        
            <table align="center" width="99%">
            
                <tr>
                    <td><div align="left">Username</div></td>
                </tr>
                <tr>
                    <td><div align="left"><input disabled class="input" type="text" name="username" id="username" size="25" maxlength="40" value="<?php echo $r['Username']?>" /></div></td>                
                </tr>
                <tr>
                    <td><div align="left">Password</div></td>
                </tr>
                <tr>                
                    <td><div align="left"><input class="input" type="password" name="password" id="password" size="25" maxlength="32" /></div></td>                
                </tr>
                <tr>
                    <td><div align="left">Email</div></td>
                </tr>
                <tr>            
                    <td><div align="left"><input class="input" type="text" name="email" id="email" size="25" value="<?php if ( isset ( $_POST['email'] ) ) { echo $_POST['email']; } else { echo $r['Email']; } ?>" /></div></td>
                </tr>
                
                <tr>
                    <td>
                    <input type="submit" name="Update" value="Update"  class="submit-btn" src="images/btn.gif" alt="submit" title="submit" />
                    <br class="clear" />
                    </td>
                </tr>
                
            </table>
                        
        </form>
        
        [url="logout.php"]logout[/url]
        
    <?php require_once(dirname(__FILE__) . '/footer.php');
    ed un giorno che ci sto dentro..

    in pratica,
    se metto pippo@gmail.com l'email utente pippo. deve uscire modifica ok.
    invece se metto pluto@gmail.com "ma un utente c'è la già", allora mi deve fare il messaggio
    email esiste già.

    Mi dite come farE?.

    grazie.

  2. #2
    Utente bannato
    Registrato dal
    Mar 2009
    Messaggi
    37
    ora cosi funziona. ma non mi stampa il messaggio di esiste già email:


    Codice PHP:
    <?php
    session_start
    ();
    require_once(
    dirname(__FILE__) . '/../include.php');
    require_once(
    dirname(__FILE__) . '/header.php');
        
    checkLogin('1');
        
    $query mysql_query "SELECT * FROM `users` WHERE `ID` = '" mysql_real_escape_string $_SESSION['user_id'] ) . "'" );
        
    $rmysql_fetch_assoc $query );
        
    if(isset(
    $_POST)) {

    $email mysql_codifica($_POST['email']);
    $user mysql_codifica($_SESSION["user_id"]);
    $query "SELECT * FROM users " .
              
    "WHERE Username = '$user' " .
              
    "OR Email = '$email' ";
    $result mysql_query($query) or die (mysql_error());
    if (
    mysql_num_rows($result) != 0)
    {
    while (
    $row mysql_fetch_array($result))
    {

      
    //email già presente nel db
      
    if (!$row["Email"] == $email)
      {
       
    //echo "

    ";
       
    $error =  "La casella E-mail, [b]" . $row['Email'] . "[/bè già presente nel Data Basescegliere una diversa";
       //echo "
    </p>";
       echo 
    $error;
      }
    }


    }//Se invece username e email non sono presenti nel db procediamo con l'inserimanto
    else
    {
        
    $update = "UPDATE `usersSET `Email` = '" . mysql_real_escape_string ( $_POST['email'] ) . "'";
            /* if we have a new password via POST we update the old one */
                
                
                
    $update .= " WHERE `ID` = " . mysql_real_escape_string ( $_SESSION['user_id'] ) . "";
                
                if ( mysql_query ( 
    $update ) )
                {
                    
    $msg = 'Your profile was successfully updated!';
                }
                else {
                    
    $error = 'I was unable to save your profile. Please contact the administrator'.mysql_error();
                }             

         }
       }
    ?>
    <?php    if ( isset ( 
    $error ) )    { echo '            <p class="error">' . $error . '</p>' . "\n";    }    ?>
    <?php    if ( isset ( 
    $msg ) )    { echo '            <p class="msg">' . $msg . '</p>' . "\n";    }    ?>

        <form class="
    form" action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
        
            <input type="hidden" name="_submit_check" value="1"/> 
        
            <table align="center" width="99%">
            
                <tr>
                    <td><div align="left">Username</div></td>
                </tr>
                <tr>
                    <td><div align="left"><input disabled class="input" type="text" name="username" id="username" size="25" maxlength="40" value="<?php echo $r['Username']?>" /></div></td>                
                </tr>
                <tr>
                    <td><div align="left">Password</div></td>
                </tr>
                <tr>                
                    <td><div align="left"><input class="input" type="password" name="password" id="password" size="25" maxlength="32" /></div></td>                
                </tr>
                <tr>
                    <td><div align="left">Email</div></td>
                </tr>
                <tr>            
                    <td><div align="left"><input class="input" type="text" name="email" id="email" size="25" value="<?php if ( isset ( $_POST['email'] ) ) { echo $_POST['email']; } else { echo $r['Email']; } ?>" /></div></td>
                </tr>
                
                <tr>
                    <td>
                    <input type="submit" name="Update" value="Update"  class="submit-btn" src="images/btn.gif" alt="submit" title="submit" />
                    <br class="clear" />
                    </td>
                </tr>
                
            </table>
                        
        </form>
        
        [url="logout.php"]logout[/url]
        
    <?php require_once(dirname(__FILE__) . '/footer.php');

    EDIT- NON FUNZIONA ANCORA NULLA, IO NON STO CAPENDO PIù NULLA.

  3. #3
    Utente bannato
    Registrato dal
    Mar 2009
    Messaggi
    37
    c'è qualcuno mi spiega come fare?

    grazie.

  4. #4
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao,
    non sono stato a leggere il tuo codice, è noto che quando qualcuno posta tutto quel codice nessuno lo legge.

    Il tuo problema è: come verificare che un indirizzo email non sia già stato usato da qualcun altro?

    La risposta è: fai una query select

    Codice PHP:
    SELECT FROM 'tabella_utenti' WHERE email LIKE 'emaildacercare' AND user_id != 'id_utente_corrente' 
    Se ti ritorna qualcosa vuol dire che l'email è già presente, altrimenti no.

  5. #5
    Utente bannato
    Registrato dal
    Mar 2009
    Messaggi
    37
    Originariamente inviato da Razorblade
    Ciao,
    non sono stato a leggere il tuo codice, è noto che quando qualcuno posta tutto quel codice nessuno lo legge.

    Il tuo problema è: come verificare che un indirizzo email non sia già stato usato da qualcun altro?

    La risposta è: fai una query select

    Codice PHP:
    SELECT FROM 'tabella_utenti' WHERE email LIKE 'emaildacercare' AND user_id != 'id_utente_corrente' 
    Se ti ritorna qualcosa vuol dire che l'email è già presente, altrimenti no.
    grazie mille, ora funziona tutto regolamente.

  6. #6
    Utente bannato
    Registrato dal
    Mar 2009
    Messaggi
    37
    ultima cosa,
    ma se si iscrivono 20 utenti funzionerebbe tranquillamente?.
    per adesso cene sono 2 per fare il controllo ma dopo?


    grazie mille.

  7. #7
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Se hai scritto bene la query funzionerà anche con 100 mila utenti.
    In ogni caso puoi effettuare dei test, ti apri 3 o 4 account email differenti ( che possono sempre tornare utili ) e crei gli utenti.

    Ciao

  8. #8
    Utente bannato
    Registrato dal
    Mar 2009
    Messaggi
    37
    Originariamente inviato da Razorblade
    Se hai scritto bene la query funzionerà anche con 100 mila utenti.
    In ogni caso puoi effettuare dei test, ti apri 3 o 4 account email differenti ( che possono sempre tornare utili ) e crei gli utenti.

    Ciao
    ok. lo scritta cosi:

    Codice PHP:
    $email mysql_codifica($_POST['email']);
    $user mysql_codifica($_SESSION["user_id"]);
    $query "SELECT * FROM users WHERE email LIKE '$email' AND ID != '$user'"
    mysql_codifica(): è una funzione che mi ripara dai escape.

    ID: è il campo id dell'utente della tabella users preso da session . ed la email e il campo email da verificare il controllo.

    Va bene cosi?.

    o già provato con 3 account , sembra tutto liscio.

    grazie mille. e buona giornata.

  9. #9
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Dovrebbe essere ok.
    Ti consiglio di usare (int) per gli id ( immagino sia un intero.. )

    $user = (int)$_SESSION["user_id"];

    ciao

  10. #10
    Utente bannato
    Registrato dal
    Mar 2009
    Messaggi
    37
    Originariamente inviato da Razorblade
    Dovrebbe essere ok.
    Ti consiglio di usare (int) per gli id ( immagino sia un intero.. )

    $user = (int)$_SESSION["user_id"];

    ciao
    giusto, grazie mille e buona giornata.

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.