• User

    Recupero dati Utente

    Ciao a tutti, volevo fare per un sito una pagina dove venivano mostrati i dati dell'utente registrato, quindi dopo che quest'ultimo effettua il login, se clicca sul link gestione utente, va nella pagina e può vedere i suoi dati.
    Per fare ciò dovrei salvare id_utente dopo che questo effettua il login, per poi passarlo al link...giusto? così che nella pagina pagina gestione utente con un recordset filtrato per l'id_utente possa recuperare i dati e collegarli ai relativi campi nome, cognome etc...
    non riesco a salvarmi i dati dell'utente dopo che effettua il login però, mi potreste aiutare?(sempre che il mio ragionamento sia corretto)
    Grazie


  • User

    Cerca qualche informazione su google a riguardo della gestione delle sessioni in php.
    La logica da seguire è la seguente:

    • Login -> verifica username/password -> se le credenziali sono corrette crei una sessione dove salvi lo username e/o altri dati.
    • Gestione Utente -> recuperi le informazioni della sessione e le utilizzi in una query per ottenere tutti gli altri dati dell'utente.

    Sul web troverai tantissime guide!!
    Ciao 😉


  • User

    Allora il login mi fuziona correttamente questo è il codice php, così salvo l'username dell'utente loggato, $_SESSION['MM_Username'] = $loginUsername, che riesco pure a stampare nella pagina stessa, il mio problema è passare i dati alla pagina gestione utente... mi aiuto degli strumenti di Dreamweaver per il login autenticazione etc, sto seriamente pensando ad un bel corso di php

    [PHP]<?php// *** Validate request to login to this site.
    if (!isset($_SESSION)) { session_start();}
    $loginFormAction = $_SERVER['PHP_SELF'];if (isset($_GET['accesscheck'])) { $_SESSION['PrevUrl'] = $_GET['accesscheck'];}
    if (isset($_POST['username'])) { $loginUsername=$_POST['username']; $password=$_POST['password']; $MM_fldUserAuthorization = ""; $MM_redirectLoginSuccess = ""; $MM_redirectLoginFailed = ""; $MM_redirecttoReferrer = false; mysql_select_db($database_conn_ase, $conn_ase); $LoginRS__query=sprintf("SELECT username, password FROM utenti WHERE username=%s AND password=%s", GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); $LoginRS = mysql_query($LoginRS__query, $conn_ase) or die(mysql_error()); $loginFoundUser = mysql_num_rows($LoginRS); if ($loginFoundUser) { $loginStrGroup = ""; if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();} //declare two session variables and assign them $_SESSION['MM_Username'] = $loginUsername; $_SESSION['MM_UserGroup'] = $loginStrGroup;
    if (isset($_SESSION['PrevUrl']) && false) { $MM_redirectLoginSuccess = $_SESSION['PrevUrl']; } header("Location: " . $MM_redirectLoginSuccess ); } else { $_SESSION['errore'] = 1; header("Location: ". $MM_redirectLoginFailed ); }}?>[/PHP]


  • User

    Ahahah... Ancor prima di leggere il messaggio ho pensato "Questo codice di login mi sa tanto di Dreamweaver!!!".
    Cmq sei ben messo allora... nel senso che è già tutto fatto!!

    Crea una nuova pagina con il layout desiderato (ad es. gestione_utente.php). Questo è il codice php che devi inserire nella pagina per recuperare i dati di un utente loggato.
    [PHP]
    <?php

    //includi il file con le credenziali per la connesione al database
    require_once 'percorso/al/file/database.php';

    //inizializza la sessione
    if (!isset($_SESSION)) { session_start();}

    //Per comodità assegna un nome più comodo (e corto) alla variabile di sessione
    $tua_variabile= $_SESSION['MM_Username'];

    //Recupera i dati dal database con una normale query usando $tua_variabile come parametro di ricerca
    $dati_utente= $db->query("SELECT nome,cognome,genere,etc. FROM utenti WHERE username='$tua_variabile'");
    $row_dati_utente= $dati_utente->fetch_assoc();

    //Fine. Ora puoi usare i dati a tuo piacimento. Ad esempio per stampare il nome dell'utente:
    echo $row_dati_utente['nome'];

    ?>
    [/PHP]

    Ora ti chiedo io una cosa:
    Puoi postare per cortesia il contenuto della funzione "GetSLQValueString" e la versione di Dreamweaver che hai utilizzato?
    Questo perchè se non ricordo male le attività "preconfezionate" di Dreamweaver usavano (almeno fino alla versione CS5) delle funzioni deprecate tipo "magic quotes".
    Inoltre Dreamweaver "scriveva" le query in mysql e non in mysqli/pdo.
    Essendo cose che ho solo letto in giro sul web, vorrei sfruttare l'occasione per verificare.

    Saluti,
    Smartix

    P.s.


  • User

    Grazie mille per l'aiuto, uso Dreamweaver cc, ed il contento della funzione è
    [PHP]if (!function_exists("GetSQLValueString")) {function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { if (PHP_VERSION < 6) { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; }
    $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
    switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue;}}
    [/PHP]