area riservata

SolidSnake4

Utente Attivo
23 Ott 2007
505
0
0
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 ?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
essendo il ponte del 1° maggio credo che tutti i moderatori (e super) siano in ferie:rolleyes:, quindi prenditi questa mia balzana idea
non scrivo tutto il codice, ma credo che tu capisca

pagina log
PHP:
<?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
?>

e la pag riservata
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
?>

la variabile $_SESSION['accedi'], se torno indietro col bw torna ad essere = stringa vuota
quindi o rimetto pass e user rifacendo tutto il ciclo o non posso ritornare

prova così, mal che vada non funzia

p.s.
ci sto studiando anche io, se risolvo al meglio ti faccio sapere
 

SolidSnake4

Utente Attivo
23 Ott 2007
505
0
0
si è proprio come sto facendo io, però a me una volta fatto il login entro nella pagina riservata salvo una variabile in $_SESSION che attivi l'entrata nella zona riservata, e nella pagina di login svuoto la variabile ma non me lo fa subito devo aggiornare la pagina e poi funge. XD io sto studiandolo per l'esame della ZEND XD
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
per ora sono riuscito a fare questo (anche se è un po' macchinoso)

nella pagina (qualsiasi.php) in cui ho il menu in cui ho il link alla pag_log.php
non è un vero link, ma un mini form con un campo idden (1) di valore int
in qualsisi.php genero una sessione (1) di valore int
(l'hidden con visualizza html lo vedo, ma la session no)

nella pag_log.php leggo la session e il valore di hidden e li moltiplico (posso dividerli, sommarli, sottrarli) e genero un'altra session (2)
nel for di log ho un altro hidden (2) sempre int

nella pag_riservata.php leggo
session (1)
session (2)
hidden (2)
li elaboro (come prima) e verifico il risultato: se ok procedo else header location dove voglio

dall prove che ho fatto con questo sistema accedo solo ED ESCLUSIVAMENTE alla pag_riservata.php facendo il giusto percorso (s'intende con pass ed user true)

qualsiasi.php:link(form) -> pag_log -> pag_riservata.php

scrivendo es.
http://www.miosito.com/pag_log.php
oppure
http://www.miosito.com/pag_riservata.php

anche se non chiudo il bw (quindi non cancello le session) e se mi trovo anche di gia in pag_log

macchinoso, ma sembra funziare


p.s.
in che consiste l'esame della ZEND?
 

SolidSnake4

Utente Attivo
23 Ott 2007
505
0
0
XD dai guarda se sei abbastanza bravo da quanto mi è parso di capire perchè non provi a farlo te anche l'esame :elvis: . Senti allora io praticamente la sessione la faccio partire se user e pass sono esatte, se l'esito e positivo creo un cookie in cui ci metto verified user ci metto 1 e in caso contrario rimane a 0 e non ha i permessi per entrare. Poi entro nella pagina riservata faccio torna indietro con il canc sopra l'invio o dal browser, e nella pagina login ci metto verified user settato a guest, il problema è che non me lo cambia subito devo aggiornare la pagina da cosa dipende ?

esame zend:

info
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
il problema è che non me lo cambia subito devo aggiornare la pagina da cosa dipende ?

strano le session, al contrario dei cookie, dovrebbero essere subito disponibili, quindi dovrebbe cambiarsi subito.

sei abbastanza bravo :)confused:ma???) da quanto mi è parso di capire perchè non provi a farlo te anche l'esame...


per due motivi non credo di provare:
1. sono nato agli albori (schede perforate), poi per diversi anni abbandonato
2. di esami... sono stufo di farli:)

comunque do un occhio alle info che mi hai inviato
 

SolidSnake4

Utente Attivo
23 Ott 2007
505
0
0
XD ahahah ho capito, io ho incominciato con il vecchio e tanto inutile turbo pascal, poi sono passato all'assembler che casino ahahah scrivere 20 righe di codice solo per far stampare ciao mondo ahahha non ti parlo quando facemmo un programma per fare la somma di 10 numeri. Poi sono passato al c,c++ e un anno fa ho iniziato da autodidatta con il php XD e adesso mi sto specializzando meglio.

ritornado a sto problema. Può essere allora perchè io utilizzo un cookie per stabilire se un utente abbia i permessi o no anzicchè le sessioni ? Perchè io la sessione la apro nella pagina index dell'area riservata non nel form di login
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
vedo che l'esperienza è simile (pascal, assembler)
non dimentichiamo il vecchio (e forse rimpianto) basic con i suoi programmi a spagetto (goto numero riga:))
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
tornando a noi

