Problema con l'accesso protetto alle pagine

di il
2 risposte

Problema con l'accesso protetto alle pagine

Salve sono sempre io ! ho un altro problema:

<HTML>

<HEAD>
<TITLE>login e pass </TITLE>
 </HEAD>

<BODY>
<?php

include ("C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\verifica.php");
$_SERVER['PHP_AUTH_USER']='piasomma';
$_SERVER['PHP_AUTH_PW']='camila';
$user=$_SERVER['PHP_AUTH_USER'];
$password=$_SERVER['PHP_AUTH_PW'];



if (!isset($user) || verifica($user,$password)==false){
 header('WWW-Authenticate:Basic realm="Trop Secret"');
 header('HTTP/1.1 401 Unathorized');
 echo 'autenticazione fallita';
 exit;
}
else {
 echo "Autenticazione riuscita";
 
}
?>
</BODY>
</HTML>
Il browser mi visualizza queste informazioni:

Warning: Cannot modify header information - headers already sent by (output started at C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\login_password.php:8) in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\login_password.php on line 19

Warning: Cannot modify header information - headers already sent by (output started at C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\login_password.php:8) in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\login_password.php on line 20
autenticazione fallita

Che posso fare?

Scusate se chiedo troppo ma alla fine che vogliono dire queste due frasi ? :
header('WWW-Authenticate:Basic realm="Trop Secret"');
header('HTTP/1.1 401 Unathorized');

Sto studiando a casa da sola ! non ne capisco molto!

2 Risposte

  • Re: Problema con l'accesso protetto alle pagine

    Ciao,
    il problema del "warning" è dovuto al fatto che se usi la funzione header() (nel caso in cui il login non abbia successo) non puoi aver già inviato precedentemente "output" al browser (è nel protocollo http).

    Tralasciando il fatto dei protocolli, a te basta ricordare che se usi header() non ci deve essere "testo sulla pagina" prima della funzione, nel tuo caso tutto questo blocco:
    
    <HTML>
    
    <HEAD>
    <TITLE>login e pass </TITLE>
    </HEAD>
    
    <BODY>
    
    Quindi o sposti più in alto il controllo del login oppure sposti sotto il codice html della pagina.


    Le ultime 2 "frasi" sono fatte per dire al browser che un login non ha avuto successo e quindi deve visualizzare un messaggio di errore.

    Spero di esserti stato d'aiuto.

    Ciao ciao
  • Re: Problema con l'accesso protetto alle pagine

    Scusa ma non ti conviene lavorare su un db Mysql ? invece di includere uesername e password su un file ? non per altro ma a livello di sicurezza non è il massimo.
Devi accedere o registrarti per scrivere nel forum
2 risposte