[Flug] apache, cookie e autenticazioni

Franco Bagnoli bagnoli@dma.unifi.it
Ven 22 Feb 2002 11:19:42 CET


On Fri, 22 Feb 2002, Marco Pieraccioli wrote:

> Alle 17:11, mercoledì 20 febbraio 2002, hai scritto:

> Se ti può interessare, questa è una funzione PHP che fa quello che dici te,
> ma senza cookie.
>
> function autorizza() {
>    global $PHP_AUTH_USER;
>    global $PHP_AUTH_PW;
>
>    if(!isset($PHP_AUTH_USER) && !isset($PHP_AUTH_PW)) {
>       header("WWW-Authenticate: Basic realm=\"firenze.linux.it\"");
>       header("HTTP/1.0 401 Unauthorized");
>       echo "Ti devi autenticare";
>       exit;
>    } else {
>       connectDB();
>       $result=mysql_query("select ID from Utenti where user_name ='
> ".$PHP_AUTH_USER."' and pass_word = '".$PHP_AUTH_PW."'") or
> die(mysql_error());
>       $num=mysql_numrows($result);
>       $row=mysql_fetch_array($result);
>       if ($num > 0) {
>          return "1";
>       } else {
>          header("WWW-Authenticate: Basic realm=\"firenze.linux.it\"");
>          header("HTTP/1.0 401 Unauthorized");
>          echo "Username e/o password errati\n";
>          exit;
>       }
>       closeDB();
> }
>
> Le funzioni connectDB() e closeDB() sono a parte, se interessa le mando.
>
> Saluti
>

Grazie, la metto nel "deposito" delle idee. Però da una parte ti consiglio
di lavorare a livello di AccessHandler di apache, così puoi usare il tuo
sistema senza stare a modificare tutte le pagine/script, e poi con
l'autenticazione di tipo "Basic" ho trovato dei problemi: konqueror
domanda utente e password ad ogni pagina (invece di mandare in automatico
l'utente del realm come fanno netscape e explorer). Comunque ti consiglio
di vedere Apache::AuthCookie sul cpan, anche se non vuoi usare i cookie,
ci sono un paio di trucchi carini per autenticare gli utenti senza
fargli perdere la url, e cose del genere. Mi immagino che ci siano gli
equivalenti per php.

Io enso di usare i cookie per il seguente motivo (forse hai dei consigli
migliori): vorrei che l'utente non registrato vedesse alcune cose (in
maniera trasparente), e che quelli che passano dalla registrazione ne
vedessero altre (ovvero: la stessa pagina ma con dei bottoni in più).

In particolare sto "adattando" un sistema per editare le pagine: l'utente
non registrato vede delle normali pagine web, quello registrato le può
modificare.

Chiaramente c'è un bottone "login" e "logout" per passare tra le due
modalità. con l'autenticazione "basic" questo non è facile (devo far
autenticare anche gli utenti casuali).

ciao.


-- 
Franco Bagnoli (franchino) <bagnoli@dma.unifi.it>
virtual location: Dipartimento di Energetica "S. Stecco"
real location: Dip. Matematica Applicata "G. Sansone", Universita' Firenze,
Via S. Marta, 3 I-50139 Firenze, Italy. Tel. +39 0554796422, fax: +39 055471787
GPG Key fingerprint = 169D 9EA5 8FD3 7EDA E43A  9830 255F BCEC 0D63 3728






Maggiori informazioni sulla lista flug