|
|
|
![]() |
|
Strumenti |
![]() |
#21 | |
Member
Iscritto dal: May 2005
Città: L'aquila
Messaggi: 182
|
Quote:
Scusa una domanda! Ma come faccio a passare il valore $_SESSION['LOGGATO'] dalla pagina di autenticazione allo script che vigila sulle pagine??? Inoltre come faccio ad impostare una variabile $_SESSION['NON_LOGGATO'] nella pagina che voglio proteggere la pagina da evetuali accessi? Mi spiego meglio... se volessi far accedere alla pagina a.html solo un utente loggato,affinche altri non entrino in questa pagina cosa dovrei fare?Impostare $_SESSION['NON_LOGGATO'] nella pagine a.html ed inserire successivamente a tale istruzione la require dello script di controllo??Se cosi fosse,php,quando riceve una chiamata di un utente loggato riesce a sovrascrivere questa variabile? Ultima modifica di mummolo : 16-03-2007 alle 12:16. |
|
![]() |
![]() |
![]() |
#22 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Innanzitutto una gestione del genere vale solo per le pagine .php e solo per quelle in cui fai appunto tutti questi test. Pagine chiamate xyz.html non c'entrano nulla e non possono "entrare" nel giro di questa autenticazione. Poi comunque dovresti capire meglio come funzionano le sessioni (vedi <qui>). Quando in uno script usi session_start(), al primo accesso (da parte del browser) viene generato un 'id' di sessione che viene inviato al browser (in genere tramite i cookie). Quando, con la stessa finestra del browser, si naviga in altre pagine del sito, la session_start() riprende l'id di sessione e quindi "riesuma" tutti i dati di sessione (quelli che poi ti ritrovi nell'array $_SESSION).
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#23 |
Member
Iscritto dal: May 2005
Città: L'aquila
Messaggi: 182
|
Ho capito!!
Scusa ma visto che con l'html non è possibile fare questo discorso,se io rinominassi le pagine (ormai già create) in .php va bene tutto quello detto fin ora?? |
![]() |
![]() |
![]() |
#24 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Dovresti comunque aggiungere ad ogni pagina la gestione di questa autenticazione, ovvero dovresti fare, come minimo, un include di uno script dove c'è la session_start() più tutti i vari test.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
#26 | |
Member
Iscritto dal: May 2005
Città: L'aquila
Messaggi: 182
|
Quote:
Per meglio comprenderci ti posto gli script: <-- file script_modificato.php --> if (!isset ($_SESSION['LOGGATO'])) { header ("Location: prova.php"); exit; } else { header ("Location: index_prova.php"); exit; } ?> <-- fine file ---> <-- autenticazione ---> $result = mysql_query("SELECT * FROM 'tabella' WHERE username='$_REQUEST[username]' AND passwd='$_REQUEST[passwd]';", $link); $numero = mysql_num_rows($result); if ($numero==1){ require "script_modificato.php"; mysql_close($link) or die (errore()); } else if ($numero==0){ require "script_modificato.php"; mysql_close($link) or die (errore()); } <--- fine autenticazione ---> <--- pagina di prova --> <html> <body> <? require "script_modificato.php" ?> <p>ciao</p> </body> </html> <-- fine pagina prova ---> Ovviamente non mi funziona!!! Ultima modifica di mummolo : 16-03-2007 alle 13:05. |
|
![]() |
![]() |
![]() |
#27 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Faccio un breve riassunto: a) Se vuoi usare le sessioni, in ogni script eseguito ci deve essere all'inizio una session_start(). b) In ogni pagina che vuoi proteggere ci deve essere il test per stabilire se si è loggati o meno. Ovviamente non è buona cosa replicare su tutte le pagine il test, quindi basta includere uno script apposito. c) Lo script che si occupa di prendere i dati dal form di login per poi verificare se sono validi, dovrà impostare la variabile di sessione che hai scelto di usare nel caso di login corretto. Basterebbe una cosa del tipo: $_SESSION['LOGGATO'] = "1"; poi tanto nel test puoi usare isset(). Cioè o la variabile c'è (loggato) oppure non c'è. Tieni anche presente un'altra cosa: dovrai pur indicare sulle pagine che l'utente è loggato e che può uscire tramite un pulsante o un link, giusto? Questo significa che pure il corpo delle pagine dovrebbe essere modificato in modo da visualizzare lo stato.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#28 | |||
Member
Iscritto dal: May 2005
Città: L'aquila
Messaggi: 182
|
Quote:
<?php session_start(); ?> Quote:
Quote:
Per favore potresti farmi un esempio banale come ti ho postato io per capirci meglio? Grazie ancora |
|||
![]() |
![]() |
![]() |
#29 | |||
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Quote:
Ricordati, nemmeno 1 byte va mandato in output prima di usare header(). Quote:
Allego un esempio completo ma minimale (non stare a vedere le finezze). I file devono stare sotto la "root" di un sito.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|||
![]() |
![]() |
![]() |
#30 |
Member
Iscritto dal: May 2005
Città: L'aquila
Messaggi: 182
|
Grazie ancora per la disponibilità!
Sto analizzando il codice che mi hai spedito... Nel file login quando inizializzi il form scrivi questa istruzione: <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post"> Se non erro la action passa i dati da inviare giusto? In questo caso che vuol dire <?php echo $_SERVER["PHP_SELF"]; ?> |
![]() |
![]() |
![]() |
#31 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:21.