la session ha effetto dal momento della sua creazione
il cookie è disponibile solo dalla pag successiva (o ricarica), poi c'è sempre il problema di chi non li accetta (risolvibile comunque, se non accetti non entri)
domani (ora vado a letto) eventualmente ti posto quello che faccio io
 

SolidSnake4

Utente Attivo
23 Ott 2007
505
0
0
facebook lo fa quello che vorrei fare io. Adesso cerco di trovare qualche soluzione XD
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
facebook lo fa quello...
con quello che (dice) lo abbiano pagato avrà il fior fiore di progammatori

se ti può servire
ecco come faccio

nella mia pag italia.php (ma potrebbe essere un'altra qualsiasi)

PHP:
<?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 -->

pagina logAdmin.php

PHP:
<?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 -->

pagina scegliCosaFare.php

PHP:
<?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 -->

come vedi è macchinoso, ma per ora non sono riuscito a bypassare entrando in scegliCosaFare.php ove ho tutte quello che serve all'amministratore del sito,
entro solo se faccio il percorso giusto


p.s.
non tener conto dei valori numerici, con il copia incolla posso aver fatto degli errori (quelli giusti non te li do:) )
p.s. al p.s.
chiamando il mio borgo-italia.it per ora non la vedi così, ma la vecchia versione, sono in restiling
 

SolidSnake4

Utente Attivo
23 Ott 2007
505
0
0
a volte mi esce questo errore, e non sto capendo da cosa derivi :

The session id contains illegal characters, valid characters are a-z, A-Z, 0-9
 

SolidSnake4

Utente Attivo
23 Ott 2007
505
0
0
un 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
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
un 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
dovresti agire sul php.ini, la durata massima delle sessioni dipende dal valore massimo impostato sul file di configurazione
 
Discussioni simili
Autore Titolo Forum Risposte Data
gandalf1959 [PHP] Verifica password per accesso ad area riservata PHP 3
M [WordPress] [HTML] AREA RISERVATA CON PROFILAZIONE WordPress 2
F [PHP] Creare un'area web riservata PHP 13
W Area riservata sicura PHP MySQL PHP 12
I Area riservata in PHP PHP 2
I [PHP] CURL per accesso ad area riservata PHP 6
W. YouneS Area riservata con php e mysql PHP 0
W [ASP] Password Login per area riservata Classic ASP 13
Recover Area riservata con database PHP 11
gandalf1959 problema con header in area riservata PHP 4
A area riservata in php senza data base PHP 19
Recover db in sola lettura su area riservata WordPress 1
L Accesso area riservata tramite QR code WordPress 3
A accesso area riservata nn funziona più PHP 1
A Area riservata con login e mysql ma nn mi logga PHP 1
E consigli per piccola area riservata PHP 4
Elisacau Area riservata.. WordPress 2
I Area riservata con contenuto personalizzato per i registrati? Content Management System (CMS) 0
B Area Riservata/Download per Wordpress WordPress 3
M Problema con form per accesso area riservata ai soci PHP 2
A problema con area riservata PHP 6
N Primo accesso area riservata PHP 1
neo996sps PHP + MYSQL: Errore su accesso area riservata PHP 1
P Area riservata con frontpage PHP 10
S Area riservata PHP PHP 3
F Area Riservata PHP+MySql - Chi mi corregge il codice??? PHP 18
S area riservata con mysql PHP 29
S Area riservata con login e mysql PHP 20
J Creare file html da un form in area riservata PHP 9
G Problema area riservata con IE PHP 6
B Aumentare livello di sicurezza accesso client area riservata Classic ASP 5
M Come creare un area riservata PHP 4
N impedire accesso area riservata a utenti registrati Database 3
D Creare Area RiservaTA PHP 8
A Area Riservata Manager - HELP !! PHP 2
R HTTP_REFERER e area riservata.. PHP 1
R Problema con area riservata... PHP 4
X Area Riservata Mysql+php PHP 13
borgo italia Accesso area riservata PHP 6
A area riservata asp Classic ASP 20
B creare un'area riservata PHP 1
N Area riservata proprio sito PHP 18
S Area Riservata Classic ASP 6
W Help - area riservata Classic ASP 3
G area riservata con phpbb3 phpBB 1
I accesso area riservata multilivello PHP 1
W come si crea un area riservata HTML e CSS 5
D A ciascuno la prorioa area riservata PHP 0
K Area riservata - Limitazione tentativi inserimento PHP 0
K logout area riservata Classic ASP 1

Discussioni simili