1. ✅ Apprenez une METHODE qui marche pour votre SEO ! Formation à distance avec Olivier Duffez et Fabien Facériès + aide pour prise en charge du financement
    Rejeter la notice

Demande d'aide

Discussion dans 'Demandes d'avis et de conseils sur vos sites' créé par paovallau, 3 Août 2020.

  1. paovallau
    paovallau Nouveau WRInaute
    Inscrit:
    3 Août 2020
    Messages:
    6
    J'aime reçus:
    0
    Bonjour
    Je suis novice
    Je crée un formulaire de contact

    <div class="contact">
    <p class="titresfooter">Contact</p>
    <?php include('traitement.php'); ?>
    <form method="post" action="traitement.php">
    <p>
    <strong>Nom<span style="color: #ff0000;">*</span> :</strong> <label for="nom"> </label> <input id="nom" name="nom" size="28" type="text" /> <br></p>
    <p><strong>Prénom :</strong> <label for="prenom"> </label> <input id="prenom" name="prenom" size="27" type="text" /> <br /> </p>
    <p><strong>Mail <span style="color: #ff0000;">*</span> :</strong><br /> <label for="email"> </label> <input id="email" name="email" size="81" type="text" /></p>
    <p>Pour quelle raison nous contactez-vous ?</p>
    <label for="objet"></label> <select id="objet" name="objet"> <option value="renseignement">Pour un renseignement</option>
    <option value="suggestion">Pour une suggestion</option>
    <option value="remarque">Pour une remarque</option>
    <option value="autre chose">Pour autre chose</option>
    </select><br>
    <p>Message <span style="color: #ff0000;">*</span> :</p>
    <p><label for="message"></label> <textarea id="message" cols="52" rows="7" name="message"></textarea></p>
    <input type="reset" value="Effacer" /> <input type="submit" value="Envoyer" />
    <p> </p>

    </form></article>

    ma redirection ne fonctionne pas mais mon mail est bien envoyé !
    <?php
    // S'il y des données de postées
    if ($_SERVER['REQUEST_METHOD']=='POST') {

    // (1) Code PHP pour traiter l'envoi de l'email

    // Récupération des variables et sécurisation des données
    $nom = htmlentities($_POST['nom']); // htmlentities() convertit des caractères "spéciaux" en équivalent HTML
    $objet = htmlentities($_POST['objet']);
    $email = htmlentities($_POST['email']);
    $message = htmlentities($_POST['message']);

    // Variables concernant l'email

    $destinataire = 'moi@gmail.com'; // Adresse email du webmaster (à personnaliser)
    $contenu = '<html><head><title> '.$objet.' </title></head><body>';
    $contenu .= '<p>Tu as un nouveau message !</p>';
    $contenu .= '<p><strong>Nom</strong>: '.$nom.'</p>';
    $contenu .= '<p><strong>Prenom</strong>: '.$prenom.'</p>';
    $contenu .= '<p><strong>Email</strong>: '.$email.'</p>';
    $contenu .= '<p><strong>Message</strong>: '.$message.'</p>';
    $contenu .= '</body></html>'; // Contenu du message de l'email (en XHTML)

    // Pour envoyer un email HTML, l'en-tête Content-type doit être défini
    $headers = 'MIME-Version: 1.0'."\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";

    // Envoyer l'email
    mail($destinataire, $objet, $contenu, $headers)
    if(!mail($destinataire, $objet, $contenu, $headers)){
    echo "erreur";
    }else{
    header("location:merci.html");
    }
    ?>

    Pouvez-vous m'aider?
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 057
    J'aime reçus:
    294
    Il manque un espace entre "location:" et "merci.html"

    PHP:
    header("location: merci.html");
     
  3. rick38
    rick38 WRInaute passionné
    Inscrit:
    23 Février 2013
    Messages:
    1 516
    J'aime reçus:
    202
    Je ne sais pas si c'est utile ici mais en général on met toujours le slash :

    PHP:
    header('Location: /merci.html');
    exit();
     
  4. paovallau
    paovallau Nouveau WRInaute
    Inscrit:
    3 Août 2020
    Messages:
    6
    J'aime reçus:
    0
    merci mais rien ne change. j'ai :
    Parse error: syntax error, unexpected 'if' (T_IF) in /home/users/00/38/98/home/www/traitement.php on line 30
    donc cette ligne if(!mail($destinataire, $objet, $contenu, $headers)){
     
  5. ABCWEB
    ABCWEB WRInaute impliqué
    Inscrit:
    22 Octobre 2015
    Messages:
    918
    J'aime reçus:
    98
    il doit te manque un point virgule une parenthese ou un accolade avant le if.

    Au vue du code je dirais point vigule sur la ligne de la fonction mail
     
  6. paovallau
    paovallau Nouveau WRInaute
    Inscrit:
    3 Août 2020
    Messages:
    6
    J'aime reçus:
    0
    MERCI !
    J'ai corrigé mais maintenant erreur à la ligne header("Location: merci.html");
    <?php
    // S'il y des données de postées
    if ($_SERVER['REQUEST_METHOD']=='POST') {

    // (1) Code PHP pour traiter l'envoi de l'email

    // Récupération des variables et sécurisation des données
    $nom = htmlentities($_POST['nom']);
    $prenom = htmlentities($_POST['prenom']);// htmlentities() convertit des caractères "spéciaux" en équivalent HTML
    $objet = htmlentities($_POST['objet']);
    $email = htmlentities($_POST['email']);
    $message = htmlentities($_POST['message']);

    // Variables concernant l'email

    $destinataire = 'moi@gmail.com'; // Adresse email du webmaster (à personnaliser)
    $contenu = '<html><head><title> '.$objet.' </title></head><body>';
    $contenu .= '<p>Tu as un nouveau message !</p>';
    $contenu .= '<p><strong>Nom</strong>: '.$nom.'</p>';
    $contenu .= '<p><strong>Prenom</strong>: '.$prenom.'</p>';
    $contenu .= '<p><strong>Email</strong>: '.$email.'</p>';
    $contenu .= '<p><strong>Message</strong>: '.$message.'</p>';
    $contenu .= '</body></html>'; // Contenu du message de l'email (en XHTML)

    // Pour envoyer un email HTML, l'en-tête Content-type doit être défini
    $headers = 'MIME-Version: 1.0'."\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";

    // Envoyer l'email
    mail($destinataire, $objet, $contenu, $headers);
    if(!mail($destinataire, $objet, $contenu, $headers)){
    echo "erreur";
    }else{
    header("Location: merci.html");
    }}
    ?>
     
  7. rick38
    rick38 WRInaute passionné
    Inscrit:
    23 Février 2013
    Messages:
    1 516
    J'aime reçus:
    202
    }} ça fait une } de trop (qui ne sont même pas utiles quand il n'y a qu'une ligne).
     
  8. paovallau
    paovallau Nouveau WRInaute
    Inscrit:
    3 Août 2020
    Messages:
    6
    J'aime reçus:
    0
    merci mais je ne trouve pas mon erreur...
     
  9. rick38
    rick38 WRInaute passionné
    Inscrit:
    23 Février 2013
    Messages:
    1 516
    J'aime reçus:
    202
    Si tu donnais le message d'erreur. C'est le même que le précédent ?
     
  10. ABCWEB
    ABCWEB WRInaute impliqué
    Inscrit:
    22 Octobre 2015
    Messages:
    918
    J'aime reçus:
    98
    et le fichier entier
     
  11. paovallau
    paovallau Nouveau WRInaute
    Inscrit:
    3 Août 2020
    Messages:
    6
    J'aime reçus:
    0
    mon fichier traitement.php
    <?php
    // S'il y des données de postées
    if ($_SERVER['REQUEST_METHOD']=='POST') {

    // (1) Code PHP pour traiter l'envoi de l'email

    // Récupération des variables et sécurisation des données
    $nom = htmlentities($_POST['nom']); // htmlentities() convertit des caractères "spéciaux" en équivalent HTML
    $objet = htmlentities($_POST['objet']);
    $email = htmlentities($_POST['email']);
    $message = htmlentities($_POST['message']);

    // Variables concernant l'email

    $destinataire = 'moi@gmail.com'; // Adresse email du webmaster (à personnaliser)
    $contenu = '<html><head><title> '.$objet.' </title></head><body>';
    $contenu .= '<p>Tu as un nouveau message !</p>';
    $contenu .= '<p><strong>Nom</strong>: '.$nom.'</p>';
    $contenu .= '<p><strong>Prenom</strong>: '.$prenom.'</p>';
    $contenu .= '<p><strong>Email</strong>: '.$email.'</p>';
    $contenu .= '<p><strong>Message</strong>: '.$message.'</p>';
    $contenu .= '</body></html>'; // Contenu du message de l'email (en XHTML)

    // Pour envoyer un email HTML, l'en-tête Content-type doit être défini
    $headers = 'MIME-Version: 1.0'."\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";

    // Envoyer l'email
    if(!mail($destinataire, $objet, $contenu, $headers)){
    echo "erreur";
    }else{
    header("location:merci.html");
    }}
    ?>
    je reçois le mail qui sur gmail est un spam et pas de redirection vers ma age "merci" après envoi
     
  12. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 057
    J'aime reçus:
    294
    Pour la redirection je t'ai déjà dit ce qui cloche. Et il y a tjs le "}" en trop signalé par @rick38
     
  13. ABCWEB
    ABCWEB WRInaute impliqué
    Inscrit:
    22 Octobre 2015
    Messages:
    918
    J'aime reçus:
    98
    je sais pas si ça vient de la mais je mets un exit sous le header:

    Code:
                header("location:accueil.php");
                exit();
     
  14. rick38
    rick38 WRInaute passionné
    Inscrit:
    23 Février 2013
    Messages:
    1 516
    J'aime reçus:
    202
    En fait il n'y a pas de } en trop car je crois que ça termine if ($_SERVER['REQUEST_METHOD']=='POST') {
    SVP quand vous mettez du code, utilisez la balise PHP ou CODE pour que ça s'affiche correctement...

    Le exit(); c'est une bonne habitude pour être sûr que le script s'arrête après la redirection mais quand il n'y a pas de code après ça ne change rien.
     
  15. ABCWEB
    ABCWEB WRInaute impliqué
    Inscrit:
    22 Octobre 2015
    Messages:
    918
    J'aime reçus:
    98
    Pour moi aussi il n'y a pas de problème d'accolade sinon le mail partirait pas.

    peut-être mettre un echo test avant ton header voir s'il rentre dans ta condition
     
  16. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 104
    J'aime reçus:
    12
    Bonjour Monsieur

    Est-ce que c'est avec Chrome que vous testez ?

    Il me semble que Chrome charge les pages d'abord en mode "prerender", puis affiche la page ensuite.

    Pour compenser celà, dans mon formulaire déjà ancien, je mettais les variables transmises en session.

    D'autre part, pour savoir/évaluer les variables POST, j'utilisais filter_input(INPUT_POST, 'var', param3) : bool.

    C'est plus complet et informatif que $_SERVER['REQUEST_METHOD'].

    Amicalement.
     
  17. paovallau
    paovallau Nouveau WRInaute
    Inscrit:
    3 Août 2020
    Messages:
    6
    J'aime reçus:
    0
    Bonjour
    Je reviens vers vous pour partager ma redirection
    J'ai ajouté un peu de javascript et ça fonctionne!

    echo '

    <script language="Javascript">
    <!--
    document.location.replace("merci.php");
    // -->
    </script>';


    } else {

    echo($error_message);

    }

    }
     
  18. rick38
    rick38 WRInaute passionné
    Inscrit:
    23 Février 2013
    Messages:
    1 516
    J'aime reçus:
    202
    Ah, bref ton formulaire est validé en AJAX, et en ajax effectivement il ne peut pas y avoir de redirection côté serveur, il faut envoyer du javascript pour la faire côté client.
     
Chargement...
Similar Threads - Demande aide Forum Date
Site inaccessible. Demande d'aide urgente Problèmes de référencement spécifiques à vos sites 10 Mai 2018
Bonjour demande d'aide concernant .htaccess URL Rewriting et .htaccess 27 Avril 2017
Demande aide référencement URL avec WRI Débuter en référencement 23 Mai 2016
Demande aide pour validation choix mot clefs Débuter en référencement 1 Avril 2015
Transfert DNS et Hébergeur : questions et demande d'aide Noms de domaine et référencement 17 Décembre 2014
Demande d'aide en référencement naturel Demandes d'avis et de conseils sur vos sites 4 Décembre 2014
demande conseil ou aide pour une meilleur visibilité, Débuter en référencement 11 Novembre 2014
Demande d'aide svp Google+ 2 Avril 2014
Demande d'aide à l'installation d'un script Développement d'un site Web ou d'une appli mobile 15 Mars 2014
Demande d'aide svp Débuter en référencement 9 Janvier 2014