Connexion

Abdl85 Messages postés 19 Statut Membre -  
jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   -
Salut à tous. J'ai un petit problème avec ma page connexion.php. J'arrive pas à me rediriger vers ma page membre.php après la connexion. Je ne sais pas si j'ai fait une erreur au niveau du code dont voici l'exemple:

<?php
session_start();

$con = mysqli_connect('localhost', 'root', ' ');

mysqli_select_db($con, 'base de donnée');

$name = $_POST['user'];
$pass = $_POST['password'];
$email = $_POST['email'];

$s = "select * FROM accounts where name = '$name' &&password = '$pass' &&email = '$email'";

$result = mysqli_query($con, $s);

$num = mysqli_num_rows($result);

if($num == 1){
$_SESSION['username'] = $name;
header('location:membre.php');
}
?>

Merci d'avance pour l'aide.

3 réponses

  1. M3NSONG3 Messages postés 670 Statut Membre 162
     
    Salut ! Bah dis nous si tu as des erreurs ou autres...

    Et ta query SQL semble fausse && c'est en PHP, en SQL c'est AND.

    SELECT* FROM accounts WHERE name = '$name' AND password = '$pass' AND email = '$email'


    1
  2. ThomasEspritWeb Messages postés 8 Statut Membre
     
    En effet, l'erreur viens de la requête.
    Attention tout de même, ce genre de requête permettent de faire des injections SQL : https://openclassrooms.com/fr/courses/2091901-protegez-vous-efficacement-contre-les-failles-web/2680180-linjection-sql

    Il est préférable d'utiliser PDO ainsi que des requêtes préparées
    1
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Bonjour,

      Il peut aussi utiliser le BindParam en mysqli.

      Et surtout, revoir la façon dont il identifie les utilisateurs.
      Le mot de passe ne devant jamais être stocké en clair dans la BDD ( ne serait-ce que pour la RGPD), il faut qu'il soit haché.
      Et pour ça, en php, il faut utiliser la fonction password_hash
      (et pour ensuite vérifier le mot de passe ... password_verify )
      0