Faire une redirection en PHP après une requêtte ajax

Ce forum aborde toutes les questions qu'un codeur ou webmaster pourrait se poser, et n'ayant aucun rapport direct avec phpBB.
Tout ce qui peut concerner la récupération des sessions de phpBB sur votre site, doit se faire dans ce forum.

Modérateur: Equipe

Faire une redirection en PHP après une requêtte ajax

Messagede Gryffondor le 24 Oct 2008 à 00:07

Bonsoir,

Après avoir intégré toutes les pages de mon site avec Prototype et sa méthode Ajax.Updater(), je me retrouve confronté à un problème !
Ce problème concerne ma page de login entre autre. Je fais appelle à ma page de login dans une DIV de ma page index.php grâce à la méthode Ajax.Updater().
Fonctionnement de ma page de login: L'utilisateur entre son login et son mot de passe, si ces paramètres sont incorrects, il a un message d'érreur et est redirigé vers la page de login une nouvelle fois, et si ces paramètres sont correctes, il est redirigé vers un autre répertoire:

Code: Tout sélectionner
<?php
// Fonction de redirection (fonctionne sans la méthode ajax.updater())
function redirection($url){
    echo "<script type=\"text/javascript\">\n"
    . "<!--\n"
    . "\n"
    . "function redirect() {\n"
    . "window.location='" . html_entity_decode($url) . "'\n"
    . "}\n"
    . "setTimeout('redirect()','2000');\n"
    . "\n"
    . "// -->\n"
    . "</script>\n";
}

// Traitement du formulaire
if(!isset($_POST['pseudo'])) 
            
{
                echo'<p align="center"><strong>Erreur</strong> - Vous devez remplir le formulaire de connexion<br />';
                echo'<em>Veuillez patienter...</em></p>';
                redirection('login.php');
                exit();
            }
else
{
echo '<p align="center">Vous etes désormais connecté.<br />';
            echo '<em>Veuillez patienter...</em></p>';
            redirection('/autre_repertoire');
            }
?>

Le soucis est que ma fonction redirection n'est pas exécutée car j'ai seulement les echo qui restent figés à l'écran. Provisoirement j'ai mis un bouton lien pour que l'utilisateur clic dessus pour arriver sur la bonne page mais j'aimerais conserver mes redirections.
Titi In Love a écrit:La plus grande fierté tel que la grandeur d'un homme ne réside pas dans ces actes mais dans les conséquences que ces actes auront (Titi In Love).

Last Survivor: La fin du monde ne fait que commencer...[b]
Serez vous le Last Survivor?
Avatar de l’utilisateur
Gryffondor
Maître des floodeurs
Maître des floodeurs
 
Messages: 2188
Inscription: 31 Juil 2006 à 19:48
Localisation: A Last Survivor : Là où la fin du monde ne fait que commencer!
Avertissements: 1

Re: Faire une redirection en PHP après une requêtte ajax

Messagede spitfire pat le 24 Oct 2008 à 07:39

si le code que tu nous montres est contenu dans la requête ajax, c'est normal que ça ne marche pas, un retour de requête ajax ne peut pas exécuter du php

montre-moi la partie de code de index.php qui fait appel à login.php et l'intégralité de login.php
Avatar de l’utilisateur
spitfire pat
Superstar
 
Messages: 14673
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Re: Faire une redirection en PHP après une requêtte ajax

Messagede Gryffondor le 24 Oct 2008 à 12:07

Je l'ai mit en archive, sa prendra mmoins de place à l'écran:
LE VOICI
Titi In Love a écrit:La plus grande fierté tel que la grandeur d'un homme ne réside pas dans ces actes mais dans les conséquences que ces actes auront (Titi In Love).

Last Survivor: La fin du monde ne fait que commencer...[b]
Serez vous le Last Survivor?
Avatar de l’utilisateur
Gryffondor
Maître des floodeurs
Maître des floodeurs
 
Messages: 2188
Inscription: 31 Juil 2006 à 19:48
Localisation: A Last Survivor : Là où la fin du monde ne fait que commencer!
Avertissements: 1

Re: Faire une redirection en PHP après une requêtte ajax

Messagede spitfire pat le 24 Oct 2008 à 14:14

comme je te disais, un retour de requête ajax ne peut pas exécuter de script php.
à la place de
Code: Tout sélectionner
            echo '<p align="center"><strong>Erreur</strong> - Vous devez remplir tous les champs<br />';
            echo '<em>Veuillez patienter...</em></p>';
            redirection('login.php');

met
Code: Tout sélectionner
            echo "<script type=\"text/javascript\">
                  alert('Erreur - Vous devez remplir tous les champs');
                  window.location='login.php';
               </script>";
Avatar de l’utilisateur
spitfire pat
Superstar
 
Messages: 14673
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Re: Faire une redirection en PHP après une requêtte ajax

Messagede Gryffondor le 24 Oct 2008 à 15:12

Ok spit, sa fonctionne niquel mais j'aimerais ne pas mettre de balise <script> dans mon fichier de traitement du formulaire histoire de séparer mon code JS de mon code PHP, donc comment insérer ce windows.location dans mon fichier de traitement sans cette balise <script>.
Egalement, avec cette méthode, le message de confirmation ou d'érreur de connexion n'a pas le temps d'apparaitre et donc j'aimerais une temporisation avant la direction pour laisser le message le temps d'apparaitre afin que l'utilisateur puisse savoir ce qui ne va pas où si il est réellement connecté.

Merci d'avance ^^
Titi In Love a écrit:La plus grande fierté tel que la grandeur d'un homme ne réside pas dans ces actes mais dans les conséquences que ces actes auront (Titi In Love).

Last Survivor: La fin du monde ne fait que commencer...[b]
Serez vous le Last Survivor?
Avatar de l’utilisateur
Gryffondor
Maître des floodeurs
Maître des floodeurs
 
Messages: 2188
Inscription: 31 Juil 2006 à 19:48
Localisation: A Last Survivor : Là où la fin du monde ne fait que commencer!
Avertissements: 1

Re: Faire une redirection en PHP après une requêtte ajax

Messagede Théonaute le 24 Oct 2008 à 15:17

Bonjour,

Code: Tout sélectionner
            echo "<script type=\"text/javascript\">
                  alert('Erreur - Vous devez remplir tous les champs');
                </script>
<meta http-equiv="refresh" content="5; url=login.php">";


Le 5 correspond à 5 secondes.

Bien à vous, :wink:
Théonaute | Mes MODs pour phpBB3.0.x | MODs de l'équipe des codeurs de phpbb-fr
Dernier MOD, le 07 janvier 2009 : Rangs par groupes v1.0.0.
Pas de support via un autre moyen que le forum.
Vous n'êtes pas content d'une de mes réponses ? Règlez vos comptes : http://caribroute.labrute.fr/
Avatar de l’utilisateur
Théonaute
Codeur
Codeur
 
Messages: 3766
Inscription: 22 Jan 2006 à 15:45
Localisation: Montréal

Re: Faire une redirection en PHP après une requêtte ajax

Messagede Gryffondor le 24 Oct 2008 à 15:28

Oui, ok pour la tempo mais c'est que j'aimerais mettre mon code javascript dans un fichier externe et l'appelé sans balise <script> :mrgreen:

PS : D'ailleur j'ai le même soucis pour mes évènements onclik, j'aimerais les virer pour mes requêtte Ajax.Updater car sa surcharge ma page et pour la clarté c'est pas ti top. J'avais lu un cours sur les écouteur d'évènements avec Event.observe() entres autre mais pas très clair la dessus.
Titi In Love a écrit:La plus grande fierté tel que la grandeur d'un homme ne réside pas dans ces actes mais dans les conséquences que ces actes auront (Titi In Love).

Last Survivor: La fin du monde ne fait que commencer...[b]
Serez vous le Last Survivor?
Avatar de l’utilisateur
Gryffondor
Maître des floodeurs
Maître des floodeurs
 
Messages: 2188
Inscription: 31 Juil 2006 à 19:48
Localisation: A Last Survivor : Là où la fin du monde ne fait que commencer!
Avertissements: 1


Retourner vers Coding, Webmastering et Sécurité informatique

Qui est en ligne

Utilisateurs parcourant ce forum: Exabot [Bot] et 3 invités

Liens : phpBB.biz • phpBBHacks.com • phpBB-Seo.com • EzCom-fr.com • phpBB-Services.com • phpBB3 Styles • phpBB podpora • Net Avenir • PromoBenef • Ticket Gagnant •