Pb de header:comment faire une authentificati

Résolu/Fermé
ethan55 Messages postés 42 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 21 novembre 2005 - 5 juil. 2005 à 11:31
Timon1102 Messages postés 354 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 30 décembre 2010 - 7 juil. 2005 à 16:00
je travaille sur EasyPhp et j essaie de faire une authentification HTTP pour ma page da acceuil.
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 ...

71 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
5 juil. 2005 à 12:31
Euh... Tu as un déjà écris un message presque identique:
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.
0
je sais que j ai deja pose la question mais je n ai pas recu de reponse...
il n y a rien avant <?php que faire???
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
5 juil. 2005 à 14:48
Peut être parce que ton code génère des erreurs, et donc du coup l'affichage commence.

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).
0
je ne crois pas qu il y ait d errreur car je la i recopie d un livre.
Alors peut etre que le pb vient de config.ini
Ques t en penses?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Timon1102 Messages postés 354 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 30 décembre 2010 109
5 juil. 2005 à 15:23
$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
0
Merci pour ta reponse
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?.......
0
Timon1102 Messages postés 354 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 30 décembre 2010 109
5 juil. 2005 à 16:05
c 'est juste qu'apparement tes champs dans ta base (tu y a accès pour verifier ?) sont tous encadrés d'accolades ? en tous cas, d'apres ta requete... ca me parait bizarre.
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.
0
Merci pour ta reponse mais je dois y aller il faut que je continues ca demain
Est que demain tu seras la le matin sur ce site?
0
Timon1102 Messages postés 354 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 30 décembre 2010 109
5 juil. 2005 à 16:19
je commence a 8h30, soit 9h30 heure francaise, mais je ne file pas directement sur le forum... ca serai louche, lol. mai je suis la juska 17h, soit 18h francaises. @demain
0
Voila je suis au boulot ,j ai toujours la meme question si vous pouvez m'aider ca serait sympa....
0
Timon1102 Messages postés 354 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 30 décembre 2010 109
6 juil. 2005 à 11:26
essaie de mettre ton code en commentaire comme ca :
<?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
0
Ok merci pour ton reponse.mais j ai encore des problemes.
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...
0
Timon1102 Messages postés 354 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 30 décembre 2010 109
6 juil. 2005 à 12:01
la mise en commentaire n'est qu'une étape, pour voir où ca cloche. Donc si tu met en commentaire comme je t'ai dit tu n'as plus le message d'erreur ?
0
Exact il n'y a plus d'erreur
0
Timon1102 Messages postés 354 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 30 décembre 2010 109
6 juil. 2005 à 12:09
ok, alors essaye ca et dit moi si y a tj po d'erreur :
<?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'); //} 

?> 
0
mainteenat il y a une erreur a la derniere ligne:parse error...
0
Timon1102 Messages postés 354 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 30 décembre 2010 109
6 juil. 2005 à 12:13
desolé c'est de mafaute
<?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'); //} 

?> 
0
Ok maintenant il n'ya plus d'erreur.
Qu'est que je fais a present?
0
Timon1102 Messages postés 354 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 30 décembre 2010 109
6 juil. 2005 à 12:18
$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.
0
OK mais le travaile avec easyphp et j arrive pas a faire marcher phpmyadmin mais je teste mes requetes avec dos.
Bon je vais esseyer
0