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 :

Retour du php me fait sortir de mon site web


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut Retour du php me fait sortir de mon site web
    Bonjour,

    Dans mon site https://abc.go.yj.fr/ à partir de ma page de contact, je permets au visiteur de m'envoyer un mail via le programme contact.php.
    Le mail est bien envoyé, mais l'acquittement de ma fonction php est affiché dans une nouvelle page blanche d'url https://abc.go.yj.fr/contact.php.
    Comment afficher l'acquittement sur ma page d'envoi ? Accessoirement effacer les champs?

    Merci

    Code extrait du html:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        <div id="formContact">
          <form method="post" action="contact.php">
            <input type="text" name="nom" placeholder="Nom" required><br>
            <input type="email" name="email" placeholder="E-mail" required><br>
            <textarea name="message" placeholder="Message" required></textarea><br>
            <input type="submit" value="Envoyer">
          </form>

    Code du fichier contact.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
          if (isset($_POST["message"])) {
            $retour = mail("xxx@gmail.com", "abc.go.yj.fr", $_POST["nom"] . "\n" . $_POST["email"] . "\n" . $_POST["message"]);
            if($retour)
                  echo '<p>Message bien envoyé</p>';
            else
                  echo '<p>Pas de message</p>';
          };

  2. #2
    Membre chevronné Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 341
    Par défaut
    Je viens de tester sur votre site (vous avez donc reçu un mail bizarre ) ... cela ne me semble pas anormal ce qui se passe.

    Modifiez votre ligne :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form method="post" action="contact.php">
    // ---- rester sur la même page
    <form method="post" action="#contact">

    Là vous envoyiez vers une nouvelle page qui est contact.php, il faut rester sur la même page.

    Il faut donc mettre toute la partie de la page contact actuelle dans le début de la page principale : avant le HTML et mettre le message juste devant le formulaire pour être facilement lisible :

    Code html : 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
    // ---- Traitement du mail en début de page
    <?php
          if (isset($_POST["message"])) {
            $retour = mail("xxx@gmail.com", "abc.go.yj.fr", $_POST["nom"] . "\n" . $_POST["email"] . "\n" . $_POST["message"]);
            if($retour)
                  $message_mail='Message bien envoyé';
            else
                 $message_mail='Pas de message';
          };
    ?>
    // ----- Formulaire de contact
    <div id="formContact">
          <?php if (isset($message_mail)) { echo $message_mail; } ?>
         <form method="post" action="#contact">
            <input type="text" name="nom" placeholder="Nom" required><br>
            <input type="email" name="email" placeholder="E-mail" required><br>
            <textarea name="message" placeholder="Message" required></textarea><br>
            <input type="submit" value="Envoyer">
         </form>
    </div>
    La mise en page du message est à faire, CSS par exemple.

  3. #3
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut
    Merci de ta réponse.

    Je comprends que le bouton Envoyer renvoie sur le début de la section et le champ message étant renseigné on passe dans le if isset et l'envoi du mail se fait.

    Cependant, pas de message affiché : il y a un flash de la page laissant penser qu'il y a rafraichissement de la page : le message a pu être effacé par ce rafraichissement?
    Et pas de mail reçu (j'ai tout de suite essayé l'envoi de mail avec l'ancienne version (fichier contact.php) et j'ai eu le message).

    Mon fichier index.html, qui incorpore dans ta solution le code php, ne devrait t'il pas devenir un index.php?

    Merci

  4. #4
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut
    il faut attendre jusqu'à demain car je vois des mails de ce matin arriver au compte gouttes ...

  5. #5
    Membre chevronné Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 341
    Par défaut
    Citation Envoyé par awalter1 Voir le message
    il faut attendre jusqu'à demain car je vois des mails de ce matin arriver au compte gouttes ...
    Je ne suis pas persuadé que mail() fonctionne encore correctement chez PlanetHoster, j'avais aussi un comportement aléatoire et le support m'a clairement fait comprendre que ce n'est plus vraiment supporté et qu'une solution alternative était conseillée ... je n'ai plus le moindre accroc depuis.
    Ces arrivées un peu bizarre semblent aller dans mon sens

  6. #6
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut
    Bonjour,

    Avec le fichier index.php, ça marche nickel : le mail arrive dans la foulée.
    Le message "Mail bien envoyé" reste affiché sur la page même après son rechargement. J'ai fait un unset() de la variable message_mail après l'affichage de son contenu mais ça ne change rien :
    voir ligne 16 du
    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
     
      <section id="contact">
        <!-- Page contact -->
        <?php
          if (isset($_POST["message"])) {
                  $retour = mail("walter.alain.serge@gmail.com", "Peindreamonampteuil.go.yj.fr",  $_POST["nom"] . "\n" . $_POST["email"] . "\n" . $_POST["message"]);
                  if($retour)
                    $message_mail='Message bien envoyé';
                  else
                    $message_mail='Pas de message';
             }
        ?>
        <h2>Contactez-moi</h2>
        <div id="formContact">
          <?php if (isset($message_mail)) {
             echo $message_mail;
             unset($message_mail);
          } ?>
          <!-- <form method="post" action="contact1.php"> -->
          <form method="post" action="#contact">
            <input type="text" name="nom" placeholder="Nom" required "^[A-Za-z '-]+$" maxlength="30"><br>
            <input type="email" name="email" placeholder="E-mail" required
              pattern="^[A-Za-z.]+@{1}[A-Za-z]+\.{1}[A-Za-z]{2,}$"><br>
            <textarea name=" message" placeholder="Message" required pattern="^[A-Za-z .,;()/#@'-1234567890]+$"
              maxlength="200"></textarea><br>
            <input type="submit" value="Envoyer">
          </form>
        </div>
      </section>
    Pour le mailing, qu'utiliserais tu pour remplacer la fonction mail()? PHPmailer?.
    Ceci dit tant que ça marche, je garderais mail(), je n'ai pas vocation à recevoir beaucoup de mails.

    Merci

  7. #7
    Membre chevronné Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 341
    Par défaut
    Citation Envoyé par awalter1 Voir le message
    Mon fichier index.html, qui incorpore dans ta solution le code php, ne devrait t'il pas devenir un index.php?i
    Oui, en effet, quand il y a du PHP, le nom de la page doit avoir l'extension .phpPour le serveur, cela ne va rien changer, mais il ne faut pas 2 page index avec les 2 extensions, donc 1 seule page index !! -> le serveur regarde après une et ensuite l'autre d'une manière transparente pour vous (je ne sais pas dans quel ordre).

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

Discussions similaires

  1. Requêtes php dans une application pour mon site web
    Par Coussati dans le forum Web & réseau
    Réponses: 20
    Dernier message: 12/05/2022, 23h02
  2. Ajout de PHP dans mon site web
    Par Bocage dans le forum Langage
    Réponses: 2
    Dernier message: 18/04/2013, 19h32
  3. Créer une page php a partir de mon site web
    Par mangasource dans le forum Langage
    Réponses: 9
    Dernier message: 27/06/2010, 10h23
  4. [MySQL] aide pour connection mysql avec du php sur mon site web
    Par cuisto44000 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 23/09/2007, 00h30
  5. [Upload] Php : script d'Upload vers mon site : Big Probleme
    Par CyberTwister dans le forum Langage
    Réponses: 8
    Dernier message: 27/03/2006, 08h06

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