IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

connexion espace membre PDO [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut connexion espace membre PDO
    Bonjour voilà je reviens vers vous car j'ai une erreur dans mon formulaire de connexion

    voici le code

    voici l'erreur (Une erreur de connexion)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    <?PHP 
    if(!isset($_SESSION))
    {
    session_start();
    } 
    require_once("require/config1.php");
     
    //On verifie que le formulaire a ete envoye
    if(isset($_POST['email1'], $_POST['pass1']) and $_POST['email1']!='')
    {
     
     
            //On enleve lechappement si get_magic_quotes_gpc est active
                    if(get_magic_quotes_gpc())
                    {               
                    $_POST['email1'] = stripslashes($_POST['email1']);
                    $_POST['pass1'] = stripslashes($_POST['pass1']);
                    }
    	            $email =  $_POST['email1'];
    			    $pass  =  hash("sha512", $_POST['pass1']);
     
          //On verifie si l'email est valide
          if(filter_var($email, FILTER_VALIDATE_EMAIL))
          {
    	 // Controle de l'adresse mail si elle est dans la base de donnée
          $reponse_mail = $connection->prepare('SELECT email FROM comptes WHERE pass=:pass AND email= :email');
          $reponse_mail->execute(array('pass'=> $pass,'email'=> $email));
          $nb_resultats_recherche_mail=$reponse_mail->fetch();    
          if(!$nb_resultats_recherche_mail) /*si il n'y a pas de resultat*/
          {
     
    	            // Création de la session navigation
    		        $taille = 20;
    			    $lettres = "abcdefghijklmnopqrstuvwxyz0123456789AZERTYUIOPMLKJHGFDSQWXCVBN";
    			    $date= date("Y-m-d");
    			    $heure= date("H:i:s");
    			    srand(time());
    			    for ($i=0;$i<$taille;$i++)
    				{
    				@$idm2.=substr($lettres,(rand()%(strlen($lettres))),1);
    				}
    				$idm = hash("sha512", $idm2);
     
     
     
                    if(@$form==0){
     
                     $compte=array(	':idm'=> $idm,
    				                ':quipass'=> date("Y-m-d"),
    				                ':heurepass'=> date("H:i:s"),
    				                ':ip'=> $_SERVER['REMOTE_ADDR']);
     
                     $values= join(', ',array_keys($compte));
                     $req=$connection->prepare( 'UPDATE  comptes ('.str_replace(':','',$values).') SET('.$values.')WHERE pass=:pass AND email= :email');
                     $req->execute($compte);		
     
            //Si ca a fonctionne, on naffiche pas le formulaire
    		$form = FALSE;
     
    		$_SESSION['email'] = $email1;
    		$_SESSION['password'] = $pass1;
    		header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/depose-annonce.php");
     
                }
                else
    		    { 
                //Sinon on dit quil y a eu une erreur controle password email
                $form = TRUE;
                $message = 'Une erreur de connexion 2.';		
                }
                }	        
                else
    		    { 			
                //Sinon on dit quil y a eu une erreur controle password email
                $form = TRUE;
                $message = 'Une erreur de connexion.';		
                }
                }	        
                else
    		    { 			                             									 
                //Sinon on dit quil y a eu une erreur controle password email
                $form = TRUE;
                $message = 'L\'email est incorrect.';		
                }
                }	                  
                else
                {				
                $form = TRUE;
                }
                if($form)
                {
                //On affiche un message sil y a lieu
                if(isset($message))
                {
                echo '<div class="message" style="color:red;text-align:center;"><b>'.$message.'</b></div>';
                }     
       //On affiche le formulaire
       echo' <div align="center">
       <form method="post" action="'.$_SERVER['PHP_SELF'].'">
       <table style="width:250px;border:0;">
       <tr>
       <td style="height:120px;">
       <table style="width:100%; border:0px;">
       <tr>
       <td width="32%"><font><b>Mail</b></font></td>
       <td width="68%">';
       ?>
    <input class="contact_input" type="text" name="email1" value="<?php if(isset($_POST['email1'])){echo $_POST['email1'];} ?>" style="width:160px;"">
       <?PHP
       echo'</td>
       </tr>
       <tr>
       <td width="32%"><font><b>password</b></font></td>
       <td width="68%">';
       ?>
    <input class="contact_input" type="password" name="pass1" value="<?php if(isset($_POST['pass1'])){echo $_POST['pass1'];} ?>" style="width:160px;">
       <?PHP
       echo'</td>
       </tr>
       </table>
       <table width="100%" border="0">
       <tr>
       <td style="height:26px; text-align:center">
       <span class="button"><a href="perdu.php" title="" alt="">PASSE-PERDU</a></span></td>
       <td style="height:26px; text-align:center">
       <input type="submit" class="bb" name="valider" value="Connexion">
       </td>
       </tr>
       </table>
       </td>
       </tr>
       </table>
       </form>
       </div>';   
    }
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Commence par indenter proprement ton code, enlève les @ et met le message d'erreur correspondant à chaque cas "et pas erreur de connexion 2" par exemple.
    Après ça tu y verras plus clair.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par speedylol Voir le message
    voici l'erreur (Une erreur de connexion)
    dans ce cas, tu dois savoir où (if/else) passe le code (et où il ne passe pas).
    Donc où chercher pour déboguer.

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Bonjour voilà j'ai trouvé la solution, si vous voyez des modifications ou une amélioration fais-le-moi savoir cela est toujours sympa d'apprendre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    <?PHP 
    if(!isset($_SESSION))
    {
    session_start();
    } 
    require_once("require/config1.php");
     
    //On verifie que le formulaire a ete envoye
     
    if(isset($_POST['email1'], $_POST['pass1']) and $_POST['email1']!='')
    {
     
     
                   //On verifie si l'email est valide
                  if(filter_var($_POST['email1'], FILTER_VALIDATE_EMAIL))
    			   {					       
    		      $ip = $_SERVER['REMOTE_ADDR'];
                  if(filter_var($ip, FILTER_VALIDATE_IP))
    			    {           
    	            $email =  $_POST['email1'];
    			    $pass  =  hash("sha512", $_POST['pass1']);
     
    	 // Controle pass et email
          $reponse_controle = $connection->prepare('SELECT * FROM comptes WHERE email= :email AND pass=:pass');
          $reponse_controle->execute(array('pass'=> $pass,'email'=> $email));
          $nb_resultats_recherche_controle=$reponse_controle->fetch();    
          if(!$nb_resultats_recherche_controle)
    	  { 
    	  header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/inscription.php");
    	  }else{
     
    	            // Création de la session navigation
                    $chaine = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@";
                    $nb_caract = 20;
                    for($u = 1; $u <= $nb_caract; $u++) {  
                    $nb = strlen($chaine);
                    $nb = mt_rand(0,($nb-1));
                    $idm = hash("sha512",$chaine[$nb]);
                    }	
     
                    $compte = ('UPDATE comptes SET idm=:idm, quipass=:quipass, heurepass=:heurepass, ip=:ip WHERE pass=:pass AND email=:email');	
    			    $req = $connection->prepare($compte);
     
                    $req->execute(array(':idm'=> $idm,
    				                    ':quipass'=> date("Y-m-d"),
    				                    ':heurepass'=> date("H:i:s"),
    				                    ':ip'=> $ip,
    							        ':pass'=> $pass,
    							        ':email'=> $email));	  	
     
     
    		         $_SESSION['email'] = $email1;
    		         $_SESSION['password'] = $pass1;
    		         header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/depose-annonce.php");
    	             }
     
     
     
                }
                else
    		    { 							
                //Sinon on dit quil y a eu une erreur controle password email
                $form = TRUE;
                $message = 'ip.';		
                }
                }	        
                else
    		    { 			                             									 
                //Sinon on dit quil y a eu une erreur controle password email
                $form = TRUE;
                $message = 'courreil incorrect';		
                }
                }	                  
                else
                {				
                $form = TRUE;
                }
                if($form)
                {
                //On affiche un message sil y a lieu
                if(isset($message))
                {
                echo '<div class="message" style="color:red;text-align:center;"><b>'.$message.'</b></div>';
                }    
       //On affiche le formulaire
       echo' <div align="center">
       <form method="post" action="'.$_SERVER['PHP_SELF'].'">
       <table style="width:250px;border:0;">
       <tr>
       <td style="height:120px;">
       <table style="width:100%; border:0px;">
       <tr>
       <td width="32%"><font><b>Mail</b></font></td>
       <td width="68%">';
       ?>
    <input class="contact_input" type="text" name="email1" value="<?php if(isset($_POST['email1'])){echo $_POST['email1'];} ?>" style="width:160px;"">
       <?PHP
       echo'</td>
       </tr>
       <tr>
       <td width="32%"><font><b>password</b></font></td>
       <td width="68%">';
       ?>
    <input class="contact_input" type="password" name="pass1" value="<?php if(isset($_POST['pass1'])){echo $_POST['pass1'];} ?>" style="width:160px;">
       <?PHP
       echo'</td>
       </tr>
       </table>
       <table width="100%" border="0">
       <tr>
       <td style="height:26px; text-align:center">
       <span class="button"><a href="perdu.php" title="" alt="">PASSE-PERDU</a></span></td>
       <td style="height:26px; text-align:center">
       <input type="submit" class="bb" name="valider" value="Connexion">
       </td>
       </tr>
       </table>
       </td>
       </tr>
       </table>
       </form>
       </div>';   
    			}
    ?>

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!empty($_POST['email1']) && !empty($_POST['pass1']))
    Sinon tu as toujours ce problème de présentation du code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Sinon tu as toujours ce problème de présentation du code.
    Quel serait le bonne méthode je sais je suis chiant lol

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Indenter ca va dire qu'on se décale vers la droite quand la structure s'ouvre et vers la gauche quand la structure se referme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                  if(filter_var($_POST['email1'], FILTER_VALIDATE_EMAIL))
    			   {					       
    		      $ip = $_SERVER['REMOTE_ADDR']
    if(filter_var($ip, FILTER_VALIDATE_IP))
    			    {           
    	            $email =  $_POST['email1'];
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(filter_var($_POST['email1'], FILTER_VALIDATE_EMAIL)) {
    	$ip = $_SERVER['REMOTE_ADDR']
     
    	if(filter_var($ip, FILTER_VALIDATE_IP)) {           
    		$email =  $_POST['email1'];
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    indenter = mettre des sauts de ligne + tabulations pour :
    • structurer le code
    • donc le rendre plus lisible
    • donc plus facile à déboguer.

    C'est mieux aussi quand on doit :
    • transmettre le code à un tiers
    • reprendre son code quelques mois/années plus tard

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    indenter
    C'est qu'est ce que j'ai écrit
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Un grand merci à vous tous, de votre aide cela fait plaisir et mes vœux pour Noël et nouvel an

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Connexion espace membre: utilisateur non reconnu directement
    Par Benamour Jr dans le forum Langage
    Réponses: 1
    Dernier message: 15/09/2010, 11h23
  2. [PHP] Probléme de Connexion Espace Membre
    Par Adaeria dans le forum Langage
    Réponses: 3
    Dernier message: 04/12/2009, 11h38
  3. [MySQL] Connexion espace membre
    Par marygil dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 20/10/2009, 09h25
  4. [MySQL] Problème Connexion Espace Membres
    Par Luisito31 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 21/02/2009, 14h21
  5. [MySQL] Script de connexion (espace membre)
    Par razorlok dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 03/06/2008, 11h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo