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

Langage PHP Discussion :

Redirection vers une page


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Points : 14
    Points
    14
    Par défaut Redirection vers une page
    Bonjour,

    Après des recherches sur la redirection, je me tourne vers ce forum pour tenter de résoudre mon problème.

    J'ai une page php qui contient, comme ci-dessous, un lien menant vers l'exécution d'un web service.

    ex: http://localhost:8080/mon_job/servic...?method=runJob

    L'exécution d'un tel lien affiche à l'écran un arbre XML dans lequel se trouve la valeur retournée par le web service (0 = OK, autre valeur = KO). Bien entendu, il n'y a pas moyen d'effectuer une autre action pour quitter cet écran, sauf le retour arrière.

    Mon problème est que je souhaite rediriger automatiquement l'utilisateur après la fin de l'exécution du web service, vers une autre page.

    J'ai essayé les headers en php, en faisant ainsi: (ne pas tenir compte de la syntaxe exacte du code)
    header(url pour le web service);
    header(url accueil du site);

    Le problème est que je partais vers l'exécution du web service. Mais à la fin, le code ne passe pas par le deuxième header.

    J'ai également essayé en javascript les location.href en respectant le même principe décrit au-dessus (redirection vers le web service puis redirection vers l'accueil). Mais là je partais directement vers l'accueil et n'exécute donc pas le web service.

    Avez-vous une idée sur laquelle je pourrais me baser pour résoudre mon problème, svp?

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 210
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 210
    Points : 8 437
    Points
    8 437
    Billets dans le blog
    17
    Par défaut
    Il faut récupérer le résultat du webservice.
    Puis si nécessaire rediriger le visiteur.

    Ex. :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ws = file_get_contents($webservice_url) ;
    // Traitement de $ws
    header('Location: ...') ;

  3. #3
    Membre du Club Avatar de walacouper
    Inscrit en
    Avril 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2009
    Messages : 93
    Points : 65
    Points
    65
    Par défaut
    Bonjour ,

    Lors d'une redirection avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ws = file_get_contents($webservice_url) ;
    // Traitement de $ws
    header('Location: ...') ;
    est ce-que cette redirection envoie les paramettres de sessions vers la page destinataire ?


    Cordialement

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 210
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 210
    Points : 8 437
    Points
    8 437
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par walacouper Voir le message
    Lors d'une redirection avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ws = file_get_contents($webservice_url) ;
    // Traitement de $ws
    header('Location: ...') ;
    est ce-que cette redirection envoie les paramettres de sessions vers la page destinataire ?
    Non si le session id transite via URL uniquement (comportement déprécié).
    Dans les autres cas oui.

  5. #5
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    salut

    ne pas oublier d'appeler exit juste après header pour s'assurer qu'aucune autres commandes n'est éxécuté


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ws = file_get_contents($webservice_url) ;
    // Traitement de $ws
    header('Location: ...') ;
    /*pour s'assurer que la suite du script n'est pas exécuté*/
    exit();

  6. #6
    Membre du Club Avatar de walacouper
    Inscrit en
    Avril 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2009
    Messages : 93
    Points : 65
    Points
    65
    Par défaut
    Merci pour ce conseil

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    bonjour,

    Désolé pour l'absence.

    Après modification du code, je n'obtiens pas ce que je veux.
    Avant de continuer, je dois vous informer que j'ai PHP 4.1.2. En conséquence, je ne peux pas utiliser la méthode file_get_contents() car elle ne fonctionne qu'à partir de PHP 4 >= 4.3.0, PHP 5.

    Du coup pour contourner le problème, j'ai créé une fonction qui fait ce que fait la méthode file_get_contents() (copié du net)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function file_get_contents($filename){
        if($fp=fopen($filename,'r')){
            $buffer=fread($fp,filesize($filename));
            fclose($fp);
            return $buffer;
        } else
            return false;
    }
    Et voici le bout de code qui est censé exécuter le web service:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    echo "case paie <br />";
    $test = file_get_contents("http://127.0.0.1:8080/test_job0.1/services/test_job?method=runJob");
     
    header('Location: menu.php?page=1') ;
    /*pour s'assurer que la suite du script n'est pas exécuté*/
    exit();
    Et là, je n'obtiens rien ... Une page blanche. Autant avant j'avais un retour d'information avec l'affichage de l'arbre XML indiquant que mon web service a été lancé, autant là je n'ai aucun retour.

    Pouvez-vous me dire ce qui ne va pas, svp?

    Merci d'avance.

  8. #8
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    essaies comme ça
    Location: /menu.php?page=1
    essaies aussi de débuger avec un echo pour s'assurer que le script est exécuté.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo "case paie <br />";
    $test = file_get_contents("http://127.0.0.1:8080/test_job0.1/services/test_job?method=runJob");
      echo    'redirection en cours... ';      // essai de débuger avec un echo
    header('Location: /menu.php?page=1') ;
    /*pour s'assurer que la suite du script n'est pas exécuté*/
    exit();
    @+

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    J'ai modifié le location() ... ça ne me le redirige pas. Pas de réaction.

    J'ai rajouté le echo "redirection ..." ça me l'a bien affiché.
    Mais je n'ai pas eu de signes pouvant laisser croire que l'exécution du web service a fonctionné. (Le résultat à obtenir est la réception d'un mail)

    Pensez-vous qu'il y ait un problème, au niveau du code, dans la fonction file_get_contents() que j'ai créée?

    Merci d'avance.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Je reviens vers vous pour apporter des informations supplémentaires.

    J'ai essayé de voir si la fonction file_get_contents que j'ai créée fonctionne correctement ou pas. Et apparemment elle ne fonctionne pas.

    Avant je ne faisais qu'un return false. Du coup je n'avais jamais de retour sur la bonne exécution ou non de la fonction. Là, j'ai mis une String. Et effectivement ça me ramène tout le temps "ça ne marche pas".

    Edit:
    J'ai trouvé le problème:
    J'ai copier cette page et je l'ai hébergé sur WampServer qui possède PHP 5
    J'ai simplifié la méthode et j'obtiens des résultats différents.
    Sur PHP 4, je n'obtiens rien, alors que sur PHP5 le mail est bien reçu.

    Voici le bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        function mu_file_get_contents1($filename){
            $fp = fopen($filename,'rb');
        }
    N'y a-t-il pas quelque chose à faire pour la méthode fopen()?
    Comme une extension nécessaire mais non chargée. Ou alors s'il existe une solution de contournement pour lire une adresse.

    Merci d'avance.

    dreamcat1

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/01/2006, 21h33
  2. [Tomcat] session expirée redirection vers une page
    Par Casp dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 19/01/2006, 11h45
  3. redirection vers une page internet
    Par chti_juanito dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 09/01/2006, 17h42
  4. Redirection vers une page contenant celle qui redirectionne
    Par Rémiz dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 16/11/2005, 14h38
  5. [PRO] redirection vers une page
    Par Mister_FX dans le forum ASP
    Réponses: 10
    Dernier message: 23/06/2004, 17h31

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