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

HTML Discussion :

[Header] comment rediriger


Sujet :

HTML

  1. #1
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut [Header] comment rediriger
    bonjour à tous

    je tourne un peu en rond au niveau mecansime des headers...

    j'ai un formulaire basique qui une fois validé m'affiche le résultat de cette validation et m'envoie un mail comme quoi une validation a été effectuée...

    à cause du raffraichissement possible que l'on peut faire sur le navigateur, on peut relancer très facilement du coup cet envoi de mail parasite...

    du coup je me disais si au lancement de la page de résultats et après l'envoi de mail je voudrais rediriger vers une nouvelle page...

    et c'est là que je ne m'en sors plus... j'ai essayé de lire pas mal de posts sur le sujet mais je patauge un peu....

    que me conseillez vous?

    merci de votre aide

  2. #2
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309

  3. #3
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    merci

    ce principe là je le maitrise a peu près....

    mais ce que je ne maitrise pas c'est le cas suivant:
    formulaire sur 1 page avec bouton de validation qui lance une autre page qui insère les résultats en BDD et à la fin de cette insertion je souhaiterai que ça m'ouvre une nouvelle page... par le header donc...

    mais je ne vois pas comment le placer... le formuler... c'est très flou...

  4. #4
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    Dans ce cas là, ton autre page fera l'insertion, en PHP, j'imagine, puis tu rajoutes à la fin la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Location: nouvelle_page.html');
    Qui permet de rediriger vers "nouvelle_page.html"

  5. #5
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 890
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 890
    Points : 16 337
    Points
    16 337
    Par défaut
    Dans le même fichier :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?
     
    /*ton code PHP qui insère ce que tu veux dans la base de données */
     
    ?>
    et en-dessous :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <!-- ta balise meta, celle qui est visible sur le lien de Linaa qui te fera ta redirection -->
    Le redirection en PHP comme le montre Linaa dans le post précédent est valable aussi, si tu n'affiches aucune données au-dessus du header.

  6. #6
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    merci pour vos aides

    pour être sûr d'avoir bien compris... ma fameuse page resultats.php contenant déjà du code (requête/insetion/génération d'images/envoi d'un mail de confirmation etc...)
    - je ne peux pas lui mettre en fin de fichier de header (car j'ai des caractères devant)
    - donc je ne peux utiliser que la solution de la balise meta?

    merci beaucoup

    en regardant bien(?) la doc je ne comprends pas pour la balise meta:

    si je lui mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <META HTTP-EQUIV="refresh" CONTENT="0;URL=liste.htm">
    sur ma page resultats.php

    comment va-t-il lancer ma requête d'insertion de données???? car a priori tel que je le comprends il va charger seulement liste.htm...

    non?

  7. #7
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 890
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 890
    Points : 16 337
    Points
    16 337
    Par défaut
    Non, dans ce cas tu peux utiliser le header en PHP.

    Tu peux l'utiliser quand il y a des caractères avant la fonction, seulement si ces caractères n'envoient pas d'informations pour l'affichage d'une page HTML :

    Exemple de cas où tu ne peux pas l'utiliser :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?
    echo 'test';
     
    header('Location: nouvelle_page.html');
    ?>

    Exemple de cas où tu peux l'utiliser :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?
    $sql = 'INSERT INTO matable VALUES(...)';
    $req = mysql_query($sql);
     
    header('Location: nouvelle_page.html');
    ?>

    Dans le cas de la balise <meta> tu ne l'appelles seulement qu'après tes requêtes d'insertion de donneés ...

  8. #8
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    Tu peux utiliser la balise meta avec du code au dessus !
    Mais sans rien afficher avant... C'est à dire pas de echo, pas de html, ...

  9. #9
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    merci beaucoup,

    il me reste une question, à la lecture de vos réponses... que doit on privilégier, meta ou header? y a t il une règle à suivre? car ces 2 balises (en tout cas au niveau redirection) semblent donner le même résultat escompté (et étant donné qu'on ne peut pas mettre de code html au dessus ni de l'une , ni de l'autre...)

  10. #10
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 890
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 890
    Points : 16 337
    Points
    16 337
    Par défaut
    Heu, tu peux utiliser la balise meta avec du code HTML au-dessus ... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?
    $sql = 'INSERT INTO matable VALUES(...)';
    $req = mysql_query($sql);
     
    echo 'Vos données ont bien été enregistrées. Vous allez être redirigé dans quelques secondes ...';
    ?>
    <meta http-equiv="refresh" content="3;URL=nouvelle_page.html" />
    L'avantage de la balise meta est que tu peux afficher du texte et que tu peux faire la redirection au bout d'un temps donné, alors que le header fait la redirection immédiatement et sans permission d'affichage de texte.

  11. #11
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    un grand merci pour vos explications dominicales

    je peux avancer...
    tout s'éclaire...

  12. #12
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    Citation Envoyé par Bisûnûrs
    L'avantage de la balise meta est que tu peux afficher du texte et que tu peux faire la redirection au bout d'un temps donné, alors que le header fait la redirection immédiatement et sans permission d'affichage de texte.
    Ok, mais on ne peut pas faire comme tu l'as fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?
    $sql = 'INSERT INTO matable VALUES(...)';
    $req = mysql_query($sql);
     
    echo 'Vos données ont bien été enregistrées. Vous allez être redirigé dans quelques secondes ...';
    ?>
    <meta http-equiv="refresh" content="3;URL=nouvelle_page.html" />
    Le echo doit etre après le meta !
    Sinon on aura une erreur, en-têtes déjà envoyées...

  13. #13
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 890
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 890
    Points : 16 337
    Points
    16 337
    Par défaut
    @Linaa : Pas avec la balise meta, non ...

    J'ai utilisé cette méthode des dizaines de fois.
    Fais le test toi-même.

    Juste une petite preuve : Tu dois dans une page HTML basique mettre la balise meta dans la balise head. Tu fais une redirection au bout de 5 secondes en avertissant tes utilisateurs avec un message dans la balise body.
    Seulement des informations sont envoyées bien avant la balise head : le DOCTYPE.
    Pourtant tu n'as aucune erreur d'en-têtes déjà envoyées. ^^

  14. #14
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    merci pour le complément d'info

    je m'en suis rendu compte finalement car ma page de validation est composée de 2 include:
    - 1 include avec insertion des données qui contient désormais le meta de redirection
    - 1 include d'envoi de mail et de confirmation comme quoi l'insertion des données s'est bien déroulée

    et le message s'affiche, comme quoi l' echo est placé après la balise meta...

  15. #15
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    @mussara : ton premier include (avec la redirection) est inclus avant l'affichage des données donc c'est bon.

    @Bisûnûrs : Ah ouais ! Mais il ne faut pas mettre la balise meta entre les balises head et voilà tout !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment rediriger l'adres mondomaine.com ?
    Par wormseric dans le forum Apache
    Réponses: 16
    Dernier message: 24/05/2006, 13h20
  2. Réponses: 2
    Dernier message: 22/05/2006, 11h02
  3. W2k3 serveur: Comment rediriger un home folder..
    Par pierrot10 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 31/03/2006, 22h17
  4. comment rediriger sur une page html en fonction de la langue
    Par pierrot10 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/08/2005, 11h42
  5. Comment rediriger la sortie vers /dev/null
    Par dclink dans le forum C
    Réponses: 4
    Dernier message: 24/06/2003, 18h23

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