Pb de lecture dans ma bdd

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Pb de lecture dans ma bdd

Re: Pb de lecture dans ma bdd

par Phil21 » 26 août 2010, 17:16

Merci beaucoup xTG pour ta réponse qui ma permis de comprendre mon problème et bien sur d’avancé dans mon apprentissage…

Bonne fin de journée ! :wink:

Re: Pb de lecture dans ma bdd

par xTG » 26 août 2010, 10:50

J'ai rien dit en fait... J'avais mal parcouru le code.
Bon voilà une solution, tu créés un array avec les mots de passe récupérés et quand tu les as tous tu vérifies que le mot de passe est dans l'array.
$reponse = $bdd->query('SELECT mot_de_passe FROM password');
while ($donnees = $reponse->fetch())
{
 $passe[] = $donnees['mot_de_passe'];
}
$reponse->closeCursor();
  if(isset($_POST['mdp']))
  {
   if( in_array($_POST['mdp'],$passe) )
   {
    header ("location: ma_page_login.php");
   }
   else
   {
   header ("location: ma_page_erreur.php");
   }
 }

Re: Pb de lecture dans ma bdd

par Phil21 » 25 août 2010, 22:40

Merci xTG pour cette réponse, mais je suis novice dans ce domaine et je ne saisi pas tout quand tu me dis de mettre mon test à l’intérieur de la boucle while.
Pourrais-tu me donner des détails ou me corriger le script ? (que je comprenne mieux mon erreur)

Merci pour ton aide !

Re: Pb de lecture dans ma bdd

par xTG » 25 août 2010, 19:04

C'est tout à fait normal car tu écrases le contenu de $passe à chaque itération.
Mets ton test à l'intérieur de la boucle while.

Pb de lecture dans ma bdd

par Phil21 » 25 août 2010, 18:06

Bonjour à tous,
Ce script me permet la redirection sur une page après validation d’un mot de passe en base de données.

Lorsque je demande une « lecture dans ma bdd » comprenant plusieurs enregistrements de mot de passe, seul le dernier enregistrement et reconnu et fonctionne correctement !

Si quelqu’un à une idée pour résoudre ce problème…
Merci beaucoup pour votre aide.

Ma table :
-- phpMyAdmin SQL Dump
-- version 2.6.4-pl3
-- http://www.phpmyadmin.net
-- 
-- Serveur: localhost
-- Généré le : Mercredi 25 Août 2010 à 17:52
-- Version du serveur: 5.0.81
-- Version de PHP: 5.2.6-1+lenny9
-- 
--
-- Base de données: `password `
-- --------------------------------------------------------
-- Structure de la table `password `
--
CREATE TABLE `password ` (
  `id` int(11) NOT NULL auto_increment,
  `mot_de_passe` varchar(10) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Contenu de la table `password `
--
INSERT INTO `password ` VALUES (2, '9543');
INSERT INTO `password ` VALUES (3, '4857');
INSERT INTO `password ` VALUES (3, '2681');
Mon script :
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=password',  'root',  '1234');
}
catch (Exception $e)
{
 die('Erreur : ' . $e->getMessage());
}
$reponse = $bdd->query('SELECT * FROM password');
while ($donnees = $reponse->fetch())
{
 $passe = $donnees['mot_de_passe']; 
}
$reponse->closeCursor(); 
if(isset($_POST['mdp']))
{
 if(($_POST['mdp'])===$passe)
 {
  header ("location: ma_page_login.php");
  }
   else
   {
   header ("location: ma_page_erreur.php");
   }
   }
?>

</table>
</font> 
</div>
<table width="200" border="0" align="center">
<tr>
 <td align="center" valign="middle"><img src="../../images/header.png" width="856" height="153" /></td>
 </tr>
<tr>
 <td align="center" valign="middle" class="mess3"><p class="mess7">&nbsp;</p>
 <p class="mess7">Accueil</p>
<p><img src="images/ordi_live.png" width="126" height="110" /></p>
 <p class="mess9">&nbsp;</p>
 <p class="mess9">Veuillez entrer votre mot de passe et valider</p></td>
<tr>
 <td align="center" valign="middle"><form action="ma_page.php" method="post">
 <p>
 <input name="mdp" type="password" style="text-align:center; " class="texte_noir" size="30" maxlength="30" />
 <br />
 <input type="submit" class="button_dark" value="Valider" />
 </p>
</form>
</td>
<tr>
 <td colspan="7" align="center">&nbsp;</td>
</tr>
<tr>
 <td colspan="7" align="center">&nbsp;</td>
</tr>
<tr>
 <td colspan="7" align="center"><a href="retour.php" class="mess4">Quitter</a></td>
</tr>
</table>
</body>