IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

Ne rentre pas dans la fonction ajax


Sujet :

AJAX

  1. #1
    Candidat au Club
    Homme Profil pro
    jeune developpeur
    Inscrit en
    Juillet 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : jeune developpeur

    Informations forums :
    Inscription : Juillet 2016
    Messages : 16
    Points : 4
    Points
    4
    Par défaut Ne rentre pas dans la fonction ajax
    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

  2. #2
    Invité
    Invité(e)
    Par défaut
    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).

  3. #3
    Candidat au Club
    Homme Profil pro
    jeune developpeur
    Inscrit en
    Juillet 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : jeune developpeur

    Informations forums :
    Inscription : Juillet 2016
    Messages : 16
    Points : 4
    Points
    4
    Par défaut ne rentre pas dans la fonction ajax
    Quand j'appelle ma fonction avec à l’intérieure l' ajax celle-ci ne marche pas.

    code javascript:
    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 dans l'ajax:
    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';
    }

  4. #4
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    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

  5. #5
    Candidat au Club
    Homme Profil pro
    jeune developpeur
    Inscrit en
    Juillet 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : jeune developpeur

    Informations forums :
    Inscription : Juillet 2016
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    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.

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Citation Envoyé par sekaijin Voir le message
    sinon à la place de .done ce ne serait pas .success ?
    A+JYT
    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

  7. #7
    Candidat au Club
    Homme Profil pro
    jeune developpeur
    Inscrit en
    Juillet 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : jeune developpeur

    Informations forums :
    Inscription : Juillet 2016
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    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 ^^ .

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    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

Discussions similaires

  1. Rentre pas dans le fonction $.ajax
    Par pablofr dans le forum jQuery
    Réponses: 2
    Dernier message: 20/04/2012, 13h58
  2. Fonction qui ne rentre pas dans un IF
    Par stanouu dans le forum PL/SQL
    Réponses: 4
    Dernier message: 11/10/2011, 15h12
  3. ne rentre pas dans la fonction
    Par gilles974 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 08/06/2009, 16h39
  4. IE ne rentre pas dans ma fonction Javascript
    Par akrogames dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 14/10/2008, 22h34
  5. Ma page ne rentre pas dans la fonction Page_Load
    Par Titi41 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 30/05/2008, 15h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo