[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