- Home
- Categorie
- Coding e Sistemistica
- PHP
- AREA RISERVATA PHP: $_SESSION mostrare un ID dentro la funzione
-
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 ...)
-
Non ho capito bene in realtà, puoi postare una porzione di codice?
-
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.
-
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