Probleme Connection en PHP

geof2810
Messages postés
53
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
22 août 2012
- 21 mars 2011 à 20:04
cod57
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
- 22 mars 2011 à 23:06
Bonjour a tous,

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)

33 réponses

cod57
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
20
21 mars 2011 à 20:56
bonsoir
le script fonctionne a plus
a++

<?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
0
geof2810
Messages postés
53
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
22 août 2012

22 mars 2011 à 16:55
malheuresement, ton code ne m'a pas aidé.

J'ai toujours acces meme en tapant un nom d'utilisateur et un mot de passe au pif...
0
cod57
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
20
22 mars 2011 à 17:22
bonjour

en effet

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

a++
0
geof2810
Messages postés
53
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
22 août 2012

22 mars 2011 à 17:47
Merci beaucoup , effectivement j'ai remarqué que je n'ai pas été claire :p

ps : pour la zone membre, je vais faire des envois de cookies et comme ca , ca sera plus simple ;p

vais tester ce que tu me dis et je vais essayer
0

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

Posez votre question
geof2810
Messages postés
53
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
22 août 2012

22 mars 2011 à 18:10
es tu sur de tes 3 =??

car maintenant j'ai mon erreur 2 qui s'affiche...
0
phpAnonyme
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
55
22 mars 2011 à 19:31
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é.


______________________________________________________________________
0
cod57
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
20
22 mars 2011 à 19:46
chez moi la triple égalité ne pose pas de problème
if($data['password'] === $password)
pourrais tu recopier ton erreur
a++
0
phpAnonyme
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
55
22 mars 2011 à 19:52
Je pense qu'il utilise les short tags d'où l'erreur.


______________________________________________________________________
0
geof2810
Messages postés
53
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
22 août 2012

22 mars 2011 à 20:06
de quelle short tags parle tu ??

voici mon code a present ...

<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>
0
phpAnonyme
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
55
22 mars 2011 à 20:07
Loool j'ai dit ça au second degré !! j'ai oublié de mettre un émoticone


______________________________________________________________________
0
geof2810
Messages postés
53
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
22 août 2012

22 mars 2011 à 20:10
;) d'accord . Mais sinon aucune idée pour le code ??? Vais essayer tes caracteres on verra bien
0
phpAnonyme
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
55
22 mars 2011 à 20:14
Ton script est mal conçu, à la base !
Et puis, le mot de passe qui se trouve dans base est-il hashé au préalable ??

______________________________________________________________________
0
geof2810
Messages postés
53
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
22 août 2012

22 mars 2011 à 20:18
je sais mais je suis un debutant et je cherche pas trop compliqué ;)

et oui , mon code est hashé avec md5 lors de l'inscription.
0
phpAnonyme
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
55
22 mars 2011 à 20:23
<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>



______________________________________________________________________
0
phpAnonyme
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
55
22 mars 2011 à 20:24
merde ::
if(!mysql_num_rows($sql)) {



______________________________________________________________________
0
geof2810
Messages postés
53
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
22 août 2012

22 mars 2011 à 20:25
ah ok:p
0
geof2810
Messages postés
53
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
22 août 2012

22 mars 2011 à 20:27
malheuresement ton code m'affiche l'erreur 1...
0
phpAnonyme
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
55
22 mars 2011 à 20:28
ta fait la correction de mon dernier post?????



______________________________________________________________________
0
geof2810
Messages postés
53
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
22 août 2012

22 mars 2011 à 20:36
oui . mais marche toujours pas ...

je commence a me demander si c'est pas l'hebergeur...
0
geof2810
Messages postés
53
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
22 août 2012

22 mars 2011 à 20:37
vous auriez pas une idee d'hebergeur qui donne de 200 a 800mo et qui prend en charge le php 5 et mysql et email??

avec un petit nom de domaine ?? car je suis avec hebergratuit.com et c'est vraiment chiant comme adresse....

http://fpslegend.hebergratuit.com
0