CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Problème PHP et MySQL

ractor2a
ractor2a
Niveau 5
24 mai 2018 à 14:35:46

Bonjour,

Je suis débutant en PHP ainsi que dans les bases de données MySQL et j'ai un petit souci avec un script de connexion (login) en PHP. En effet comme le code vous le montre ci-dessous, je souhaite faire en sorte que des utilisateurs puissent accéder à une page en passant avant tout par une page d'identification. Les identifiants sont enregistrés dans la BDD, seul problème, seulement l'identifiant de la première ligne dans la base de donnée fonctionne, les autres situés en ligne 2 et 3 ne fonctionne pas. Je me creuse la tête depuis deux jours déjà et après quelques recherches sur internet et plusieurs essais, je n'arrive à rien, toujours le même problème. Le pire dans tout ça c'est que à tous les coups, c'est une erreur bénigne. Bref ... j'espère que vous aurez saisit mon souci et merci d'avance pour votre aide :) !

connexion.php :

<?php
   session_start();
   $_SESSION["login"]=$_REQUEST["login"];  // Récupération du login
   $_SESSION["pass"]=$_REQUEST["pass"];  // Récupération du mot de passe
   $user=$_SESSION["login"];
   $mdp=$_SESSION["pass"];
   $_SESSION["auth"]=FALSE;


   // Script de vérification du mot de passe d'administration, en utilisant la table Connexion

   if(empty($mdp) OR empty($user))
     header("Location:accueil_panel.php");
   else
     {
       /* Accès à la base */
       include ("mysql.php");

       $requete = "SELECT * FROM `users`";
       $resultat = mysqli_query($id_bd, $requete)
		      or die("Execution de la requete impossible : $requete");

       $ligne = mysqli_fetch_row($resultat);
       if ($mdp==$ligne[3] AND $user==$ligne[2])
        {
	    $_SESSION["auth"]=TRUE;		
            mysqli_close($id_bd);
            header("Location:test.html");
	}
       else
        {
	    $_SESSION = array(); // Réinitialisation du tableau de session
            session_destroy();   // Destruction de la session
            unset($_SESSION);    // Destruction du tableau de session
            mysqli_close($id_bd);
            header("Location:login_error.php");
        }
     } 

 ?>

accueil_panel.php :

<?php
  // Démarrage de la session
  session_start();
?>

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8" />
<title>Panel LSPD</title>
<meta name="Author" content="Ractor" />
<meta name="Keywords" content="panel, lspd, hidden, police" />
<meta name="Description" content="Panel de gestion LSPD" />
<link rel="shortcut icon" type="image/x-icon" href="./images/logo_lspd.png" />
<link rel="stylesheet" type="text/css" href="./styles/accueilRWD.css" />
</head>

<body>
<header>
<h1>Panel LSPD</h1><hr />
</header>

<br />
<section class="main">
<p>
<center><a href="./images/logo_lspd.png"><img class="logo_lspd" src="./images/logo_lspd.png" alt="logo_lspd" 
title="logo_lspd" height="355" width="355" /></a></center>
</p>
<br />
<section class="connexion">
<p>

<?php

	$bdd = new PDO('mysql:host=localhost;dbname=panel_lspd', 'root', '');
	  
	  // test d'affichage de base de donnee
	  
	  $reponse = $bdd->query('SELECT * FROM users');
	  while ($donnees = $reponse->fetch())
	  {
		  echo '<p>' . $donnees['id'] . ' - ' . $donnees['nom'] . ' - ' . $donnees['matricule'] . ' - ' . $donnees['pass'] . '</p>';
	  }
	  
?>

<h2>Connexion :<br />
<form action="connexion.php" method="post">
<div class="align1">Login : <input type="text" name="login"><br /></div>
<div class="align2">Mot de passe : <input type="password" name="pass"><br /></div>
<input type="submit" name="connexion" value="Connexion">
</form></h2>

</p>
</section>
<br />
</section>
 </body>
 </html>

mysql.php :


<?php
/* Script de connexion à la base de donnée */

  $id_bd = mysqli_connect('localhost','root','','panel_lspd')
    or die("Connexion au serveur et/ou à la base de données impossible");

  /* Gestion de l'encodage des caractères */
  mysqli_query($id_bd, "SET NAMES 'utf8'");

?>
Message édité le 24 mai 2018 à 14:36:52 par ractor2a
Popovitch
Popovitch
Niveau 26
24 mai 2018 à 14:47:24

Dans connexion.php

$requete = "SELECT * FROM `users`";
$resultat = mysqli_query($id_bd, $requete)
    or die("Execution de la requete impossible : $requete");

Tu demandes toutes les données de ta table users...

$ligne = mysqli_fetch_row($resultat);
if ($mdp==$ligne[3] AND $user==$ligne[2])

... puis tu compares le login et le mot de passe avec la première ligne qui t'a été retourné

Il faudrait changer ta requête pour ne demander que la ligne qui correspond au login puis vérifier si le mot de passe correspond :-)))

Je vais rien dire sur les mysqli et les divers problèmes de sécurité vu que tu débute :hap:

ractor2a
ractor2a
Niveau 5
24 mai 2018 à 14:57:39

D'accord, merci pour ta réponse rapide, je vais essayer de faire ça :oui: !

Message édité le 24 mai 2018 à 14:58:03 par ractor2a
ractor2a
ractor2a
Niveau 5
24 mai 2018 à 20:18:39

Bon, je n'arrive pas vraiment à faire ce que tu as proposé, néanmoins j'ai fais en sorte de ne demander que le mot de passe ou que le login mais rien n'y change. Une idée ?

ractor2a
ractor2a
Niveau 5
25 mai 2018 à 15:30:15

Petit UP :-) !

Message édité le 25 mai 2018 à 15:30:29 par ractor2a
eytanh
eytanh
Niveau 5
27 mai 2018 à 02:46:50

Comme dit vdd, Concentre toi sur ta requete:

SELECT * FROM `users = je demande toutes les infos de tous les utilsateurs de ma table users.

Ce n'est pas ce que tu veux, ce que tu veux toi c'est vérifier dans ta table users si il existe un utilisateur qui a le login $user et mdp $mdp.

Je te laisse traduire en SQL.

Ensuite:

 
      $ligne = mysqli_fetch_row($resultat);
       if ($mdp==$ligne[3] AND $user==$ligne[2])
        {
        }

Il faut que tu vérifie la valeur que ton fetch te retourne afin de savoir si l'utilisateur existe bien dans ta table users ou non.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment