Newsgroup: it.comp.www.php
Titolo: Logout...

Ho fatto una pagina con il login:
 if(!$PHP_AUTH_USER) {
  header("WWW-Authenticate: Basic realm=\"Inserire User e Password\"");
  header("HTTP/1.0 401 Unauthorized");
 }
 else {
  // Controllo su database
  if(mysql_num_rows($result)!=1) {
  // ERRORE
  }
  else {
  // Tutto ok
  }
  mysql_close($db);
 }
Come faccio ad annullare il contenuto delle variabili $PHP_AUTH_USER e
$PHP_AUTH_PW in caso di errore nel login?
Inoltre voglio fare il log out, ovvero annullare nella cache del browser il
valore delle variabili $PHP_AUTH_USER e $PHP_AUTH_PW. Come faccio?
Grazie!
--
Marco "DUFF" Palermo
Marco...@SPAMHotmail.com
http://www.marcoduff.cjb.net
http://www.cribiobot.cjb.net

 |
| Delete WORLD to reply        |
|                              |
| Software is like sex...      |
| It's better when it's free.  |
+------------------------------+


Utilizzando l'autenticazione BASIC di http non puoi
effettuare un controllo ottimale sul login. Io consiglierei
la gestione tramite sessioni. Così facendo, il logout
diventerà in pratica un session_destroy().
-- 
WEbdOM webmaster di
Metronic.It mobile phone philosophy

 diventerà in pratica un session_destroy().
Dove posso trovare le info sulla sessione?
Ho il manuale di PHP scaricato da 
www.php.net
, ma non ho trovato nulla (o
meglio, mi sono perso!).
Ciao!


 protezione?
Quali sono le funzionalità di protezione?
Non voglio farti perdere troppo tempo, mi basta solo un input per capire
dove cercare, poi tento di sbrigarmela da solo!
Ciao!


> Quali sono le funzionalità di protezione?
Il succo è molto semplice: in ogni directory che vuoi proteggere, devi
inserire due file di testo:
1 - .htpasswd
2 - .htaccess
Nel primo inserisci l'elenco degli utenti con relative password
(eventualmente criptate). Nel secondo invece altri dati per l'autenticazione
(come da documentazione).
Così quando cerchi di accedere alla directory (o a una sua sottodirectory),
Apache verifica se esiste il file .htaccess, nel qual caso chiede la
password.
E' una funzionalità molto comoda ed utile che vale la pena di usare.
Se hai problemi, posta.


 E' una funzionalità molto comoda ed utile che vale la pena di usare.
Tutto stupendo, ma inutile per quello che devo fare! (Cmq vorrei
approfondire l'argomento, ma dove nella documentazione? Ho Apache 1.3).
Il login a me serve non per accedere ad un reparto privato del sito (per cui
va benissimo quello che hai detto tu), ma per la gestione di un database
personale (MySQL).
In questo modo, se ho capito bene, limito l'accesso a dei file del mio sito,
ma io voglio che un utente si colleghi al mio sito faccia il log-in e accede
(per fare un esempio) alla posta!
Con quel metodo dovrei costruire una cartella per ogni utente, o sbaglio?


 Con quel metodo dovrei costruire una cartella per ogni utente, o sbaglio?
Esatto, ma non sarebbe in effetti una soluzione molto furba.


meglio, mi sono perso!).
Intendi info sulle funzioni di sessione in generale oppure
su come implementare il login e l'autenticazione tramite
sessioni?
Hai scaricato il formato chm del manuale? E' molto comodo
perchè ha potenti funzionalità di ricerca (è un fiel stile
guida di windows...html compilato).
--
I'm thinking about a cool signature:)
Coming soon...

 guida di windows...html compilato).
No, ho quella html, ma credo che scaricherò quella chm...



Allora, eccoti le linee guida (molto grezze:) ) :
Fai una paginetta in cui inserissci un form per
l'autenticazione (login e password) .
L'action del form va ad uno script che si occupa
dell'autenticazione. Se torva l'utente nel database e la
password corrisponde, viene visualizzato il menu delle
pagine protette, oppure direttamente la singola pagina
protetta.
In ogni pagina protetta e nello script di auteticazione devi
inserire , come prima istruzione :
session_start();
session_start() inizializza una sessione utente, o la
propaga se è già stata inizializzata precedentemente.
L'istruzione seguente sarà :
session_register("logged"); (senza $ davanti la variabile).
session_register("nome_variabile") si occupa di registrare
(in un file di testo locato in una dir temporanea del
webserveer, se ne occupa PHP) la variabile con il suo
contenuto.
Se nello script di autenticazione trovi l'utente e la
password :
$logged=1;
Automaticamente, la variabile $logged viene registrata con
il suo contenuto.
Nelle pagine protette :
session_start();
session_register("logged");
if ($logged) {
	contenuto pagina protetta
}
else {
 scrivi messaggio di errore
oppure effettua una reindirizzamento :
header("location:index.html");
}
Per il logout, metti un link attivo ad uno script di uscita
oppure allo stesso script :
print "<a href=' ".$PHPSELF."?act=logout'>logout</a>";
Quindi , in testa allo script protetto, devi mettere un
ulteriore controllo per verificare il flag $act. Se il
contenuto di questa variabile è 'logout', applica un
session_destroy() per rilasciare la sessione .
Spero di averti dato delle linee guida che ti permetteranno
di approfondire l'argomento. L'autenticazione in PHP può
farsi in modi diversi.
Ciao!
