• User

    AREA RISERVATA PHP: $_SESSION mostrare un ID dentro la funzione

    Ciao a tutti, premetto che non sono esperto con PHP...
    volevo sapere se è possibile andare a inserire una funzione php dentro questa stringa di codice: $_SESSION['CODICE_DA_AGGIUNGERE']

    Al posto di CODICE_DA_AGGIUNGERE devo mettere la funzione $login['id'] che scrive dentro li il numero di ID che è stato creato nella sessione...

    La scritta CODICE_DA_AGGIUNGERE adesso c'è dentro la parola "autorizzazione" ed io dentro ad ogni pagina php riservata ho messo il codice if isset che cerca se la sessione "autorizzazione" è stata creata.. ma così ogni utente ha una sessione uguale per tutti e può vedere tutte le pagine degli altri utenti.

    Con questo modo sono riuscito a farlo: header('Location: '.$login['id'].'.php'); in pratica quando l'utente accede viene reindirizzato a una pagina chiamata con il suo numero di ID del database e aggiunto .php (esempio: 1.php, 2.php ...)


  • User Attivo

    Non ho capito bene in realtà, puoi postare una porzione di codice?


  • User

    questa è il login.php
    [PHP]<?php// Includo la connessione al databaserequire('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['id']; // reindirizzo l'utenteheader('Location: '.$login['id'].'.php'); exit; } // se non esiste da l'errore else die('Nome utente o Password errati.');} ?>[/PHP]

    con questo codice quando uno accede all'area viene reindirizzato alla sua pagina php chiamata NUMEROID.php (1.php, 2.php, 3.php... e così via..)

    io nella pagina di ogni utente dove vengono reindirizzati ho messo questo codice:

    [PHP]<?php// Includo la connessione al databaserequire('config.php');// Se non è stata definita la variabile manda l'utente alla homepageif(!isset($_SESSION['autorizzazione'])) { header('Location: index.php'); exit;}?> <h1>se lo leggi sei autorizzato.</h1>[/PHP]

    solamente che nel campo [PHP]if(!isset($_SESSION['autorizzazione']))[/PHP] io ho messo autorizzazione per tutti perchè prima cosi si chiamava la sessione che creava in automatico..ora io voglio sapere se al posto di autorizzazione posso andare a scrivere li il numero dell'id dell'utente... se io scrivo [PHP]if(!isset($_SESSION['1']))[/PHP] non funziona...

    grazie mille in anticipo.


  • User Attivo

    Vedo un po di confusione, fai così:

    Login:
    [PHP]
    <?php
    if ("utenteesiste"){
    $_SESSION['loggato'] = true;
    $_SESSION['login_id'] = $login_id_utente_prelevato_dal_db;
    // redirecta a $login_id_utente_prelevato_dal_db.".php";
    }else{
    //redirecta al login globale per utenti, dati sbagliati o utente non esistente
    }
    ?>
    [/PHP]

    Pagine utenti (1.php ad ex):
    [PHP]
    <?php
    if (isset($_SESSION['loggato']) && $_SESSION['loggato'] == true){
    if (isset($_SESSION['login_id']) && $_SESSION['login_id'] == "1"){
    echo "Benvenuto {$_SESSION['login_id']}";
    }else{
    //redirecto perchè non è la sua pagina (login_id != 1)
    }
    }else{
    //redirecto perchè non è loggato (loggato != true)
    }
    ?>
    [/PHP]

    Testalo perchè l'ho scritto in-live qua sul forum (non è il top ahah), ad ogni modo io non farei un file per utente, farei una pagina profilo.php ad esempio, ma poi vedi tu, non so neanche cosa devi fare 🙂

    Spero di esserti stato d'aiuto, ciao 🙂