pb d'identification (session je crois)
Bonjour,
Mon probleme est simple.
A partir d'un formulaire l'utilisateur peut acceder a son compte(securise)
Mon probleme est que je n'arrive pas a acceder a la page pub(espace membre).
JE crois que tout est ds des fonctions comme necessite_identification et is_identifie(Que j'ai pas ou/et je n'arrive pas a faire)
voila mon code ;
Le formulaire(qui marche bien)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <div class="element_menu">
<div id="sous_menu"><img src="images/stars.jpg" width="30" height="20" border="0" align="left" /> <h3>Pro access</h3> </div>
<form method="post" action="<?=$_SERVER['PHP_SELF']?>?action=log">
<p>
<label for="Username">Username :</label>
<input type="text" name="login" id="login" style="width:120px" />
<br />
<label for="Password">Password :</label>
<input type="password" name="pass" id="pass" style="width:120px" />
</p>
<p>
<input type="submit" value="Login"/>
</p>
</form></div>
<?php if (isset($message_erreur)) {echo "<p class=\"errorMessage\">".$message_erreur."</p>";}?>
</div> |
CE qui se passe quand on valide:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| <?php if (est_identifie()) {
$goto = "./pubs.php";
header("Location: ".$goto);
die;
}
?>
<?php
$message_erreur = "";
if (isset($_GET['action']) && $_GET['action'] == "log")
{
$login=addslashes($_POST['login']);
$pass=addslashes($_POST['pass']);
$utilisateur = verifier_authentification($login,$pass);
if ($utilisateur) {
$_SESSION['utilisateur'] = $utilisateur;
$_SESSION["ip"] = $_SERVER['REMOTE_ADDR'];
$_SESSION["url"] = $_SERVER['HTTP_HOST'];
/*
* Si wantsurl est défini, alors on se redirige vers cette page sinon
* on revient à la page d'accueil
*/
if (empty($_SESSION['wantsurl'])) {
$goto = "./pubs.php";
} else {
$goto = $_SESSION['wantsurl'];
}
header("Location: ".$goto);
die;
} else {
$message_erreur .= "Login et/ou mot de passe incorrect(s) - Veuillez essayer à nouveau.";
}
}
?> |
les fonctions que j'utilise:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
<?PHP
function est_identifie() {
/* Retourne true si l'utilisateur des identifie */
global $SESSION, $REMOTE_ADDR;
return isset($SESSION)
&& isset($SESSION["login"])
&& isset($SESSION["ip"])
&& $SESSION["ip"] == $REMOTE_ADDR;
}
function necessite_identification() {
/* Cette fonction vérifie si l'utilisateur est identifié. Si non affiche
* l'écran d'authentification avant de laisser l'utilisateur continuer */
global $SESSION, $dossier_www, $PHP_SELF;
if (! est_identifie()) {
$SESSION["wantsurl"] = $PHP_SELF;
echo "Access denied!!!!!!";
die;
}
}
function verifier_authentification($login, $pass) {
/* Vérifie le nom d'utilisateur et le mot de passe. S'ils sont valides, renvoie un
* tableau avec les infos de l'utilisateur */
$requete = "SELECT * FROM Users WHERE username = '$login' AND password = '$pass'";
$qid = mysql_query($requete)
or die("Erreur lors de l'exécution de la requête111111: ".mysql_error());
$num=mysql_num_rows($qid);
if (mysql_num_rows($qid) ==1 ) {
return mysql_fetch_array($qid);
}
else {
return;
}
}
?> |
Resultat,j'arrive bien a me connecter puisque j'ai une redirection vers pubs.php,mais vu que pubs.php commence par necessite_identification();
J'ai le message d'erreur access denied!!!! Preuve que je ne suis pas identifier.
Est ce que quelqu'un aurait un conseil a me donner pour me debloquer!!!!
Merci beaucoup
(dsl pour les accents j'utilises un clavier anglais lol)