voila j'ai fais plusieurs demandes sur ce forum pour des problemes avec un code de connection...
Mais voila maintenant j'ai une erreur :
tout est preciser dans le code meme
<html>
<?php
//la connection
//on verifie si la variable n'est pas vide ou bien autre chose.
if(empty($_POST['pseudo']) || empty($_POST['password']))
{
//si oui , on envoie ce message
echo 'Mauvais mot de passe ou bien , utilisateur inconnu
[connexionmembre.php Retour au formulaire] erreur 3';
}
//sinon , on continue
else
{
$pseudo = $_POST['pseudo'];
$password = md5($_POST['password']);
//on prend le mot de passe lié a $pseudo
$sql = mysql_query('SELECT password FROM membres WHERE pseudo='. $pseudo .'');
//on verifie si $sql n'est pas egal a 0
if(empty($sql))
{
//si oui, on affiche le message.
echo 'Mauvais mot de passe ou bien , utilisateur inconnu
[connexionmembre.php Retour au formulaire] erreur 1';
}
//sinon on continue
else
{
$data = mysql_fetch_assoc($sql);
//on verifie si le mot de passe envoyée est correcte.
if($data['password'] = $password)
{
header ('Location: zonemembre.php');
}
else
{
//sinon
echo 'Mauvais mot de passe ou bien , utilisateur inconnu
[connexionmembre.php Retour au formulaire] erreur 2';
}
}
}
?>
</html>
Voila , en sachant que le code me permet d'acceder de n'importe quelle maniere a ma zone membre...
Vous trouvez une erreur dans ce code ??
Merci d'avance a tous ceux qui voudront bien m'aider. (ps : je repond pas forcement directement mais plutot dans l'apres midi vers 4h)
<?php
function conn(){
$host='localhost';
$login='root';
$pass='';
$mabasededonnee='factu';
$connection = mysql_connect($host,$login,$pass);
/*testons la connection au serveur mysql*/
if(!$connection){
die('connection impossible err 0');
/*echec arret par die()*/
}else{
$db = mysql_select_db($mabasededonnee);
/*testons la connection à la base*/
if(!$db){
die('connection impossible err 1');
/*echec connection à la base arret par die()*/
}else{
/*connecté*/
//echo 'conn ok';
}
}
}
conn();
?>
<html>
<?php
//la connection
//on verifie si la variable n'est pas vide ou bien autre chose.
if(empty($_POST['pseudo']) || empty($_POST['password']))
{
echo md5('toto');
echo $form='
<form method="post" action="">
log
pass
</form>';
//si oui , on envoie ce message
echo 'Mauvais mot de passe ou bien , utilisateur inconnu
[connexionmembre.php Retour au formulaire] erreur 3';
}
//sinon , on continue
else
{
$pseudo = $_POST['pseudo'];
$password = md5($_POST['password']);
//on prend le mot de passe lié a $pseudo
$sql=mysql_query("SELECT password FROM membres WHERE pseudo='".$pseudo."' limit 1");
//on verifie si $sql n'est pas egal a 0
if(empty($sql))
{
//si oui, on affiche le message.
echo 'Mauvais mot de passe ou bien , utilisateur inconnu
[connexionmembre.php Retour au formulaire] erreur 1';
}
//sinon on continue
else
{
$data = mysql_fetch_assoc($sql);
//on verifie si le mot de passe envoyée est correcte.
if($data['password'] = $password)
{
echo 'c bon !';exit; /*ligne test à enlever*/
//header ('Location: zonemembre.php');
}
else
{
//sinon
echo 'Mauvais mot de passe ou bien , utilisateur inconnu
[connexionmembre.php Retour au formulaire] erreur 2';
}
}
}
?>
</html>
--
-- Structure de la table `membres`
--
CREATE TABLE IF NOT EXISTS `membres` (
`id` int(11) NOT NULL DEFAULT '0',
`pseudo` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Contenu de la table `membres`
--
INSERT INTO `membres` (`id`, `pseudo`, `password`) VALUES
(0, 'titi', 'f71dbe52628a3f83a77ab494817525c6');
titi -> toto
SI TU VEUX FAIRE UNE PAGE PRIVEE
il faut utiliser les sessions ou les cookies pour stocker une autorisation
ou travailler tjs sur la meme page pas de redirection
$pseudo et $password sont toujours definis donc une fois logué
il le sont tjs ...
if($data['password'] = $password)
déjà ici c'est pas une affection mais une égalité
if($data['password'] === $password)
tu as mal posé ta question
je suppose que tu veux faire un espace membre ou une page
privée
C'est une égalité strict, étant donné que $data['password'] est un tableau et non une chaine c'est normal que la condition ne soit pas remplie.
Le mieux est de convertir $data['password'] en chaine strval($data['password']) ou de mettre une simple égalité.
<html>
<?php
//connexion
//on verifie si la variable n'est pas vide ou bien autre chose.
if(empty($_POST['pseudo']) || empty($_POST['password']))
{
//si oui , on envoie ce message
echo 'Mauvais mot de passe ou bien , utilisateur inconnu
[connexionmembre.php Retour au formulaire] erreur 3';
}
//sinon , on continue
else
{
$pseudo = $_POST['pseudo'];
$password = md5($_POST['password']);
//on prend le mot de passe lié a $pseudo
$sql=mysql_query("SELECT password FROM membres WHERE pseudo='".$pseudo."' limit 1");
//on verifie si $sql n'est pas egal a 0
if(empty($sql))
{
//si oui, on affiche le message.
echo 'Mauvais mot de passe ou bien , utilisateur inconnu
[connexionmembre.php Retour au formulaire] erreur 1';
}
//sinon on continue
else
{
$data = mysql_fetch_assoc($sql);
//on verifie si le mot de passe envoyée est correcte.
if($data['password'] === $password)
{
header ('Location: zonemembre.php');
}
else
{
//sinon
echo 'Mauvais mot de passe ou bien , utilisateur inconnu
[connexionmembre.php Retour au formulaire] erreur 2';
}
}
}
?>
</html>
<html>
<?php
//connexion
//on verifie si la variable n'est pas vide ou bien autre chose.
if(empty($_POST['pseudo']) || empty($_POST['password'])) {
echo 'Veuillez remplir l\'ensemble du formulaire
[connexionmembre.php Retour au formulaire] erreur 3';
}
//sinon , on continue
else
{
$pseudo = $_POST['pseudo'];
$password = md5($_POST['password']);
//on prend le mot de passe lié a $pseudo
$sql=mysql_query("SELECT password FROM membres WHERE pseudo='".mysql_real_escape_string($pseudo)."' AND password='".$password."' limit 1") or die('erreur sql');;
if(mysql_num_rows($sql)) {
//si oui, on affiche le message.
echo 'Mauvais mot de passe ou bien , utilisateur inconnu
[connexionmembre.php Retour au formulaire] erreur 1';
}
//sinon on continue
else
{
header ('Location: zonemembre.php');
exit;
}
}
?>
</html>