[Php] Variable Session, connexion par mdp

Résolu/Fermé
Cyrius - 12 déc. 2007 à 16:58
 matmar08120 - 27 avril 2009 à 10:34
Bonjour, j'essaye de créer un accés sécurisé sur mon site avec email et mot de passe. J'utilise la variable session, qui marche sur un autre de mes sites, mais là ... la connexion ne se fait pas, et je pense que c'est à cause de session. Voici mon code :

<?php
session_start(); // initialisation de la variable session
echo('<?xml version="1.0" encoding="iso-8859-1"?>');
?>

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<title>Page d'accueil</title>
<meta http-equiv="Content-Type" content="text/html ; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="styles/design.css" />


</head>

<body>
<?php include('menu.php'); ?>

<div id="content">



<?php

if ((isset($_POST["password"])) AND (isset($_POST["email"] ))) //on teste si les variables existent
{ $password = $_POST['password'] ; //la variable mdp prds la valeur de ce qui a été tapé
$email = $_POST['email'] ; //la variable pseudo prds la valeur de ce qui a été tapé
}
else //sinon
{
$mot_de_passe = "" ; //la variable prds la valeur vide
$email = ""; //la variable prds la valeur vide
}



mysql_connect("dddd", "dddd", "dddd"); // Connexion à MySQL
mysql_select_db("db227375794"); // Sélection de la base

// On est connectés, on peut travailler sur la BDD

$reponse = mysql_query("SELECT * FROM locations ") or die(mysql_error()); //TOUT les membres

// On fait une boucle pour lister tout ce que contient la table :

while ($membres = mysql_fetch_array($reponse) ) //créé un tableau ordonné avec TOUT les membres,
{
if ( ($password == $locations['password']) AND ($email == $location['email']))
{

$_SESSION['email'] = $email; //pseudo correct donc on garde le pseudo dans la var session
$_SESSION['password'] = $password; //mot de passe correct donc on garde le pass dans la var session

include("copyright.php") ;
exit(); //il faut arrêter la boucle ! sinon ca va se répéter
}
else
{
echo('denied');
echo $_SESSION['password'] ;
include("copyright.php") ;
exit(); //il faut arrêter la boucle ! sinon ca va se répéter

}

}



// On a fini de travailler, on ferme la connexion :
mysql_close(); // Déconnexion de MySQL
?>



</div> <!-- fin de content !-->
</body>
</html>


Le probléme c'est qu'il me renvoi tjrs "denied". De plus, le " echo $_SESSION['password'] ; " ne s"affiche pas avec le denied ....
Merci de toute réponse.
A voir également:

8 réponses

Bonjour

ça a l'air bien a priori.
Donc ta variable password (et / ou email) est très probablement vide.
Peux-tu montrer le formulaire qui envoie sur cette page ?
0
Voici le formulaire :

<?php
echo('<?xml version="1.0" encoding="iso-8859-1"?>'); ?>

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<title>Bienvenue sur oya-location.com</title>
<meta http-equiv="Content-Type" content="text/html ; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="styles/design.css" />
</head>

<body>

<?php include("menu.php") ?>

<div id="content" >

<div id="contents">


<div id="password">
<br/>
<table>
<form method="post" action="membres.php">
<tr>
<td rowspan="2">E-Mail : </td>
</tr>
<tr>
<td><input type="text" name="E-Mail" size="12" maxlength="12" class="text"/></td>
</tr>
<tr>
<td rowspan="2">Mot de passe : </td>
</tr>
<tr>
<td><input type="password" name="password" size="12" maxlength="12" class="text"/> </td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
<tr>
<td>
<input type="submit" value="S'identifier" class="boutton"/>
</td>
<td>
<input type="reset" value="Annuler" class="boutton"/>
</td>
</tr>
</form>
</table>
<br/>
<a href="inscription.membres.php">Pas encore inscrit ?</a> |
<a href="password.lost.php">Mot de passe perdu ?</a>

<div id="avantages">

<div class="img-center">
</div>

<ul>

</ul>
</div>

</div>
<div id="separateur-id">
</div>


</div>

</div>
<?php include("copyright.php") ?>

</body>

</html>
0
Je m'en doutais un peu...
Dans ton formulaire, tu appelles ton champ "E-Mail"
Dans ta vérification, tu l'appelles "email"
ça ne peut pas coller. choisis le nom que tu veux, mais garde le même !
0
ok merci bien ^^
mais ca ne marche toujours pas ... toujours l'affichage de denied, et pas daffichage de ce que contient echo $_SESSION['password'] ;
De plus, si je rajoute dans la else " echo $password" le password entré s'affiche ....
0

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

Posez votre question
while ($membres = mysql_fetch_array($reponse) ) //créé un tableau ordonné avec TOUT les membres,
{
if ( ($password == $locations['password']) AND ($email == $location['email']))


Tu lis dans une variable $membres, tu testes dans une variable $location...
Parce que ta table s'appelle location ? aucun rapport, le nom de ta table apparaît dans la requête, mais le résultat est mis dans $membres
0
super merci !
le fait que tu me dises ca m'a tout refait vérifier. Et avec cette erreur, il y avait des prob de "s" sur locations. Voila un grand merci pour m'avoir guidé !

ps: je saurais qu'il ne faut jamais faire un copier/coller ^^
0
ps: je saurais qu'il ne faut jamais faire un copier/coller ^^

Mais si on peut en faire ! Mais pas les yeux fermés ....
0
Bonjour à tous,

Je suis novice dans tous ceux qui concernes les php.

J'ai longtemps chercher sur google, eetc... comment faire mais je n'ai jamais trouvé !

J'aimerais en faites que dans ma page index, il y est un formulaire avec champs texte où le visiteurs entre son Prénom. Lorqu'il à entrer son prénom et confirmer avec le bouton. ca le dirige vers une page qui dit Bienvenue prénom X(le prenom kil a enter).

Je pense que cela est posible si quelquun pouvais me transmetre les code ce sera très simpa.

Merci d'avance !

Bonne journey !!!
0
je te fais par la methode de deux fichiers mais il est possible de le faire sur un seul.
en faisant un
if( isset($_POST['prenom']) && isset ($_POST['ok']))
{
echo 'Bonjour,'.$_POST['prenom'].' vous etes sur mon site......');
}
else
{
entrer votre prenom dans le formulaire
echo('<div id="formulaire">
<form name="visiteur" method="POST" action ="">
<table>
<tr><td>Prenom</td><input type="text" name="prenom" /></td></tr>
<tr><td><input type="submit" name="OK" value="OK"/></td></tr>
</table>
</form></div>')
}


methode avec deux pages php:

page1.php

<?php
echo('
<div id="formulaire">
<form name="visiteur" method="POST" action ="index.php">
<table>
<tr><td>Prenom</td><input type="text" name="prenom" /></td></tr>
<tr><td><input type="submit" name="OK" value="OK"/></td></tr>
</table>
</form></div>
);
?>

page index.php
<?php
$prenom=$_POST['prenom'];
echo('Bonjour ,'.$prenom.' est bienvenue sur mon site .....');
?>


Voila j'espere que sa taidera .je n'ai pas tout verifier mais bon
0