Connexion

Abdl85 Messages postés 19 Statut Membre -  
jordane45 Messages postés 40050 Statut Modérateur -
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 24281 Statut Contributeur Ambassadeur 1 584
 
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 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
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
jordane45 Messages postés 40050 Statut Modérateur 4 758
 
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