Visualizzazione risultati 1 fino 3 di 3

Discussione: come prendere variabile da session registred

  1. #1
    Guest

    Predefinito come prendere variabile da session registred

    salve a tutti, sono nuovo e non molto pratico di PHP...vorrei sapere se dopo una registrazione, in una pagina con questo codice:
    Codice PHP:
    <?php

    session_start
    ();
    if(!
    session_is_registered(myusername)){
    header("location:main_login.php");
    }

    ?>
    ,preso da una discussione su questo forum, è possibile ottenere una variabile $myusername o ancora meglio l'id della riga del database dove è salvato.
    grazie a tutti...

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,173

    Predefinito

    La session_is_registredred() è deprecata.
    Per vedere se esiste, potresti far così:
    Codice PHP:
    if(!isset($_SESSION['username']))
    Citazione Originalmente inviato da randomize Visualizza messaggio
    è possibile ottenere una variabile $myusername
    Codice PHP:
    $username = $_SESSION['username'];
    Citazione Originalmente inviato da randomize Visualizza messaggio
    o ancora meglio l'id della riga del database dove è salvato.
    Devi interrogare il database con una query SELECT specificando l'username:
    Codice:
    SELECT id FROM tuatabella WHERE username='$username'
    Ciao!
    Ultima modifica di alemoppo : 03-06-2015 alle ore 23.15.36

  3. #3
    Guest

    Predefinito

    Si, non usandole ho letto nel manuale e farei attenzione ad usare session_register e is_registered perchè sono funzioni deprecate, se si usa $_session non si deve usare session_register e is_regestered.
    Usare $_session e mettere in un array le nostre variabili che vogliamo usare nella sessione facendo partire con session_start.Ciau

    Ps:esempio di convalida di login e di partenza di sessione e di come si recuperano l'id, lo user, il profilo e la pass presenti nella tabella utenti nel db sql.

    Codice PHP:
    session_start();

    $username=$_GET['username'];
    $password=$_GET['password'];

    $sql = $db->prepare("SELECT * FROM utenti WHERE username = ? AND password = ?"); //l'utente inserisce username e password e controlliamo che sia un utente registrato cioè presente nella tabella utenti

    $sql -> bind_param('ss', $username, $password);

    $username = trim($username);
    $password = md5($password);

    $sql->execute();
    $sql->store_result();

    if (
    $sql->num_rows() == '1'){

    $sql -> bind_result($id,$username, $profilo, $password);//bind dei risultati, sono tutti i campi presenti nella tabella utenti

    if ($sql->fetch()){

    //------------------------VALORI DELL'UTENZA-----------
    $user_browser = $_SERVER['HTTP_USER_AGENT'];
    $idUtente=$id;
    $profilo=$profilo;
    $username = $username;
    $datiUtente = array('idUtente'=>$idUtente,
    'username'=>$username,
    'profilo'=>$profilo);

    $_SESSION['datiUtente']=$datiUtente;

    $msg = "|";
    $msg .="OK";
    $msg = str_replace("\n", "", $msg);
    $msg = str_replace("\r", "", $msg);
    print
    $msg;
    exit;
    }
    }
    In tutti i file dove voglio recuperare la sessione dell'utenza e controllare il profilo, l'id o lo user una volta effettuato il login ed avendo messo i valori dentro l'array datiutente mi basterà scrivere in una pagina php ad inizio file:

    Codice PHP:
    session_start();
    $datiUtente = $_SESSION['datiUtente'];
    $profilo = $datiUtente['profilo'];
    $username = $datiUtente['username'];
    $id=$datiutente['idUtente']

    print
    "benvenuto " .$username ." il tuo profilo è : " .$profilo " ed il tuo id è : " .$id;
    NB: USERNAME E PASSWORD vengono ripresi in GET o POST dal form di login ma $id e $profilo sono nel bind vengono creati lì...non sono inizializzati sono l'id e il profilo della riga corrispondente ad username e password.
    Ultima modifica di fractalcosmo : 03-06-2015 alle ore 23.09.33

Regole di scrittura

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