Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
677 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Récupération d'une ligne dans la bdd

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupération d'une ligne dans la bdd

n°2310123
iamlouky
Posté le 19-01-2018 à 12:07:47  profilanswer
 

Bonjour,
 
Sur la page de connexion, j'aimerais vérifier si les variables username et password existent dans ma base de donnée et si c'est le cas de rediriger vers la page :

Code :
  1. header("location: accueil.php" );


mais cela ne retourne rien, ça revient sur la même page de connexion. Merci de m'aider.
 

Code :
  1. <?php
  2. /*
  3. Page: login.php
  4. */
  5. // à mettre tout en haut du fichier .php, cette fonction propre à PHP servira à maintenir la $_SESSION
  6. session_start();
  7. include("config.php" );
  8. try
  9. {
  10. // On se connecte à MySQL
  11.     $pdo = new PDO('mysql:host=localhost;dbname=projet;charset=UTF8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
  12. }
  13. catch(Exception $e)
  14. {
  15. // En cas d'erreur, on affiche un message et on arrête tout
  16.     die('Erreur : '.$e->getMessage());
  17. }
  18. if (isset($_SESSION['admin']) && $_SESSION['admin']=$username) {
  19.    
  20.     $adminpageError = "<p><a href='logout.php'>Log Out </a></p>";
  21. }
  22. if(isset($_POST['valider'])) {
  23.     $username = htmlentities($_POST['username']);
  24.     $password = $_POST['password'];
  25.     $password2 = $_POST['password2'];
  26.     $champsremplis  = !empty($username) && !empty($password) && !empty($password2);
  27.     if(!$champsremplis){$msgerr[] = "Tous les champs sont obligatoires";}
  28.     $correspondancepasswords = ($password == $password2) ;
  29.     if(!$correspondancepasswords){$msgerr[] = "Les mots de passes ne corespondent pas";}
  30.     if(empty($msgerr)){
  31.     // ici, tout est OK
  32.             // je peux rechercher dans la base de données
  33.         $password = password_hash($password,PASSWORD_DEFAULT);
  34.         $query = $pdo->prepare('SELECT * FROM client WHERE username = :username and  password = :password');
  35.         $result = $query->execute(array('username' => $username, 'password' => $password));
  36.         if($query->rowCount()>0){
  37.             $user = $result->fetch(PDO::FETCH_ASSOC);
  38.             $_SESSION['username'] =$user['username'];
  39.             header("location: accueil.php" );
  40.         } else {
  41.             $msg[] = "Utilisateur/Mot de passe inexistant";
  42.         }
  43.     } else {
  44.      // traitement des erreurs
  45.         foreach ($msgerr as $value){
  46.             echo $value."</br>";
  47.         }
  48.     }
  49. // retraitement des erreurs
  50. }

mood
Publicité
Posté le 19-01-2018 à 12:07:47  profilanswer
 

n°2310281
macgawel
Posté le 23-01-2018 à 15:00:17  profilanswer
 

Bonjour.

 

1. Rien à voir, mais évite les requêtes SELECT *, il vaut mieux préciser les colonnes à récupérer SELECT ID, PASS
Pareil, il vaut mieux éviter de mélanger code et présentation (php et html)

 

2. Pour ton problème :
- Quand tu parles de "page de connexion", c'est laquelle ? Le code correspond à quelle page ?
Tu peux toujours afficher tes variables (et des indications sur les endroits où tu passes) le temps de débugger...

 

[Edit] Que fais-tu de ton tableau $msg ?


Message édité par macgawel le 23-01-2018 à 15:01:38

---------------
Choisir le vote de protestation aux élections, c’est comme débarquer dans un hôtel et décider de faire ses besoins dans le lit en guise d’indignation, puis se rendre compte qu’il va falloir dormir là quand même (Alan Moore)
n°2310505
pjulienne
Posté le 28-01-2018 à 10:50:47  profilanswer
 

Bonjour iamlouky,  
Si on suppose que vous pouvez lire les infos de votre table client, voici svp le code
 

Code :
  1. <?php
  2.     // on se connecte à notre base
  3.     $base = mysql_connect ('serveur', 'login', 'pass');
  4.     mysql_select_db ('ma_base', $base) ;
  5.    
  6.     $sql = ''SELECT * FROM client WHERE username = :username and  password = :password'"';
  7.     $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  8.     $data = mysql_fetch_array($req);
  9.     mysql_free_result ($req);
  10.     mysql_close ();
  11.     ?>


---------------
Comment regarder la TV sans le câble ?  https://how-to.watch/fr/tv-sans-cable/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Récupération d'une ligne dans la bdd

 

Sujets relatifs
Je voudrais sélectionner une ligne du tableauRécupération d'une ligne de terminal dans une variable
[Résolu] Récupération de mails en Imap et sauts de ligne[RESOLU] [ACCESS] Parcour de tables et récupération de ligne
[RESOLU] Récupération de ligne en VBrécuperation de l'Index automatique apres création d'une ligne
[DOS] Récupération dernière ligne d'un fichierRécupération de fichiers FTP par ligne de commande
[VBa - Exel] Récupération du n° de la ligne d'une donnée saisiejavascript et php - variables, récupération de retour à la ligne
Plus de sujets relatifs à : Récupération d'une ligne dans la bdd


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR