Redirection PHP en AJAX

Eléphant du PHP | 130 Messages

19 août 2006, 14:25

Bonjour,

Voilà, j'ai un souci avec l'AJAX. J'utilise ce système pour identifier mes membres mais là où le problème se pose c'est au moment de la redirection vers leur compte, ça ne fonctionne pas.

Si je fais une "alert", les informations sont bien renvoyées.

Je met le code, je pense que se sera plus parlant :)

Code : Tout sélectionner

function verifConnect() { if(window.XMLHttpRequest) { this.objHTTP = new XMLHttpRequest(); } else if(window.ActiveXObject) { this.objHTTP = new ActiveXObject("Microsoft.XMLHTTP"); } else { alert("Votre navigateur doit accepter le JavaScript !"); } objHTTP.onreadystatechange = function() { if (objHTTP.readyState == 4 && objHTTP.status == 200) { document.getElementById('afficheError').innerHTML = objHTTP.responseText ; alert(objHTTP.responseText); } } objHTTP.open('GET', 'login.php?username='+document.connect.login.value+'&password='+document.connect.passwd.value, true); objHTTP.send(null); }

La redirection dans le script PHP
echo '<META HTTP-EQUIV="refresh" CONTENT="0; URL = connectID.php?var0='.base64_encode($_POST['login']).'&var1='.base64_encode($_POST['passwd']).'">';

Eléphant du PHP | 353 Messages

21 août 2006, 09:57

C'est un peu normale , tu envoyes en GET et tu récupère en POST ;)

de plus tu ne donnes pas les memes noms aux variables

objHTTP.open('GET', 'login.php?username='+document.connect.login.value+'&password='+document.connect.passwd.value, true);
objHTTP.send(null);

<?php echo '<META HTTP-EQUIV="refresh" CONTENT="0; URL = connectID.php?var0='.base64_encode($_POST['login']).'&var1='.base64_encode($_POST['passwd']).'">';

Ceci , si la ligne <?php que tu donnes est bien le contenu de login.php

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

21 août 2006, 10:42

Par ailleurs je ne pense pas que cela puisse fonctionner ainsi. Je ne suis pas sur que si tu ajoutes un meta dans une page qui a déjà été chargé, celui-ci soit interprété par le navigateur.

Cela dit, dans la mesure ou au final tu veux actualiser la page avec le meta, je vois pas trop l'intérêt d'utiliser ajax ?

A ta place, au lieu de faire retourner la chaine meta par le sript php, je ne renverrai que true ou false pour savoir si l'authentification s'est bien passée et je redirigerais en conséquence depuis le onreadystatechange avec un document.location = '...';