Salve a tutti allora ho realizzato uno script per un'area riservata, dopo il login entro nella mia pagina privata. Ora per far scadere la sessione se l'utente dovesse cliccare su torna indietro una pagina del browser, come si può fare ?
<?php
// inizio pagina_di_log.php
//Inizio col solito
if(!isset($_SESSION)){
session_start ();
}
$_SESSION['accesso']="";// valorizzo questa sessione a stringa vuota
if(isset($_POST['submit'])){
//verifico la password e l'username
if($password==TRUE && $username==TRUE){//ho scritto tru per indicare password e user giusti dal db
$_SESSION['accedi']="abcdefghi"; //do un valore arbitrario alla session accedi
//il valore viene dato solo se pass e user sono esatte
//se serve posso fare le sessioni della pass e dell'user
//scrivo il link <a href="pagina_riservata.php">accedi a riservata</a>
//oppure link per exit
}else{
//indico accesso non consentito e rimando o al form di log o da altra parte
}//fine if else verifica pass e user
}// fine if submit
//qui scrivo il form di log
//fine pagina_di_log.php
?>
<?php
//mia_pagina_riservata.php
if(!isset($_SESSION)){
session_start ();
}
if($_SESSION['accesso'] !="abcdefghi"){
//la session accesso è diversa da quanto impostato in pagina_di_log.php
//quindi rimando indietro
header("Location: http://www.mio_sito.it/dove_voglio.php");
}else{
//faccio tutto quello che devo fare
}
//fine pagina_riservata.php
?>
per la certificazione zend php non lo conosci ?
il problema è che non me lo cambia subito devo aggiornare la pagina da cosa dipende ?
sei abbastanza bravoconfused:ma???) da quanto mi è parso di capire perchè non provi a farlo te anche l'esame...
con quello che (dice) lo abbiano pagato avrà il fior fiore di progammatorifacebook lo fa quello...
<?php
if(!isset($_SESSION)){
session_start ();
}
$_SESSION['verifica01']="222";//genero la prima sessione
?>
<!-- varie cose -->
<!-- menù con vari link e mini form con hidden, la class rende uguale submit ad altri link-->
<!-- il form punta a adami/logAdmin.php per inserimento pas ed user-->
<form action="adami/logAdmin.php" method="post" name="daITaAdm">
<input name="cost" type="hidden" value="2">
<input name="admin" type="submit" id="admin" value="admin" class="menuIt">
</form>
<!-- altre cose....fine pagina -->
<?php
if(!isset($_SESSION)){
session_start ();
}
@$code = (int)$_SESSION['verifica01'];//proviene da pag italia =222
@$costante=(int)$_POST['cost'];//proviene dal form menuItalia=2
@$daQui=$_POST['codeQui'];//proviene dal form di questa pagina = 888
//var_dump($daQui);
if($costante==""){$costante=0;}
//var_dump($costante);
$code=$code*$costante;//se tutto ok = 888
if(isset($_POST['codeQui'])){$code=(int)$daQui;}
if($code != 888){//se divero rimando alla pag iniziale
header("Location: http://localhost:8080/borgo-italia/italia.php");//lavorando in locale, commentare per remoto
//header("Location: http://www.borgo-italia.it/italia.php");//lavorando in remoto, decommentare
}
$_SESSION['verifica02']=$code;
$user="pinco";//pas e user per comodità, poi da db
$pass="pallo";
?>
<!-- link a css ecc.... -->
<?php
if(isset($_POST['invia']) && $_POST['invia']=="invia"){//dal form inserimento pas ed user
$userInv=strip_tags(trim($_POST['user']));
$passInv=strip_tags(trim($_POST['pass']));
if($userInv==$user && $passInv==$pass){//pas ed user OK
$_SESSION['k']="111"; //genero altra sessione
echo "<meta http-equiv='Refresh' content='; URL=scegliCosaFare.php'>";//invio alla pagina scelta cosa fare
}else{ //se pas e user NO OK non genero $_SESSION['k']="111" e rinvio alla partenza
echo "<h2>USERNAME O PASSWORD NON CORRETTI - ACCESSO NEGATO</h2>";
echo "<meta http-equiv='Refresh' content='3; URL=../italia.php'>";
}
}//fine if invia
?>
<!-- form con caselle di input pas ed user, più un campo nascosto -->
<input name="codeQui" type="hidden" id="code" value="888">
<!-- fine form ed altre cose... fine pagina -->
<?php
if(!isset($_SESSION)){
session_start ();
}
$p1=(int)$_SESSION['k'];//proviene dal form di logAdmin = 111 se pas ed user OK
$p2=(int)$_SESSION['verifica02'];//proviene da logAdmin = 888
$code=$p2-$p1;//diventa = 777
if($code!="777" || $_SESSION['verifica02']!="888"){//se uno è diverso rimando a pag iniziale
header("Location: http://localhost:8080/borgo-italia/italia.php");//vedi sopra
//header("Location: http://www.borgo-italia.it/italia.php");
}
//se sono entrato, azzero la session che viene da logAdmin
$_SESSION['k']="0";
?>
<!-- altre cose... fine pagina -->
dovresti agire sul php.ini, la durata massima delle sessioni dipende dal valore massimo impostato sul file di configurazioneun altra cosa, come posso fare per far durare una sessione fino a che l'utente non rimane nella pagina ? Ho provato ad usare session set cookie params ma non mi funziona bene come posso fare. Il mio dilemma è questo come faccio a far durare una sessione senza che mi scada dopo un tot di tempo