Solid_Snake

Chiedo Aiuto Per L'utilizzo Delle Sessioni In Php

8 messaggi in questa discussione

Ciao, avrei bisogno di una spiegazione comprensibile (a livello scolastico va molto bene) su come vengono usate le sessioni in php con un database SQL... i link a html.it ecc ecc li ho già guardati e non sono molto bravi a spiegare l'utilizzo base; e mi serve questo argomento saltato dalla mia prof di informatica all'ultimo anno di ITIS... :) ebbene sì... sono un programmatore che non sa usare le sessioni... :P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Non so se ti posso essere utile ma se vuoi ti dico come le uso io.

Le variabile session, in sostanza, vengono utilizzate per memorizzare uno o più valori per tutta la durata della permanenza di un utente nel nostro sito. Vengono distrutte, se non specificato diversamente dal programmatore, al momento della chiusura del browser. In questo modo, per esempio, puoi richiedere l'autenticazione dell'utente una volta sola senza farlo in tutte le pagine riservate che visiterà.

In ogni pagina che utilizza le variabili session deve (forse non deve, io la metto per abitudine e per vedere subito se utilizzo le session ma credo che basti prima di istruzioni di emissione tipo echo o prima di un qualsiasi tag HTML) esserci come prima istruzione: session_start();

Dopo di che quando vuoi memorizzare qualche cosa in una variabile session usi la sintassi:

$_SESSION['nomevar']=”valore”; //se è una stringa

$_SESSION['nomevar']=var; //se è un'altra variabile

$_SESSION['nomevar']=$RS->dato; //se è il campo di un record estratto con mysql_fetch_object

e così via. Quando invece devi prenderne il contenuto semplicemente la richiami.

Per es. $utente=$_SESSION['user'];

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ti posto un esempio di come le uso io, spero ti possa essere utile.

Ingresso.php

<?php

session_start(); // uso le session

// funzione che viene richiamata solo se non riconosco l'ip

// (in una tabella sono memorizzati gli ip, se il mio non è presente mi viene richiesta la pasword di accesso)

// nessuno ti vieta di chiederla sempre

function chiedipw(){

//richiesta pword

echo "<form name='fpw' action='verpw.php' method=post>Inserisci la password <input type='password' name='pw'><input type='submit' value='Invio'></form>";

die("<b>Accesso consentito solo dopo riconoscimento.</b>");

}

// Se esiste la varabile di sessione Aut e contiene 1 evito tutti i controlli e richieste di password

// significa che non è la prima volta che accedo e sono già stato autenticato e dunque autorizzato

// altrimenti devo procedere con le verifiche

if(isset($_SESSION['Aut']) && $_SESSION['Aut']==1) $autorizzato=1;

else $autorizzato=0;

// apro la connessione

$cn=odbc_connect("db","owner","pw") or die("Connessione fallita.");

if($autorizzato==0){

// predo l'ip

$chisei = getenv('REMOTE_ADDR');

// lo cerco nella tabella dve ho memorizzato quelli accreditati

$qry="select * from zpIp where ip='$chisei'";

$rs=odbc_do($cn,$qry);

// Se l'ho trovato è autorizzato, diversamente chiedo la pw

if(chop($chisei)==chop(odbc_result($rs,'ip'))) $autorizzato=1;

else chiedipw();

}

if($autorizzato==0) die("Accesso non autorizzato");

// In caso contrario procedi con tutto ciò che ti serve

?>

Pagina verpw.php

<?php

session_start();

$autorizzato=0;

// siccome resta in una intranet non mi preoccupo del passaggio in chiaro della pw

// se fosse in rete dovresti convertire prima di inviare i dati con uno script javascript o qualcosa del genere

$pwuser=md5(chop($_POST['pw']));

// mi basta solo trovare la pw, in qualche caso sarebbe più opportuno verificare login e password

$qry="select * from zpIp where pw='$pwuser'";

$rs=odbc_do($cn,$qry);

if($pwuser==odbc_result($rs,'pw')) $autorizzato=1;

odbc_close($cn);

if($autorizzato==0){

die("Accesso non autorizzato!");

}else{

$_SESSION['Aut']=1;

header("location:paginaprotetta.php");

}

?>

In tutte le altre pagine basterà chiedersi se è autorizzato per procedere

if(isset($_SESSION['Aut']) && $_SESSION['Aut']==1) ...

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Caspita... sei grande! Adesso mi devo mettere lì e cambiare tutto quanto il sito... in pratica io ho giocato molto sporco... ho fatto tranelli con i frame... cosa più assurda ma efficace per far credere che ci siano le sessioni perchè l'indirizzo nella pagina web non cambia mai! :)

Non so se hai dato un'occhiata al mio sito... http://zanefrancesco.netsons.org

Registrati se vuoi! Se ho problemi ti do anche le credenziali di accesso al sito così mi dai una mano a modificare.... perchè c'è da dire che non ho molto tempo ormai...

Grazie!

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ho dato un'occhiata al sito. E' tuo personale? Bello, simpatico. Non offenderti ma nemmeno io ho molto tempo da dedicarti. Ci sentiamo qui. Grazie. Buon lavoro.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Sì è mio personale... comunque non c'è problema... non mi offendo!! Troverò il tempo prima o poi... altrimenti rimane così com'è... una domanda... non ti sei registrata al sito vero? Hai navigato di "nascosto"?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Hai navigato di "nascosto"?

Vero. Appena ho un po' di calma e tempo (ho due bambini che me ne succhiano parecchio) mi registro e lo osserverò con più attenzione.

Buon lavoro. A presto.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora