Page 1 sur 1

session sécurisé????????????

Posté : 01 avr. 2005, 11:10
par arno77
voila mon probleme
pour passer de page1.php à page2.php je veux une authentification de l'utilisateur donc tout en haut de mon code dans page2.php j'ai ecrit ceci
<?php
  include ("connexion_serveur_et_base.php");
  if(!isset($PHP_AUTH_USER))
  {
    header("WWW-Authenticate: Basic realm=\"Micro Application\"");
    header("HTTP/1.0 401 Unauthorized");
    echo "Accès refusé\n";
    exit;
  }
  else 
  {
    $requete="SELECT nom,password
              FROM utilisateurs 
              WHERE password='$PHP_AUTH_PW' 
				 AND nom='$PHP_AUTH_USER'";
					   
    $resultat=mysql_query($requete,$connexion);
    $nombre_de_resultats=mysql_num_rows($resultat);
    if ($nombre_de_resultats==0)
	{
      header("WWW-Authenticate: Basic realm=\"Micro Application\"");
      header("HTTP/1.0 401 Unauthorized");
      echo "Accès refusé\n";
      echo "<a href=$PHP_SELF>Cliquez ici pour vous identifier ";
      echo "de nouveau</a>";
      exit;
    };
  };
?>
problème il ne fait que relancer la fenetre d'authentification ou acces refusé.
La connexion à la base et à la table fonctionne bien

que faire?????

Posté : 01 avr. 2005, 11:31
par Vianney
salut,
tu peux éditer ton message et le mettre entre balise
 pour qu'on y voit plus clair

Posté : 01 avr. 2005, 11:49
par Cyrano
D'abord, tu as des ";" qui n'ont rien à faire là où ils sont: ton code devrait donc être :
<?php
include ("connexion_serveur_et_base.php");
if(!isset($PHP_AUTH_USER))
{
	header("WWW-Authenticate: Basic realm=\"Micro Application\"");
	header("HTTP/1.0 401 Unauthorized");
	echo "Accès refusé\n";
	exit;
}
else
{
	$requete="SELECT nom,password FROM utilisateurs WHERE password='". $PHP_AUTH_PW ."' AND nom='". $PHP_AUTH_USER ."'";

	$resultat=mysql_query($requete,$connexion);
	$nombre_de_resultats=mysql_num_rows($resultat);
	if ($nombre_de_resultats==0)
	{
		header("WWW-Authenticate: Basic realm=\"Micro Application\"");
		header("HTTP/1.0 401 Unauthorized");
		echo "Accès refusé\n";
		echo "<a href=". $_SERVER['PHP_SELF'] .">Cliquez ici pour vous identifier de nouveau</a>\n";
		exit;
	}
}
?>
Ensuite, essaye de déconnecter : ferme ton navigateur (comlètement), relance le et essaye de te connecter: sinon, tu as des infos dans un cookie qui peuvent bloquer l'authentification normale. En tous cas j'ai déjà vécu ce problème et cette méthode est pour l'instant la plus simple que j'ai trouvé.
Si ça ne fonctionne toujours pas, il y a une erreur ailleurs.
As-tu d'autres messages d'erreur ?

Posté : 01 avr. 2005, 12:40
par arno77
oui deux

Notice: Undefined variable: PHP_AUTH_PW in c:\program files\easyphp1-7\www\test\toto.php on line 12

Notice: Undefined variable: PHP_AUTH_USER in c:\program files\easyphp1-7\www\test\toto.php on line 12

Posté : 01 avr. 2005, 12:50
par Cyrano
Vive Google, j'ai trouvé ==>ça<==, ça devrait t'aider

Posté : 01 avr. 2005, 14:22
par arno77
Je recopie les lignes de code fournie par ton lien mais rien ne fonctionne il ne reconnait pas les variables PHP_AUTH_USER et PHP_AUTH_PW

Est ce que cela peut être dû à easyphp1-7 ????

J'ai des messages d'erreur qui apparaissentpour casiment toutes mes variables

Posté : 01 avr. 2005, 17:18
par arno77
coucou il y a quelqu'un parceque là c'est un grand moment de solitude

Posté : 01 avr. 2005, 20:20
par fab
tu as peut etre register_globals à off donc il te faut utiliser $_SERVER['PHP_AUTH_USER'] et $_SERVER['PHP_AUTH_PW']

Posté : 02 avr. 2005, 10:18
par arno77
Merci Ca marche

En fait je n'avais qu'un seul register global = on dans mon php.ini
L'autre etait encore sur off