• User Attivo

    Stampare a video un dato contenuto in sessione.

    Dopo tanto tempo ri-buongiorno! 🙂
    Usufruisco di questa discussione poichè il mio mi sembra un errore banalissimo e probabilmente ci sono state tante risposte semi-identiche...
    Ma dato che non so bene cosa cercare per trovare risposta provo a proporla qui (sperando di non infastidire o interrompere comunque la discussione precedente).
    Allora, il problema é che un utente, una volta registratosi nel mio sito, cliccando su "my account" DOVREBBE vedere il suo nome, il cognome (scelti da lui nella registrazione), l'id (il numero) e il nickname... ed é proprio quest'ultimo che non riesco a far visualizzare a video nella sua "scheda personale"!
    La tabella di MySql é formata appunto da:
    member_id, firstname, lastname, login e password
    il "login" é il nickname, per richiamare gli altri dati metto
    <?php echo $_SESSION['SESS_LAST_NAME'];?>
    e già qui mi perdo, perché uso questo codice solamente perché l'ho copiato dallo script pre-confezionato...
    Non so perché si debba scrivere last_name e non lastname come nella tabella sql!! Non trovo i nomi delle sessioni e non so nemmeno se il campo login (il nickname) sia una sessione. :bho:
    Da furbo ho provato a mettere <?php echo $_SESSION['SESS_LOGIN'];?> che mi sembrava ovvio, eppure non me lo stampa!!
    Non capisco molto ma mi sono sempre arrangiato, so che la soluzione é semplice ma non la trovo, spero la troviate voi per me! 😄
    A presto =*


  • Consiglio Direttivo

    Ciao Marinski e... bentornato. 😄

    Ho splittato in questo nuovo thread la tua richiesta così da poter dedicare una discussione al tuo problema e non far confusione sullo sviluppo effettuato negli altri. 😉

    Per sapere cosa c'è in sessione potresti fare un var_dump() dell'array di sessione $_SESSION, così vedi esattamente quali sono gli indici di sessione creati, diversamente nella pagina di autenticazione, guardando lo script, troverai di certo il pezzo di script relativo alla creazione della sessione.

    Ma per quanto ti serve io non mi affiderei alla sessione per stampare a video i dati, agirei direttamente con il recupero dal Database. Se vario qualcosa, devo sloggarmi e riloggarmi o modificare i dati di sessione. 🙂

    Fai una select sulla tabella utenti recuperando i campi che ti servono tramite l'id utente che hai in sessione, poi associ i dati recuperati ad un array e li stampi a video, qualcosa del genere insomma:

    [php]$id_user=$_SESSION['id_user']; //non so come si chiama, magari è SESS_MEMBER_ID
    $sql="SELECT * FROM nome_tabella WHERE id='$id_user'";
    $query=@mysql_query($sql) or die (mysql_error());
    while ($array=mysql_fetch_array($query))
    {
    echo $array['member_id']."-".$array['firstname']."-".$array['lastname']."-".$array['login'];
    }[/php]Prova e facci sapere. 😉


  • User Attivo

    Ciao grazie! 😉
    Ho messo:

    [php]
    <?
    $member_id=$_SESSION['SESS_MEMBER_ID'];
    $sql="SELECT * FROM 'members' WHERE id='$SESS_MEMBER_ID'";
    $query=@mysql_query($sql) or die (mysql_error());
    while ($array=mysql_fetch_array($query))
    {
    echo $array['SESS_MEMBER_ID']."-".$array['firstname']."-".$array['lastname']."-".$array['login'];
    }
    ?>
    [/php]
    Mi ha dato quest'errore:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''members' WHERE id='2'' at line 1

    Non capisco... prima avevo messo:
    [PHP]
    Nickname: <?php echo $_SESSION['SESS_LOGIN'];?><br>
    Nome: <?php echo $_SESSION['SESS_FIRST_NAME'];?><br>
    Cognome: <?php echo $_SESSION['SESS_LAST_NAME'];?><br>
    Habbo numero: <?php echo $_SESSION['SESS_MEMBER_ID'];?><br>
    [/PHP]

    Tutto perfetto apparte il nickname >_> é possibile che "login" non sia una "sessione" valida? boh, adesso insisto sul codice che mi hai dato tu, mi sembra anche più comodo!
    Aspettando consigli vi saluto!


  • Consiglio Direttivo

    Il mio era un "esempio" da quello che hai postato la select dovrebbe essere:

    [php]$sql="SELECT * FROM 'members' WHERE member_id='$member_id'";[/php]

    E l'array con $array['member_id'].
    😉


  • User Attivo

    Ho provato un po' in tutte le salse ma niente...
    Questo é quanto ho trovato nella pagina di autenticazione riguardo le sessioni...

    [php]
    //Check whether the query was successful or not
    if($result) {
    if(mysql_num_rows($result) == 1) {
    //Login Successful
    session_regenerate_id();
    $member = mysql_fetch_assoc($result);
    $_SESSION['SESS_MEMBER_ID'] = $member['member_id'];
    $_SESSION['SESS_FIRST_NAME'] = $member['firstname'];
    $_SESSION['SESS_LAST_NAME'] = $member['lastname'];
    session_write_close();
    header("location: ***.php");
    exit();
    }else {
    //Login failed
    header("location: ***.php");
    exit();
    }
    [/php]A occhio vedo che la sessione login (il nickname) non c'é...
    Appena sopra a questo pezzo di php c'é

    [php]
    //Create query
    $qry="SELECT * FROM members WHERE login='$login' AND passwd='".md5($_POST['password'])."'";
    $result=mysql_query($qry);
    [/php]Ma non so bene cosa significhi! era una cosa che già avevo notato, ed era quello che intendevo nel mio post precedente con "é possibile che login non sia una sessione valida?"
    Che faccio? :(): Un grazie anticipato!


  • User Attivo

    Scusate se posto due messaggi di fila ma... ho trovato l'errore banalissimo, mi fa piangere!
    Non avevo selezionato il database da cui estrarre le informazioni!
    Però rimane comunque strano, il resto dei dati (nome, cognome e id) si vedevano comunque... Mah! E con il mio codice

    Nickname: <?php echo $_SESSION['LOGIN'];?>

    Continua a non stampare niente...
    Il tuo però funziona alla grande! Boooh X_X


  • Consiglio Direttivo

    @Marinski said:

    "é possibile che login non sia una sessione valida?"
    [php]$_SESSION['SESS_MEMBER_ID'] = $member['member_id'];
    $_SESSION['SESS_FIRST_NAME'] = $member['firstname'];
    $_SESSION['SESS_LAST_NAME'] = $member['lastname'];[/php]
    Difatti, come vedi, $_SESSION['LOGIN'] non viene generato. 😉

    Se vuoi gestirlo con le sessioni dovresti inserire anche
    [php]$_SESSION['LOGIN']=$member['login'];[/php]Oppure, secondo me più consono, utilizzare il metodo che ti ho scritto sopra. 😉

    P.S. attenzione alle maiuscole, sia sul form di risposta che nel nostro regolamente è ben specificato, ne guadagniamo tutti. 😉