Précédent   Forum du club des développeurs et IT Pro > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 21/08/2012, 22h31   #1
OurysBack
Invité de passage
 
Homme Mouhamadou BA
Étudiant
Inscription : janvier 2012
Messages : 5
Détails du profil
Informations personnelles :
Nom : Homme Mouhamadou BA
Localisation : Sénégal

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2012
Messages : 5
Points : 4
Points : 4
Par défaut Probleme d'identification avec pseudo et mot de passe

Salut tout le monde...
J'ai un probleme que je n'arrive toujours pas à resoudre je ne sais pas si c'est au niveau de phpmyadmin où à mon code. Bon bref là je suis entrain de réaliser un site en local avec wampserver 2.0, j'aimerais que les utilisateurs qui le souhaite s'inscrive dans le site pour ce là il y a eu aucun probleme.Mais maintenant j'aimerais proteger quelques pages afin que seul les utilisateurs déja inscrit puissent y acceder en entrant leur pseudo et mot de passe pour s'identifier.Voici le probleme je n'arrive pas à faire cette vérification....... bon bref je bavarde trop voici le code que j'ai fait s'il vous plait aidez moi à resoudre dites moi ou ce trouve l'erreur?? ce probleme c'est vraiment urgent pour moi.....Merci...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//formulaire d'identification................................
 
  <form id="form1" name="form1" method="post" action="">
 
 
    Pseudo :<input type="text" name="pseudo" id="pseudo" tabindex="1" />
    <br />
    Pass :<input type="password" name="passwd" id="passwd" tabindex="2" />
 
<input type="reset" name="reset" id="reset"  tabindex="3" style="float:right" />
 
<input type="submit" name="valid" id="valid"  tabindex="4" style="float:right" />
 
  </form>
 
 // code php pour la connexion....................................
 
  <?php 
 //connexion à la base de données
 try{
 $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
 $bdd = new PDO('mysql:host=localhost;dbname=membre','root','',$pdo_options);
 
 //choix des champs
 $re_pseudo = $bdd-> query('SELECT pseudo FROM inscrit');
 $re_passwd = $bdd->query('SELECT passwd FROM inscrit');
 
 
 //verification 
 while($data['pseudo'] = $re_pseudo->fetch() && $data2['passwd'] = $re_passwd->fetch())
 {
 
 if($data['pseudo'] == isset($_POST['pseudo']) && $data2['passwd'] == isset($_POST['passwd']))  //Verifie si les données saisies correspondent
																								//à celles de la base de données
 {
 
	header('Location:pacces.php');
 }
 else 
 echo 'Votre pseudo ou mot de passe est incorrect';
 }
 $re_pseudo->closeCursor(); 
$re_passwd->closeCursor(); 
}
catch (Exception $e) 
{
        die('Erreur : ' . $e->getMessage());
}
//} 
 
 ?>
OurysBack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2012, 00h14   #2
Tsilefy
Membre expérimenté
 
Inscription : mai 2008
Messages : 453
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 453
Points : 519
Points : 519
Si l'on exclut les problèmes de sécurité et de non optimisation du code (qui seront extrêmement importants dès que tu mettras ton script en ligne et non plus en local), ton problème est sans doute ici:
Code :
$re_pseudo = $bdd-> query('SELECT pseudo FROM inscrit');
Il ne faut pas d'espace après ->
__________________
PHP, the right way
Tsilefy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2012, 02h53   #3
ascito
Membre chevronné
 
Inscription : juin 2007
Messages : 567
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 567
Points : 703
Points : 703
Pour moi, il y a deux "écoles" :

1 ère :
nous récupérons toutes les données possible, puis nous faisons une comparaison
2eme :
nous ne récupérons que les données contenant certaines informations, et validons la véracité de ces infos

Pour ma part, je préfère la deuxième, et je ne suis pas le seul...
__________________
Conception / Dev
ascito est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/08/2012, 00h19   #4
OurysBack
Invité de passage
 
Homme Mouhamadou BA
Étudiant
Inscription : janvier 2012
Messages : 5
Détails du profil
Informations personnelles :
Nom : Homme Mouhamadou BA
Localisation : Sénégal

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2012
Messages : 5
Points : 4
Points : 4
C vraiment de votre part j'ai fait quelques modifications et ça a marché je vous remercie vraiment pour votre conseil voici le code final...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php 
 //connexion à la base de données
 try{
 $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
 $bdd = new PDO('mysql:host=localhost;dbname=membre','root','',$pdo_options);
 
 
  if(!empty($_POST['pseudo']) && !empty($_POST['passwd']))
  {
      $pseudo = $_POST['pseudo'];
      $passwd = $_POST['passwd'];
 
      $req = $bdd->prepare('SELECT passwd, pseudo FROM inscrit WHERE pseudo = :pseudo AND passwd = :passwd');
      $req->execute(array(':pseudo' => $pseudo, 'passwd' => $passwd ));
      $res = $req->fetch();
 
      if($res)
      {
        if($passwd === $res['passwd'] && $pseudo === $res['pseudo'])
        {
            header('Location:pacces.php');
        }
        else
        {
            echo 'Votre pseudo ou mot de passe est incorrect';
			header('location:aboutus.php');
        }
      }
   }
   else
   {
       //renvoi du formulaire
	   echo 'Votre pseudo ou mot de passe est incorrect';
 
   }
}
catch (Exception $e) 
{
        die('Erreur : ' . $e->getMessage());
}
//} 
 
 ?>
OurysBack est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h53.


 
 
 
 
Partenaires

Hébergement Web