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

JavaScript Discussion :

[AJAX] je ne reçoit pas les posts


Sujet :

JavaScript

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 360
    Points : 170
    Points
    170
    Par défaut [AJAX] je ne reçoit pas les posts
    Bonjour,

    Je débute avec les tutos de developpez.com (livre/auteur). J'ai cru comprendre parfaitement le mécanisme de communication pour qu'un fichier .php reçoit et traite des valeurs qui lui ont été transmis par POST. Mais dans le fichier en question, je ne reçois rien par POST.

    Concrètement j'ai un formulaire username/password. Dans l'évènement onSubmit() du formulaire je récupère les valeurs username/input que je passe à la fonction ajax que voici :

    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
    		function go()
    			{
    				elt_user 	= document.getElementById('username');
    				elt_pwd 	= document.getElementById('password');
     
    				user 	= elt_user.value;				
    				pwd 	= elt_pwd.value;
     
    				var xhr = getXhr();
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){						
    						// On se sert de innerHTML pour rajouter les options a la liste
    						alert('operation terminé');
    						return 1;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","http://localhost/joomla_01/administrator/bridge.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				// ici, l'id de l'auteur
    				xhr.send("user="+user+"&password="+pwd);
     
    				return 0;
    			}
    D'après ce que j'ai compris cette ligne envoie mes paramètres en POST :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.send("user="+user+"&password="+pwd);
    à ce fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("POST","http://localhost/joomla_01/administrator/bridge.php",true);
    Dans le fichier en question (bridge.php), je ne récupère aucune valeur post. Comme je l'ai dit, ce code est tiré d'un exemple concret et qui fonctionne. Ai-je raté qq chose de fondamentale ?

    Merci d'avance pour votre aide (précieuse).

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par whitespirit Voir le message
    Comme je l'ai dit, ce code est tiré d'un exemple concret et qui fonctionne.
    Mais quel est donc ce code ??? Si tu nous montres ton code PHP, on verra peut-être quel est le problème. Pour moi, ton code Ajax est correct.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Pour ma part, je doute que cette méthode fonctionne pour accéder directement à une page admin de Joomla !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 360
    Points : 170
    Points
    170
    Par défaut
    Je viens de me rendre compte que la réponse que j'ai posté n'a pas été pris en compte. Désolé d'en donner une seulement maintenant.

    En fait, entre temps j'ai compris que ce que je voulais faire est un peu bête :

    1. Je me connecte via un formulaire
    2. J'envoie via XMLHttpRequest en POST l'identifiant/pwd de connexion à un seconde page php en post (contenant mon bridge). Comme je veux juste tester si je reçois les informations, considérons que cette page ne porte qu'un echo
    3. je traite sur la page bridge.php la connexion. Si le user/pwd est accepté, alors la connexion est créé et je peux accéder via un lien au site joomla.

    Par rapport à un fonctionnement ajax "normal" est que je ne me sert pas du XMLHttpRequest pour retourner une valeur mais pour effectuer le processus d'authentification.

    Actuellement, j'ai un problème : je dois avoir une erreur dans la fonction javascript suivante car à la première ligne j'ai un alert("bonjour"); et au final rien n'est affiché (sauf quand je supprime les lignes à partir de "var xhr = getXhr()

    Dans le <head>
    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
    		function go()
    			{alert("bonjour");
    				elt_user 	= document.getElementById('username');
    				elt_pwd 	= document.getElementById('password');
     
    				user 	= elt_user.value;				
    				pwd 	= elt_pwd.value;
     
    				var xhr = getXhr();
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){						
    						// On se sert de innerHTML pour rajouter les options a la liste
    						alert(xhr.responseText;);
    						return 1;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","http://localhost/joomla_01/administrator/bridge.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				// ici, l'id de l'auteur
    				xhr.send("user="+user+"&password="+pwd);
     
    				return 0;
    Le formulaire contient juste un onSubmit="javascript:go();"

    et le fichier bridge épuré pour les tests continent juste un Le hic est que je ne reçois rien. Voilà, si je peux avoir votre avis sur mon processus d'identification sur deux sites en même temps via une même interface?

    Merci

Discussions similaires

  1. BDD ne reçoit pas les logs
    Par ikuzar dans le forum Administration système
    Réponses: 1
    Dernier message: 07/11/2010, 20h47
  2. Réponses: 14
    Dernier message: 30/04/2010, 07h04
  3. php ne reçoit pas les données du formulaire
    Par sissendz dans le forum Langage
    Réponses: 5
    Dernier message: 10/12/2008, 11h01
  4. Exchange ne reçoit pas les mails
    Par Kemzy dans le forum Exchange Server
    Réponses: 8
    Dernier message: 16/07/2008, 12h08
  5. Client ne reçoit pas les réponses du serveur
    Par Joccy dans le forum Programmation et administration système
    Réponses: 1
    Dernier message: 04/10/2007, 15h16

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