Pb de header:comment faire une authentificati
RésoluTimon1102 Messages postés 354 Statut Membre -
Je vous montre mon code:
<?php
$auth=FALSE;
if ((isset($_SERVER['PHP_AUTH_USER']) AND
isset($_SERVER['PHP_AUTH_PW'])))
{
define('DB_USER','root');
define('DB_PASSWORD','');
define('DB_HOST','localhost');
define('DB_NAME','s_c_l_s');
$bd=@mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die ('Connexion à MySQL impossible:'.mysql_error());
mysql_select_db(DB_NAME)
OR die ('Sélection de la base de donnees impossible:'.mysql_error());
$rq="SELECT nom from ingenieur where nom='{$_SERVER['PHP_AUTH_USER']}'
AND password=PASSWORD('{$_SERVER['PHP_AUTH_PW'] }')";
$result=mysql_query($rq);
$ligne=@mysql_fetch_array($result);
if($ligne)
{$auth=TRUE;}}
if(!$auth){
header('WWW-Authenticate:Basic realm="Sunbelt Call Logging System"');
header('HTTP/1.0 401 Unauthorized');}
?>
<html>
<body>
</html>
</body>
et voila ce que j obtiens :
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-82\www\auth.php:3) in c:\program files\easyphp1-82\www\auth.php on line 25
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-82\www\auth.php:3) in c:\program files\easyphp1-82\www\auth.php on line 26
Si vous pouvez peut etre m aider ca serait tres sympa ...
- Pb de header:comment faire une authentificati
- Création site web bon header - Forum Créer un site
- 400 bad request request header or cookie too large ✓ - Forum Google Chrome
- Bad request your browser sent a request that this server could not understand. size of a request header field exceeds server limit. - Forum Réseaux sociaux
- Bad request ✓ - Forum loisirs/vie pratique
- Your browser sent a request that this server could not understand. size of a request header field exceeds server limit. ✓ - Forum Bureautique
71 réponses
- 1
- 2
- 3
- 4
Le souci principal concerne l'authentification HTTP en PHP, lorsque des headers ne peuvent être modifiés car une sortie a été envoyée avant l'appel à header(), générant des warnings. Plusieurs explications et corrections sont évoquées, notamment envoyer les headers avant tout affichage, ou commenter temporairement du code, et vérifier les espaces avant les balises d'ouverture PHP. Certains répondants suggèrent de déplacer l'affichage HTML ou d'activer l'authentification après démarrage de la session, et d'isoler le problème en testant des blocs de code pour éviter les sorties précoces. En pratique, les échanges suggèrent d'éviter les sorties avant header(), de vérifier les fichiers inclus et, si nécessaire, de commenter des blocs pour confirmer que les headers s'envoient au moment voulu.
http://www.commentcamarche.net/forum/affich-1638183-probleme-de-header
Vérifie que rien n'est ecris avant la balise d'ouverture <?php
...pas même le moindre espace.
il n y a rien avant <?php que faire???
Par exemple avec ça tu risques d'avoir une erreur:
'{$_SERVER['PHP_AUTH_USER']}' (des guillemets simples dans des guillemets simples, ça crée une erreur si elle ne sont pas échappées).
Alors peut etre que le pb vient de config.ini
Ques t en penses?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
$rq="SELECT nom from ingenieur where nom='{".$_SERVER['PHP_AUTH_USER']."}'
AND password=PASSWORD('{".$_SERVER['PHP_AUTH_PW'] ."}')";
$result=mysql_query($rq);
d'une part, et d'autre part
tu est sur des {} ?
enfin, pour finir, ne prends pas pour argent comptant ce que tu trouves dans les bouquins
Mais j ai change ce que tu ma as demande mais ca affiche tjrs le meme message d erreur .
A part ca ja ai compris ton truc de {}
Que faire?.......
sinon degage temporairement les headers et regardes les affichages qui sont faits...
c'est sur qu'il ya une erreur de générée, qui fausse donc toute la donne.
Est que demain tu seras la le matin sur ce site?
<?php
/*
$auth=FALSE;
if ((isset($_SERVER['PHP_AUTH_USER']) AND
isset($_SERVER['PHP_AUTH_PW'])))
{
define('DB_USER','root');
define('DB_PASSWORD','');
define('DB_HOST','localhost');
define('DB_NAME','s_c_l_s');
$bd=@mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die ('Connexion à MySQL impossible:'.mysql_error());
mysql_select_db(DB_NAME)
OR die ('Sélection de la base de donnees impossible:'.mysql_error());
$rq="SELECT nom from ingenieur where nom='{$_SERVER['PHP_AUTH_USER']}'
AND password=PASSWORD('{$_SERVER['PHP_AUTH_PW'] }')";
$result=mysql_query($rq);
$ligne=@mysql_fetch_array($result);
if($ligne)
{$auth=TRUE;}}
if(!$auth){
*/
header('WWW-Authenticate:Basic realm="Sunbelt Call Logging System"');
header('HTTP/1.0 401 Unauthorized'); //}
?>
tu me dis si ca te fait tj des erreurs
Le script marche mais moi j aimerais pouvoir rentrer les logins et mot de passe que j ai rentre dans la base de donnes sur la table 'ingenieur'.Or la il ne marche qu avec mon adresse et mot de passe MSN .
A part ca j aimerais qu il y ait l 'authentification avant l'ouverture de la page d'acceuil de ma base de donnes.Et je mets require_once('auth.php') dans mon script de page d acceuil et la il me remet le meme message d erreur qu avant
Si tu as une idee merci de me repondre...
<?php
$auth=FALSE;
if ((isset($_SERVER['PHP_AUTH_USER']) AND
isset($_SERVER['PHP_AUTH_PW'])))
{
define('DB_USER','root');
define('DB_PASSWORD','');
define('DB_HOST','localhost');
define('DB_NAME','s_c_l_s');
$bd=@mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die ('Connexion à MySQL impossible:'.mysql_error());
mysql_select_db(DB_NAME)
OR die ('Sélection de la base de donnees impossible:'.mysql_error());
/*
$rq="SELECT nom from ingenieur where nom='{$_SERVER['PHP_AUTH_USER']}'
AND password=PASSWORD('{$_SERVER['PHP_AUTH_PW'] }')";
$result=mysql_query($rq);
$ligne=@mysql_fetch_array($result);
if($ligne)
{$auth=TRUE;}}
if(!$auth){
*/
header('WWW-Authenticate:Basic realm="Sunbelt Call Logging System"');
header('HTTP/1.0 401 Unauthorized'); //}
?>
<?php
$auth=FALSE;
if ((isset($_SERVER['PHP_AUTH_USER']) AND
isset($_SERVER['PHP_AUTH_PW'])))
{
define('DB_USER','root');
define('DB_PASSWORD','');
define('DB_HOST','localhost');
define('DB_NAME','s_c_l_s');
$bd=@mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die ('Connexion à MySQL impossible:'.mysql_error());
mysql_select_db(DB_NAME)
OR die ('Sélection de la base de donnees impossible:'.mysql_error());
/*
$rq="SELECT nom from ingenieur where nom='{$_SERVER['PHP_AUTH_USER']}'
AND password=PASSWORD('{$_SERVER['PHP_AUTH_PW'] }')";
$result=mysql_query($rq);
$ligne=@mysql_fetch_array($result);
if($ligne)
{$auth=TRUE;} */} /*
if(!$auth){
*/
header('WWW-Authenticate:Basic realm="Sunbelt Call Logging System"');
header('HTTP/1.0 401 Unauthorized'); //}
?>
$rq="SELECT nom from ingenieur where nom='{$_SERVER['PHP_AUTH_USER']}'
AND password=PASSWORD('{$_SERVER['PHP_AUTH_PW'] }')";
$result=mysql_query($rq);
$ligne=@mysql_fetch_array($result);
if($ligne)
{$auth=TRUE;}
le pb vient de la
tu a acces a phpmyadmin ? faudrai tester ta requete sql.
sinon essaye de mettre @ devant mysql_query, mai c futile.
- 1
- 2
- 3
- 4