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 :

Faire une simple redirection


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de Reggio
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Par défaut Faire une simple redirection
    Bonjour,

    Ne connaissant rien en php j'ai téléchargé un script pour un formulaire simple de contact. Tout fonctionne, je reçois bien le message par email. Seulement à la fin de mon script il y a un echo "Le message a été envoyé."; résultat le message est envoyé mais une page vide s'ouvre avec ce seul texte.

    Je souhaiterais donc ajouter une redirection de mon script. J'ai bien cherché avant de poster et essayé avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <SCRIPT>
    window.location = "merci.html";
    </SCRIPT>
    , ou encore ou l'utilisation de "header". Au final rien ne marche et je suis perdu.

    Je souhaiterais soit rediriger directement vers ma page merci.html, soit comme on le voit beaucoup une page intermédiaire "votre message a été envoyé, vous allez être redirigé, cliquez ici pour ne pas attendre", puis la page merci.html.

    Voici donc mon script php:
    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
    30
    31
    32
    33
    34
     
    <?php
     
    /* Email du destinataire (mettez ici votre email) */
    $destinataire = "XXX";
     
    /* Récupération */
    $email = $_POST['email'];
    $objet = $_POST['objet'];
    $message = $_POST['message'];
    $header = "From: " . $_POST['email'];
     
    /* Vérification */
    if ( $objet == "" ) {
      echo "Veuillez indiquer un objet.";
      $erreur = true;
    }
    if ( $message == "" ) {
      echo "Veuillez indiquer un message.";
      $erreur = true;
    }
     
    /* Vérification du mail */
    $email_regex = "^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+.[a-z0-9-]";
    if ( $email == "" OR !eregi( $email_regex , $email ) ) {
      echo "Veuillez indiquer un email valide.";
      $erreur = true;
    }
     
    /* Envoi du mail */
    if ( !$erreur ) {
      mail( $destinataire , $objet , $message , $header );
      echo "Le message a été envoyé.";
    }
    Et le code html correspondant, qui je ne pense pas sera utile:
    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
    <div id="contact"><form action="send_email.php" method="post">
      <p>
        Adresse email : *<br />
        <input name="email" type="text" />
      </p>
      <p>
        Objet : *<br />
        <input name="objet" type="text" />
      </p>
      <p>
        Message : *<br />
        <textarea name="message" rows="5" cols="30"></textarea>
      </p>
      <p> <input type="submit" value="Envoyer" /> </p>
      <p>*champs obligatoires</p>
      </form>
      </div>
    Merci d'avance pour votre patience envers les grands débutants

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Avec une redirection en HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="refresh" content="5;tapage.php" />
    5 etant ici le nombre de secondes avant la redirection.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti Avatar de Reggio
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Par défaut
    J'ai mis ce code dans mon fichier php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="refresh" content="5;merci.html" />
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "Le message a été envoyé.";
    Dois-je laisser l'echo? Aurais-je du le mettre dans mon fichier html? Après ma balise </form> ? Car cela me met un message d'erreur

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Dois-je laisser l'echo?
    Il n'y a que toi qui peut savoir si tu veux afficher un message ou non.

    Mais dans le cas ou tu n'afficherais rien, il n'y a plus trop d'intérêt a utiliser une redirection avec delai.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti Avatar de Reggio
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Par défaut
    Oui d'accord je vois, je pense donc que je vais me passer de redirection.

    Cependant si je supprime ma dernière ligne contenant l'echo et que je la remplace par celle que tu m'as donné cela m'indique un message d'erreur et le formulaire n'est pas envoyé. En gros ce que je veux est simplement remplacer mon echo par une redirection

  6. #6
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Salut

    Avec javascript dans ce cas là et à la fin de ton traitement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript">window.location.href = "tapage.html";</script>

Discussions similaires

  1. [À télécharger] Faire une simple capture d'écran (screenshot)
    Par SfJ5Rpw8 dans le forum Vos téléchargements VB6
    Réponses: 0
    Dernier message: 14/11/2010, 17h53
  2. comment faire une simple rotation au centre
    Par Manau2000 dans le forum Flex
    Réponses: 4
    Dernier message: 04/12/2008, 10h14
  3. Réponses: 4
    Dernier message: 11/12/2007, 18h01
  4. [C# Dataset] Je n'arrive pas a faire une simple requête.?
    Par zoltix dans le forum Accès aux données
    Réponses: 4
    Dernier message: 16/02/2007, 16h22
  5. Comment faire une simple boucle de décrementation
    Par marcus333 dans le forum Langage
    Réponses: 5
    Dernier message: 05/02/2006, 13h24

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