floxone
Messages postés88Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention10 août 2007
-
25 avril 2005 à 14:59
floxone
Messages postés88Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention10 août 2007
-
28 avril 2005 à 09:03
Salut à tous,
J'ai un problème avec un script utilisant une identification au travers un header.
LE PROBLEME : la fenetre de saisie s'ouvre 2 fois ! J'ai remarqué que les paramètres serveurs (PHP_AUTH_USER) étaient conservés. Donc, la fenêtre s'ouvre 2 fois mais utilise l'ancienne saisie et garde la nouvelle qui sera interpretee si on se delog et relog.
J'espere que c'est clair... Voici le code :
----- Dans la page à sécurisée ----
session_start();
if(!isset($_SESSION['username'])) {
include "securite3.php";
}
----- Dans la page de verification --------
<?php
//On se connecte à la base
include "connexion.php";
connection_base();
//si on ne s'est pas encore identifié (pas de nom sur le serveur ou pas de session enregistrée), on se logge
if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SESSION['username']))
{
//lancement de la fenetre de saisie de loggin + mot de passe
header('WWW-Authenticate: Basic realm="My Realm"');
//on initialise 2 variables pour la reguete sql
$user_name=$_SERVER['PHP_AUTH_USER'];
$password=$_SERVER['PHP_AUTH_PW'];
}
//sinon, on redirige sur l'accueil tout en détruisant la session au travers de la page logout.php
else
{
echo "<script>";
echo "window.location.href = 'logout.php'";
echo "</script>";
}
//Requêtes mySQL pour établir la validation.
$query = "SELECT * FROM users WHERE login='".$user_name."' AND pass='".$password."' ";
//Exécution de la requête mySQL et affectation du nombre de rangés valides dans la table.
$result = mysql_query($query) or die('error making query');
$affected_rows = mysql_num_rows($result);
//Si il y a un enregistrement, la connexion est valide sinon invalide.
if($affected_rows == 1) {
//ajoute l'utilisateur à une variable de session et rafraichi la page
$_SESSION['username'] = $user_name;
echo "<script language='JavaScript' type='text/javascript'>";
echo "location.reload()";
echo "</script>";
exit;
}
//sinon, on redirige sur l'accueil tout en détruisant la session au travers de la page logout.php
else {
echo "<script>";
echo "window.location.href = 'logout.php'";
echo "</script>";
exit;
}
?>
Merci de votre aide : j'en ai marre... Ca me prend trop la tête.
Je suis désolé, je dev en local... Je peux pas vous montrer le problème sur un site...
floxone
Messages postés88Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention10 août 2007 25 avril 2005 à 15:47
ok, je crois voir d'où vient mon probleme ! Est-ce qu'il y a un moyen de détruire les variables $_SERVEUR ?<!-- ok, je crois voir d'où vient mon probleme ! Est-ce qu'il y a un moyen de détruire les variables $_SERVEUR ? -->
floxone
Messages postés88Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention10 août 2007 25 avril 2005 à 16:24
$_SERVER['PHP_AUTH_USER'] et $_SERVER['PHP_AUTH_PW']. Il me semble que ca existe, puisque je l'utilise. A première vue, mon problème est que l'authentification par header rafraichi le script apres la saisie. Alors je planche sur l'algo... Mais ce serait plus simple de pouvoir détruire les variables du serveur.
Enfin, j'aimerais bien que tu expliques mieux ton : ça n'existe pas ;-)