pb identification

Petit nouveau ! | 4 Messages

12 oct. 2009, 21:09

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)
<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:
<?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:
<?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)

Eléphant du PHP | 369 Messages

13 oct. 2009, 09:13

Salut,
Bonjour,
Mon probleme est simple.
A partir d'un formulaire l'utilisateur peut acceder a son compte(securise)
[...]
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)
Voici un post récent qui peut t'interresser. Même s'il ne traite pas de ton problème directement,
si tu lis attentivement, tu y trouveras la réponse.

Et en guise de fin de post, un 'tit lien: http://www.manuelphp.com/php/ref.session.php

@+ ;)

Petit nouveau ! | 4 Messages

13 oct. 2009, 11:39

Je crois que tu as oublie de rajouter le lien vers la discussion qui pourrait m'aider.
Merci :)

Eléphant du PHP | 369 Messages

13 oct. 2009, 12:13

Re,
Je crois que tu as oublie de rajouter le lien vers la discussion qui pourrait m'aider.
Merci :)
lol. 'fin, rien n'est trop tard: php-debutant/session-start-t250318.html

@+

Petit nouveau ! | 4 Messages

13 oct. 2009, 18:00

bon,
La discussion ne ma pas beaucoup servi ...
J'ai pas l'impression qu'il y'ai de la securite ds le post que tu ma donner.
bref,je vais jeter un coup d'oeil sur les sessions.

Quelqu;un d'autre pourrait m'aider svp!!!!!!

Administrateur PHPfrance
Administrateur PHPfrance | 977 Messages

13 oct. 2009, 18:05

on est pas la pour donner des solutions toutes faites mais donner des pistes ! la piste que t'a donner FuZZyLine est l'utilisation des sessions PHP.

Apprend à utiliser les sessions et tu pourrai faire ton système d'identification.
Quelqu;un d'autre pourrait m'aider svp!!!!!!
Très mal vue sur le forum ! étudie d'abord les pistes données avant de juger !
pro : http://www.ohweb.fr -> studio de développement en PHP, expertise en e-commerce, certifié PrestaShop
perso : http://www.olecorre.com -> un dico de termes informatiques

J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone. [Bjarne Stroustrup]

Petit nouveau ! | 4 Messages

13 oct. 2009, 18:20

oupps,
Je me suis mal exprime.
Quand j'ai dit que la discussion ne m'a pas servi,je parlais du 1er lien que m'a donne fuzzyline.
Sinon,j'ai bien dit que j'allais voir les sessions (le deuxieme lien de fuzzyline)

Et quand je dis quelqu'un d'autre en aide => quelqu'un d'autre avec exemple (comme fuzzyline) je suis consciens que je ne suis pas la 1ere personne sur terre a faire une identification en php

ViPHP
AB
ViPHP | 5818 Messages

13 oct. 2009, 20:06

Il y a un exemple d'inscription et de connexion dans un espace membre ici. Tu pourras comparer. Ce lien figure d'ailleurs dans le post du deuxième lien donné par FuZZyLine ((la discussion dans ce post pourra t'aider également).

Au passage (mais ce n'est pas l'origine de ton pb), utilises la fonction mysql_real_escape_string plutôt qu'un simple addslashes pour protéger tes requêtes.