Visualizzazione risultati 1 fino 7 di 7

Discussione: Visualizzare il nome dell'utente loggato

  1. #1
    Guest

    Predefinito Visualizzare il nome dell'utente loggato

    Salve, ho un form LOGIN, una INDEX accessibile sono a chi è loggato, un file di CONNESSIONE al database!!!
    Ora volevo sapere come posso fare, quando un utente si logga, a far vedere nella index il suo "user" prelevato dal database!?!?!?!?
    Vi posto i codici:
    config.php
    Codice:
    <?php
    // avvio la sessione
    session_start();
    
    // Dati connessione al database
    $db_host = 'localhost';        // Host - solitamente localhost
    $db_utente = 'user';        // Nome utente del Database
    $db_password = 'pass';        // Password del Database
    $db_nomedb = 'name';     // Nome del Database
    
    // Effettua la connessione al database
    $dbh=mysql_connect ($db_host, $db_utente, $db_password) or die ('Errore nella stringa di connessione al database: '.mysql_error());
    mysql_select_db($db_nomedb);
    ?>
    ....
    index.php
    Codice:
    <?php
    // Includo la connessione al database
    require('../db/config.php');
    
    // Se non è stata definita la variabile manda l'utente alla homepage
    if(!isset($_SESSION['login']))
    {
        header('Location: login.php');
        exit;
    }
    ?>
    <html>
    <body>
    contenuto body
    </body>
    </html>
    ...
    login.php (molto sintetizzato)
    Codice:
    <?php
    // Includo la connessione al database
    require('../db/config.php');
    
    
    // Se il modulo viene inviato...
    if(isset($_POST['login']))
    {
        
        // Dati Inviati dal modulo
        $user = (isset($_POST['user'])) ? trim($_POST['user']) : '';    // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
        $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';    // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''
        
        // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
        if (!get_magic_quotes_gpc()) {
            $user = addslashes($user);
            $pass = addslashes($pass);
        }
        
        // Crypto la password e la confronto con quella nel database
        $pass = md5($pass);
        
        // Controllo l'utente esiste
        $query = mysql_query("SELECT id FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1");
        
        // Se ha trovato un record
        if(mysql_num_rows($query) == 1)
        {
            // prelevo l'id dal database
            $login = mysql_fetch_array($query);
            
            // Creo una variabile di sessione
            $_SESSION['login'] = $login['id'];
            
            // reindirizzo l'utente
            header('Location: index.php');
            exit;
        }
        // se non esiste da l'errore
        else
            die('nome utente o password errati');
    }
    ?>
    <html>
    <head>
    <title>Collegati</title>
    </head>
    <body>
    <form action="" method="post"> 
    Nome utente<br />
    <input name="user" type="text" id="user"/><br />
    Password<br />
    <input name="pass" type="password" id="pass" /><br />
    <input name="login" type="submit"  value="Collegati" /><br />
    </form>
    </body>
    </html>
    ...
    Attendo risposta grazie!!!

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Lo script suppongo lo hai create te vero?

    Se si dovresti memorizzare, oltre che al'id, l'username dell'utente in un'altra sessione, in modo da poterlo stampare successivamente.

    Puoi inserire inserire questi dati in un'unica sessione, basta inserire all'interno un'array con ad esempio al primo indice dell'array l'id dell'utente e al secondo l'username, ma a questo punto il loro contenuto dovrà essere recuperabile cosi:

    Codice PHP:
    echo $_SESSION["login"][indice_array]
    In alternativa alla creazione di due array differenti.

    Sevenjeak
    Software developer and much more

  3. #3
    Guest

    Predefinito

    La parte più ussenziale dello script l'ho trovata su internet... poi ho apportato molte modifiche sia a livello grafico che di configurazione! Comunque non sono molto prativo di php anche se le basi le ho... SE NON CHIEDO TROPPO... potresti riscrivermi il codice con l'array aggiunto perche davvero non so dove metterlo???

  4. #4
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Bhe.. veramente sarebbe meglio che studiassi un po più approfonditamente il php, soprattutto come farlo interagire con il linguaggio sql, noterai che quello che chiede non è poi cosi tanto difficile da realizzare.

    Cmq per prima cosa, in login.php dovresti modifica anche questo pezzo di codice:

    Codice PHP:
    // Controllo l'utente esiste
    $query = mysql_query("SELECT id FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1");
    In questo modo:

    Codice PHP:
    $query = mysql_query("SELECT id, user FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1");
    In modo tale da recuperare anche l'user dell'utente.

    Poi dove c'e scritto:

    Codice PHP:
    // Creo una variabile di sessione
    $_SESSION['login'] = $login['id'];
    Potresti modificare in codice cosi, se non vuoi creare due sessioni differenti, una per memorizzare l'id e l'altra per memorizzare l'username:

    Codice PHP:
    // Creo una variabile di sessione
    $_SESSION['login'] = array($login['id'], $login['user']
    In modo da recuperare i dati, in ogni pagina, dopo aver fatto il login, in questo modo:

    Codice PHP:
    echo $_SESSION['login'][0] // Recuperi l'id dell'utente che ha registrato la sessione
    echo $_SESSION['login'][1] // Recuperi l'username dell'utente che ha registrato la sessione
    P.S.: Studia anche le sessioni, io ti consiglio ti seguire le guide che trovi su html.it, relative al php ( http://php.html.it/ ).
    Ultima modifica di sevenjeak : 05-04-2012 alle ore 10.07.00

    Sevenjeak
    Software developer and much more

  5. #5
    Guest

    Predefinito

    Si sicuramente poi studierò perché se so solo l'html riesco a realizzare solo padine statiche e la mia intenzione non è questa ;) Comunque inserita quata stringa mia da errore
    Codice:
    echo $_SESSION['login'][1] // Recuperi l'username dell'utente che ha registrato la sessione
    Parse error: syntax error, unexpected T_ECHO, expecting ',' or ';' in /membri/colore123/home/index.php on line 29

    Come risolvo? Ti ripeto sono quasi analfabeta di php :(

    Grazie in anticipo!

  6. #6
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    mi sono dimenticato il punto e virgola alla fine della riga.. xD

    Sevenjeak
    Software developer and much more

  7. #7
    Guest

    Predefinito

    Si anche la parentesi tonda!!! Vbb sbagliando si impara!!! :) comunque ho risolto eliminando l"echo" dell'id perche a me serviva solo l'user !!

    Grazie mille senza di te non sarei potuto andare avanti ;)

    Grazie ancora!!! Ciao

Regole di scrittura

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