Bonjour ,
j'ai un problème concernant une requete d'ajax je n'arrive pas à passer dedans , et je n'ai aucune erreur . Quelqu'un pourrait -t-il m'aider ? merci .
login.php la requête ajax
user.js le javascript
commentaire.php la vue html
Bonjour ,
j'ai un problème concernant une requete d'ajax je n'arrive pas à passer dedans , et je n'ai aucune erreur . Quelqu'un pourrait -t-il m'aider ? merci .
login.php la requête ajax
user.js le javascript
commentaire.php la vue html
Bonjour et bienvenu sur DVP,
merci de copier-coller directement les scripts dans le contenu du message,
en utilisant les balises [CODE] (icone "#" du mini-menu).
Quand j'appelle ma fonction avec à l’intérieure l' ajax celle-ci ne marche pas.
code javascript:
code php dans l'ajax:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 'use strict'; $(function(){ $("#mdp").on("submit",function(evt){ evt.preventDefault(); console.log("fonction"); console.log($(this).serialize()); $.ajax({url:'ajax/login.php', dataType:'json', type:'post', data: $(this).serialize()}).done(function(resultat){ console.log('455'); if(resultat){ window.alert("Connexion réussi"); //cache la connexion mdp $("#mdp").hide(); $("#com").show(); console.log("if"); } else{ window.alert("Connexion échoué"); console.log("else"); } }) }); });
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <?php include('../acces/entity.php'); $entity = new entity; $cnx = $entity->Connexion(); $req = $cnx("SELECT password FROM connexion"); $compte = $req->fetch(); //var_dump($compte); if($_POST["password"] == $compte["password"]){ echo json_encode('true'); } else{ echo 'false'; }
je n'ai pas regardé en profondeur
mais déjà le php retourne une chaine true et non un boolean
mais surtout c'est une très mauvaise idée.
un utilisateur qui ne connait rien ouvre ton appli et mets un point d'arrêt à la ligne 15 de ton javascript
il exécute pour la connexion en mettant n'importe quoi.
le serveur réponds false
et le débuggeur arrête
l'utilisateur remplace résultat par true
et il obtient une connexion réussie.
il peut donc continuer
sinon à la place de .done ce ne serait pas .success ?
A+JYT
En fait je suis un jeune développeur j'ai fait une formation de 3 mois et on a vue une l'ajax 2 jours tout au plus sens se pencher dessus du coup je ne suis pas très a l'aise là dessus.
J'ai testé avec .success la console me crée un message d'erreur Uncaught TypeError: $.ajax(...).success is not a function .
Ce que je souhaitais faire c'était avec un mot de passe spécifique dans mon SQL . Un utilisateur lambda puisse posté un commentaire en entrant le mot de passe donné . Donc pour vérifié le mot de passe j'ai voulu faire an ajax car cela me permettait par le biais de javascript de masquer ou afficher le formulaire ou les commentaires.
Cette syntaxe avec done est celle qui est maintenant préconisée par jquery, success est dépréciée et ne fonctionne plus avec jquery 3.0.
Sinon tu fais bien de souligner que cet algo n'est pas bon !
@DrZen Aucune mesure de sécurité/authentification ne doit être dépendante du retour d'une requête ajax car on peut pirater le code. Pour une authentification correcte la procédure habituelle/classique est de déclarer une variable de session dans ton code php en cas d'authentification correcte. Ensuite tous les script protégés devront dépendre de l'existence de cette variable de session.
Sur le principe dans ton code php :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if($_POST["password"] == $compte["password"]){ session_start(): $_SESSION['authentification'] = 1; }
Ensuite tous les script protégés par l'authentification devront vérifier l'existence de cette variable de session
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 session_start(); if(!isset($_SESSION['authentification'])) exit('Vous devez être authentifié pour accéder à cette page');
Fais des tutos sur les espaces membres en php avant de continuer sinon tu vas dans le mur. Les termes "tuto inscription connexion espace membre php" dans un moteur de recherche donnent de bonnes réponses. Ensuite que la requête soit faite par une requête ajax ou non ne change rien tant que le résultat dépend du code php (initialisation d'une variable de session) mais pas du retour de la requête.
Par ailleurs on fait toujours une recherche sur le login (qui doit être unique) couplé au mot de passe et pas simplement sur le mot de passe sinon on a un problème d'algo : si lors de l'inscription tu refuses un mot de passe déjà existant cela confirme à l'utilisateur qu'il peut s'en servir pour s'authentifier sous une autre identité. Si tu autorises des mots de passes en double indépendamment du login et que tu autorises la connexion unqiuement sur le mot de passe alors on va plus savoir qui est qui. Bref l'authentification uniquement sur le mot de passe est impossible dans un usage courant et c'est pour cela que je te conseille d'approfondir tes connaissances sur le sujet avant de continuer![]()
Merci pour le conseil , je pense que je vais comme tu m'as dit , mais je veux fixer le mot de passe moi même (seul les personne ayant le mot de passe peuvent commenter du coup je partirait sur 2 tables séparer en sql ? une 'user' avec le pseudo et un inner join sur la table 'password' et je vérifie tout ça avec la session ?.
Juste une petite chose pourquoi je ne rentrer pas dans mon ajax j'aurais quand même du voir mon console.log ou une erreur.
En tous cas merci pour m'avoir répondu , et bonne journée ^^ .
Même si tu fixe toi-même le mot de passe il n'y a pas de raison de faire deux tables. Pourquoi deux tables ?
Par ailleurs même si le mot de passe est défini par toi-même au départ, tous les systèmes d'authentifications internet permettent au visiteur de choisir un mot de passe personnalisé par la suite.
Donc tu ferais mieux de partir sur une authentification standard (login unique + mot de passe). Cela ne t'empêche en rien d'utiliser ta solution (mot de passe fixe et non modifiable) mais si tu souhaites évoluer par la suite pour plus de confort utilisateur, ton code sera prêt et tu pourras le faire évoluer facilement, sinon ça va être galère de tout refaire pour faire évoluer le code![]()
Partager