Pb de header:comment faire une authentificati

Résolu
ethan55 Messages postés 42 Statut Membre -  
Timon1102 Messages postés 354 Statut Membre -
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

ethan55
 
Bon ecoute la requete ne marche pas .Je vais manger et on se recontacte vers 2h si tu peux
Merci bêaucoup
0
Timon1102 Messages postés 354 Statut Membre 109
 
14h pour toi = 13h pour moi, donc je ne serais pas la avant 15h francaises
0
ethan5
 
tu habites a londres?
0
Timon1102 Messages postés 354 Statut Membre 109
 
nan, je suis a Cardiff, mais me reste que 4jours
0

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

Posez votre question
ethan55
 
ah ok j etais a dublin londres mais cardiff jamais c bien la bas?
0
ethan55
 
ah ok j etais a dublin londres mais cardiff jamais c bien la bas?
0
Timon1102 Messages postés 354 Statut Membre 109
 
moi j'aime bien, c'est une super capitale, mais en concentré. Ya des arbres partout, plein de trucs a voir/faire, mais ya toujours un put*** de vent
0
ethan55
 
En tout cas ca serait super cool si j arrivais a resoudre ce pb...
0
Timon1102 Messages postés 354 Statut Membre 109
 
deja tu sais que ca vient de ta requete sql
donc $result n'est pas un resultat valide et ca fait une erreur qq part
0
ethan55
 
ok bien compris mais l'erreur est ou,telle est la question?,??
0
Timon1102 Messages postés 354 Statut Membre 109
 
essaye ca
$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); 
echo "$rq<br>" ;
foreach($ligne as $k=>$v) echo "$k => $v<br>" ;
if($ligne) 
{$auth=TRUE;} */} 
/*
if(!$auth){header('WWW-Authenticate:Basic realm="Sunbelt Call Logging System"'); 
header('HTTP/1.0 401 Unauthorized'); } 
*/
0
ethan55
 
Voila le pg que j ai mis:

<?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);
foreach($ligne as $k=>$v) echo "$k => $v<br>" ;
if($ligne)
{$auth=TRUE;} }
/*
if(!$auth){header('WWW-Authenticate:Basic realm="Sunbelt Call Logging System"');
header('HTTP/1.0 401 Unauthorized'); }
*/
?>


et le resultat est une page blanche...
0
Timon1102 Messages postés 354 Statut Membre 109
 
affiche ta requete aussi ($rq)

tu a essayé avec des login/mdp qui sont dans la base ?
0
ethan55
 
Comment j affiche la requete?
En plus,que signifie $_SERVER['PHP_AUTH_USER']
0
Timon1102 Messages postés 354 Statut Membre 109
 
pour afficher la requete un simple echo "$rq<br>" ; suffit.

Je t'avoue que je n'ai jamais utilisé ce genre de chose pour l'identification... donc peut etre que si tu cries assez fort qqun t'entendra et t'expliquera... :-S
0
ethan55
 
ok t as une autre solution pour l identification
0
Timon1102 Messages postés 354 Statut Membre 109
 
euh, moi j'ai adopté les sessions. sur une page tu fait ton identification avec un formulaire (login ? mot de passe ?), puis si c'est pas ok tu di "pas ok", si c'est ok tu dis"vazy navigue sur mon site". en fait au debut de chaque page le test suivant suffit
<?php session_start();
if($_SESSION['level']!=1) header("Location: ./identify.php");
?>

sachant que level, c'est arbitraire(c'est moi qui est choisi).
Parexemple un site avec un chercheur d'emploi, un employeur, et un admin : j'ai mis level=1 pour admin, 2 pour employeur, 3 pour job seeker... enfin tu vois ?
0
Timon1102 Messages postés 354 Statut Membre 109
 
t'es mort ?
0
ethan55
 
salut Timon .
Exuse moi pour hier j ai du partir en urgence.
elle est tres bien ton idee que tu viens de me donner.Il faudrait juste que tu m'expliques toutes les etapes car comme tu as du le remarquer,j ai un peu de mal.....
0
Timon1102 Messages postés 354 Statut Membre 109
 
moui, je peux t'expliquer mais faut que tu me dises quel est ton niveau... les formulaires c'est ok ? et le PHP de base pour recuperer les données d'un form ($_POST) ?
0