Connexion

Fermé
Abdl85 Messages postés 18 Date d'inscription jeudi 28 novembre 2019 Statut Membre Dernière intervention 31 mai 2022 - 13 juil. 2020 à 13:39
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 15 juil. 2020 à 12:05
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

yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
13 juil. 2020 à 14:03
bonjour, comme nous t'avons déjà demandé, peux-tu utiliser les balises de code quand tu postes ton code?
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
1
M3NSONG3 Messages postés 615 Date d'inscription mardi 16 avril 2013 Statut Membre Dernière intervention 4 novembre 2021 162
Modifié le 13 juil. 2020 à 14:04
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
ThomasEspritWeb Messages postés 8 Date d'inscription mardi 7 juillet 2020 Statut Membre Dernière intervention 22 juillet 2020
15 juil. 2020 à 12:02
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
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
15 juil. 2020 à 12:05
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