Probleme Connection en PHP

Signaler
Messages postés
53
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
22 août 2012
-
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
-
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

Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
16
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
Messages postés
53
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
22 août 2012

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...
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
16
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++
Messages postés
53
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
22 août 2012

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

es tu sur de tes 3 =??

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


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


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

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


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

;) d'accord . Mais sinon aucune idée pour le code ??? Vais essayer tes caracteres on verra bien
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
42
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 ??

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

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.
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
42
<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>



______________________________________________________________________
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
42
merde ::
if(!mysql_num_rows($sql)) {



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

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

malheuresement ton code m'affiche l'erreur 1...
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
42
ta fait la correction de mon dernier post?????



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

oui . mais marche toujours pas ...

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

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