Du php qui contient une page html avec du php

Résolu
SUNEV -  
 SUNEV -
Bonjour tous le monde

j'ai une page en PHP pour l'envoie d'un formulaire qui contient une page en HTML
cette page html contient elle mème du code en PHP

Des balises <? php dans des balise <?PHP ? ?> ça ne fonctionne pas
comment faire
Si quelqu'un connait l'astuce, merci d'avance

En bas en gras souligné le code PHP a inclure dans la page html
qui est dans du code PHP

Code de ma page qui a éte allégé donc faux en lui mème, ce qui compte c'est
comment mettre ce PHP a l’intérieur des balises PHP

<?php
 if ($_SERVER['REQUEST_METHOD']=='POST') {      
 $nom     = htmlentities($_POST['nom']); 
 $destinataire = '######@free.fr';  
 $email   = htmlentities($_POST['email']);
 $site = htmlentities($_POST['site']);
 $message = htmlentities($_POST['message']);
 $contenu .= '<p><strong>Nom</strong>: '.$nom.'</p>';
 $contenu .= '<p><strong>Message</strong>: '.$message.'</p>';
 $headers = 'MIME-Version: 1.0'."\r\n";    
 mail($destinataire, $sujet, $contenu, $headers);

 echo '<!DOCTYPE html>   //<bold><underline>AFFICHAGE DE LA PAGE EN HTML</underline></bold>
<html><head>
<title>Message Envoyé - Jean</title>
<meta charset="utf-8" />
</head>
<body>
<div align="center"; id=content>   
<div align="center"; style="  border-radius:10px; background-color:#C9B856; width:400px; height:60px; padding:5px;">
<span style="font-size:14pt;"><font face="Cambria">Votre Message à bien été Envoyé<br />Merci</font></span></div>    
 
<bold><underline>ICI  LA PAGE HTML CONTIENT DU  CODE PHP  
< ? PHP
CODE DU PHP</underline></bold>
?>

</div> </div></body></html>'; 
    }    
?>

9 réponses

  1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    <?php
     if ($_SERVER['REQUEST_METHOD']=='POST') {      
     $nom     = htmlentities($_POST['nom']); 
     $destinataire = '######@free.fr';  
     $email   = htmlentities($_POST['email']);
     $site = htmlentities($_POST['site']);
     $message = htmlentities($_POST['message']);
     $contenu .= '<p><strong>Nom</strong>: '.$nom.'</p>';
     $contenu .= '<p><strong>Message</strong>: '.$message.'</p>';
     $headers = 'MIME-Version: 1.0'."\r\n";    
     mail($destinataire, $sujet, $contenu, $headers);
    
     echo '<!DOCTYPE html>   //<bold><underline>AFFICHAGE DE LA PAGE EN HTML</underline></bold>
    <html><head>
    <title>Message Envoyé - Jean</title>
    <meta charset="utf-8" />
    </head>
    <body>
    <div align="center"; id=content>   
    <div align="center"; style="  border-radius:10px; background-color:#C9B856; width:400px; height:60px; padding:5px;">
    <span style="font-size:14pt;"><font face="Cambria">Votre Message à bien été Envoyé<br />Merci</font></span></div>    
     
    ICI  LA PAGE HTML CONTIENT DU  CODE PHP';  
    CODE DU PHP;
    echo '
    </div> </div></body></html>'; 
        }    
    ?>

    0
  2. crapoulou Messages postés 28002 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   8 046
     
    Bonjour,

    J4ai rajouté la coloration syntaxique de ton code et on voit bien l'erreur dans le code.
    Il faut sortir du 'echo' pour mettre le code php :

    <?php
     if ($_SERVER['REQUEST_METHOD']=='POST') {      
     $nom     = htmlentities($_POST['nom']); 
     $destinataire = '######@free.fr';  
     $email   = htmlentities($_POST['email']);
     $site = htmlentities($_POST['site']);
     $message = htmlentities($_POST['message']);
     $contenu .= '<p><strong>Nom</strong>: '.$nom.'</p>';
     $contenu .= '<p><strong>Message</strong>: '.$message.'</p>';
     $headers = 'MIME-Version: 1.0'."\r\n";    
     mail($destinataire, $sujet, $contenu, $headers);
    
     echo '<!DOCTYPE html>   //<bold><underline>AFFICHAGE DE LA PAGE EN HTML</underline></bold>
    <html><head>
    <title>Message Envoyé - Jean</title>
    <meta charset="utf-8" />
    </head>
    <body>
    <div align="center"; id=content>   
    <div align="center"; style="  border-radius:10px; background-color:#C9B856; width:400px; height:60px; padding:5px;">
    <span style="font-size:14pt;"><font face="Cambria">Votre Message à bien été Envoyé<br />Merci</font></span></div>    
     
    <bold><underline>ICI  LA PAGE HTML CONTIENT DU  CODE PHP';
    CODE DU PHP;
    echo '</underline></bold>
    
    </div> </div></body></html>'; 
        }    
    ?>


    Tu es toujours dans ta balise PHP, pas besoin de la remettre.
    0
  3. SUNEV
     
    bonjour crapoulou

    tu n'a pas compris
    j'ai

    <? php
    BLA BLA BLA code php
    echo' ici ma page en code html

    <?php
    ici du code PHP a inclure dans cette page html
    ?>

    suite du html'

    ?>

    c'est des balises php dans des balises php
    <? php <? php ?> ?>
    0
  4. codeurh24 Messages postés 760 Date d'inscription   Statut Membre Dernière intervention   123
     
    Bonsoir. A quoi te sert le code php dans ton echo ?

    Pour afficher du html ? ou
    Pour générer une page php ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. SUNEV
     
    Rebonjour crapoulou

    Le code en entier
    sans la partie php inclu a la fin,
    ce code fonctionne bien
    C'est le <? PHP ####?> a l'interrieur du <?php des balises du debut et fin de page ?>
    echo' ouvre une page html
    comment inclure du code php dans cette page html

    le code en question:

    <?php
    if ($_SERVER['REQUEST_METHOD']=='POST') { // S'il y des données de postées
    $nom = htmlentities($_POST['nom']);
    $destinataire = '########@free.fr'; // Variables concernant l'email
    $email = htmlentities($_POST['email']);
    $site = htmlentities($_POST['site']);
    $message = htmlentities($_POST['message']);

    $sujet = 'Titre du message'; // Titre de l'email
    $contenu = '<html><head><title>Titre du message</title></head><body>';
    $contenu .= '<p>Bonjour, vous avez un message de votre site web.</p>';
    $contenu .= '<p><strong>Nom</strong>: '.$nom.'</p>';
    $contenu .= '<p><strong>Email</strong>: '.$email.'</p>';
    $contenu .= '<p><strong>Site</strong>: '.$site.'</p>';
    $contenu .= '<p><strong>Message</strong>: '.$message.'</p>';
    $contenu .= '</body></html>'; // Contenu du message de l'email (en XHTML)

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

    mail($destinataire, $sujet, $contenu, $headers);// Fonction principale qui envoi l'email

    echo '<!DOCTYPE html>
    //ici ouverture de la page html grâce a echo elle s'affiche
    <html>
    <head>
    <title>Message Envoyé - Jean </title>
    <meta charset="utf-8" />
    <style type=text/css>
    body{
    margin:0;
    padding:0;
    background: url(images/) no-repeat center fixed;
    background-color: #777700;
    -webkit-background-size: cover; /* pour Chrome et Safari */
    -moz-background-size: cover; /* pour Firefox */
    -o-background-size: cover; /* pour Opera */
    background-size: cover; /* version standardisée */
    }
    #menu{
    font-size: 20px;
    }
    #menu{
    position: relative;
    display:inline-block;
    list-style: none;
    width: 180px; /* agit sur la longueur des onglets */
    height: 40px;
    text-align: center;
    background-color: #777;
    background-image: linear-gradient(#EBF988, #888 50%, #777 80%,#BE9CE7); /* regle les couleurs des onglets et pourcentage*/
    box-shadow: 3px 30px 60px #731BDE; /* change la taille et la couleur des ombres des menus */
    border: 1px solid navy;
    border-radius: 20px 0 0 80px;
    }
    </style>
    </head>

    <body>

    <div align="center"; id=content>
    <p> </p>
    <p> </p>
    <p> </p>

    <div align="center"; style=" border-radius:10px; background-color:#C9B856; width:400px; height:60px; padding:5px;">
    <span style="font-size:14pt;"><font face="Cambria">Votre Message à bien été Envoyé<br />Merci</font></span></div>
    <p> </p>
    <p> </p>
    <p> </p>
    <div id="menu" align=center >
    <a href="index.php" rel="nofollow noopener noreferrer" target="_blank">Retour Accueil</a>
    </div>

    <? php //ici debut du code php a l'interrieur de la page html
    $filename = 'acceuil.txt';

    $somecontent = isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];

    if (is_writable($filename)) {
    if (!$handle = fopen($filename, 'a')) {

    exit;
    }
    $somecontent.= " Formulaire de Contact le ".date('l d/m/Y')." à ".date('H').":".date('i').":".date('s')."";

    if (fwrite($handle, $somecontent."\r\n") === FALSE) {

    exit;
    }

    fclose($handle);
    } else {
    echo "<br>Le fichier $filename n'est pas accessible en écriture ou n'existe pas";
    }
    ?> //ici fin du code php a l'interrieur de la page html

    </div>
    </body>
    </html>';
    } //ici fin de la page html
    ?>


    ERREUR QUI S’AFFICHE

    Parse error: syntax error, unexpected 'acceuil' (T_STRING), expecting ',' or ';' in C:\Program Files\EasyPHP-12.1\www\00siteencourdu092016\contact_traitementformulaire.php on line 81

    on pourrait aussi appeler une page exterrieure en html aprés l'echo, plutot que dez mettre tout le code, mais je ne suis pas arrivé a le faire mes connaissances en php sont encore trés limitées, et je n'obtient que des erreurs
    0
  7. SUNEV
     
    en fait quand on clique sur envoyer apres avoir rempli le formulaire de contact
    une page s'ouvre pour dire au visiteur que la page est bien postée
    et l'invite a retourner au site
    le code php incorporé a cette page inscrit l'adresse IP du visiteur dans un fichier TXT que je peut consulté
    si un visiteur m’envoie un message et que je ne le reçois pas, les infos inscrites dans ce TXT me l'indique qu'il ma été quand méme envoyé et d'ou il est parti grace a la localisation de l'IP
    0
  8. SUNEV
     
    LE FORMULAIRE DE CONTACT QUI VA AVEC,
    si ça interressse quelqu'un
    il fonctionne trés bien tel qu'il est et me donne l'IP de la personne qui a ouvert le formulaire en date et en heure

    <!DOCTYPE html>
    <html>
    <head>

    <title>Formulaire de contact - Jean </title>
    <meta charset="utf-8" />

    <style type="text/css">
    form {

    margin: 0 auto; /* Pour le centrer dans la page */
    width: 400px;
    padding: 1em; /* Pour voir les limites du formulaire */
    border: 2px solid #CCC;
    border-radius: 1em;
    }

    label {
    display: inline-block; /* Afin de s'assurer que toutes les étiquettes aient la même dimension et soient alignées correctement */
    width: 90px;
    text-align: right;
    }

    input, textarea {
    font: 1em sans-serif; /* Afin de s'assurer que tous les champs textuels utilisent la même police*/
    width: 300px; /* Pour donner la même dimension à tous les champs textuels */
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    border: 1px solid #999; /* Pour harmoniser l'apparence des bordures des champs textuels */
    }
    textarea {
    vertical-align: top; /* Pour aligner correctement les champs multilignes et leurs étiquettes */
    height: 12em; /* Pour donner assez d'espace pour entrer du texte */
    resize: vertical; /* Pour permettre aux utilisateurs de redimensionner un champ textuel horizontalement
    Cela ne marche pas avec tous les navigateurs */
    }

    input:focus, textarea:focus { /* Afin de rehausser les éléments actifs */
    border-color: #000; /* donne la couleur de fond et bords noirs des zones de saisie quand on les selectionne, ici bleu*/
    }

    .submit{
    width: 25%;
    height: 5%;
    border-radius: 10px;
    }
    #menu{
    position: relative;
    display:inline-block;
    list-style: none;
    width: 120px; /* agit sur la longueur des onglets */
    height: 25px;
    text-align: center;
    background-color: #777;
    background-image: linear-gradient(#EBF988, #888 50%, #777 80%,#BE9CE7); /* regle les couleurs des onglets et pourcentage*/
    box-shadow: 3px 30px 60px #731BDE; /* change la taille et la couleur des ombres des menus */
    border: 1px solid navy;
    border-radius: 8px;
    }

    </style>

    <STYLE type=text/css>
    body{
    margin:0;
    padding:0;
    background: url() no-repeat center fixed;
    background-color: #777700;
    -webkit-background-size: cover; /* pour Chrome et Safari */
    -moz-background-size: cover; /* pour Firefox */
    -o-background-size: cover; /* pour Opera */
    background-size: cover; /* version standardisée */
    }
    </STYLE>
    </head>

    <body style="text-align:center">

    <div>

    <form method="post" action="contact_traitementformulaire.php" >
    <legend>Aucun champ n'est obligatoire</legend>

    <p><label for="nom">Nom Prenom :</label><input type="text" name="nom" id="nom" /></p>
    <p><label for="email">votre Email:</label><input type="email" name="email" id="email" ></p>
    <p><label for="site">votre site internet</label><input type="url" name="site" id="site" placeholder="http://www.monsite.com"></p>


    <p><label for="message">Message :</label><textarea id="message" name="message" cols="30" rows="8"></textarea></p>
    <br /><br />
    <p ><input class="submit" type="submit" value="Envoyer" /></p>
    <p ><input class="submit" type="reset" value="Reinitialisez"/></p>
    </form>

    <?php
    $filename = 'acceuil.txt';

    $somecontent = isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];

    if (is_writable($filename)) {
    if (!$handle = fopen($filename, 'a')) {

    exit;
    }
    $somecontent.= " Formulaire de Contact le ".date('l d/m/Y')." à ".date('H').":".date('i').":".date('s')."";

    if (fwrite($handle, $somecontent."\r\n") === FALSE) {

    exit;
    }

    fclose($handle);
    } else {
    echo "<br>Le fichier $filename n'est pas accessible en écriture ou n'existe pas";
    }
    ?>

    <div><center>
    <P><a href="#debut" rel="nofollow noopener noreferrer" target="_blank"><a id="menu" href="#debut" rel="nofollow noopener noreferrer" target="_blank">Haut de la Page</a>
    <A href="javascript:history.back();" id="menu" >Page Précédente</a> </P>
    </center></div>

    </div>
    </body>
    </html>
    0
  9. codeurh24 Messages postés 760 Date d'inscription   Statut Membre Dernière intervention   123
     
    http://www.yopmail.com/
    pour utiliser une adresse email de test

    Page du formulaire.

    <!DOCTYPE html>
    <html>
    <head>
    
    <title>Formulaire de contact - Jean </title>
    <meta charset="utf-8" />
        
       
    <style type="text/css">
    form {
    
        margin: 0 auto;   /* Pour le centrer dans la page */
        width: 400px;
        padding: 1em;  /* Pour voir les limites du formulaire */
        border: 2px solid #CCC;
        border-radius: 1em;
    }
    
    label {
        display: inline-block;     /* Afin de s'assurer que toutes les étiquettes aient la même dimension et soient alignées correctement */
        width: 90px;
        text-align: right;
    }
    
    input, textarea {
        font: 1em sans-serif;  /* Afin de s'assurer que tous les champs textuels utilisent la même police*/
        width: 300px;  /* Pour donner la même dimension à tous les champs textuels */
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        border: 1px solid #999;    /* Pour harmoniser l'apparence des bordures des champs textuels */
    }
    textarea {
        vertical-align: top;     /* Pour aligner correctement les champs multilignes et leurs étiquettes */
        height: 12em;       /* Pour donner assez d'espace pour entrer du texte */
        resize: vertical;       /* Pour permettre aux utilisateurs de redimensionner un champ textuel horizontalement
                                         Cela ne marche pas avec tous les navigateurs  */
    }
    
    input:focus, textarea:focus {    /* Afin de rehausser les éléments actifs */
    border-color: #000;    /* donne la couleur de fond et bords noirs des zones de saisie quand on les selectionne, ici bleu*/
    }
    
    .submit{
    width: 25%;
    height: 5%;
    border-radius: 10px;
    }
    #menu{
       position: relative;
       display:inline-block;
       list-style: none;
       width: 120px;      /* agit sur la longueur des onglets */
       height: 25px;
       text-align: center;
       background-color: #777;
       background-image: linear-gradient(#EBF988, #888 50%, #777 80%,#BE9CE7);  /* regle les couleurs des onglets et pourcentage*/
       box-shadow: 3px 30px 60px #731BDE;           /* change la taille et la couleur des ombres des menus */
       border: 1px solid navy;
       border-radius: 8px;                    
    }
    
    </style>
    
    <STYLE type=text/css>
     body{
      margin:0; 
      padding:0; 
      background: url() no-repeat center fixed; 
      background-color: #777700;
      -webkit-background-size: cover; /* pour Chrome et Safari */ 
      -moz-background-size: cover; /* pour Firefox */ 
      -o-background-size: cover; /* pour Opera */ 
      background-size: cover; /* version standardisée */ 
     } 
    </STYLE>
    </head>
    
    <body  style="text-align:center">
    
    <div>
    
    <form method="post"  action="contact_traitementformulaire.php" >
    <legend>Aucun champ n'est obligatoire</legend>
    
    <p><label for="nom">Nom Prenom :</label><input type="text" name="nom" id="nom" /></p> 
    <p><label for="email">votre Email:</label><input type="email" name="email" id="email" ></p>
    <p><label for="site">votre site internet</label><input type="url" name="site" id="site" placeholder="http://www.monsite.com"></p>
    
     
    <p><label for="message">Message :</label><textarea id="message" name="message"  cols="30" rows="8"></textarea></p>
    <br /><br />
    <p ><input class="submit" type="submit" value="Envoyer" /></p>
    <p ><input class="submit" type="reset"  value="Reinitialisez"/></p>
    </form>
    
    <?php
    $filename = 'acceuil.txt';
    
    $somecontent = isset($_SERVER['HTTP_X_FORWARDED_FOR']) ?  $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
    
     if (is_writable($filename)) {
      
     if (!$handle = fopen($filename, 'a')) { 
      exit("Probleme, un fichier est manquant ou ne peux etre ouvert");
     }
     $somecontent.= "  Formulaire de Contact       le ".date('l d/m/Y')." à ".date('H').":".date('i').":".date('s')."";
    
     if (fwrite($handle, $somecontent."\r\n") === FALSE) { 
      exit("Probleme d'ecriture");
     } 
     fclose($handle);
     
    } else { 
      echo "<br>Le fichier $filename n'est pas accessible en écriture ou n'existe pas";
    }
    ?>
    
          <div><center>
              <P><a href="#debut" rel="nofollow noopener noreferrer" target="_blank"><a id="menu" href="#debut" rel="nofollow noopener noreferrer" target="_blank">Haut de la Page</a>
              <A href="javascript:history.back();" id="menu" >Page Précédente</a> </P>
         </center></div>
    
    </div>
    </body>
    </html>
    


    page de validation du formulaire contact_traitementformulaire.php
    <?php
    if ($_SERVER['REQUEST_METHOD']=='POST') 
    {      // S'il y des données de postées
     $nom     = htmlentities($_POST['nom']); 
     $destinataire = $_POST['email'];  // Variables concernant l'email
     $email   = htmlentities($_POST['email']);
     $site = htmlentities($_POST['site']);
     $message = htmlentities($_POST['message']);
    
     $sujet = 'Titre du message'; // Titre de l'email
     $contenu = '<html><head><title>Titre du message</title></head><body>';
     $contenu .= '<p>Bonjour, vous avez un message de votre site web.</p>';
     $contenu .= '<p><strong>Nom</strong>: '.$nom.'</p>';
     $contenu .= '<p><strong>Email</strong>: '.$email.'</p>';
     $contenu .= '<p><strong>Site</strong>: '.$site.'</p>';
     $contenu .= '<p><strong>Message</strong>: '.$message.'</p>';
     $contenu .= '</body></html>'; // Contenu du message de l'email (en XHTML)
    
     $headers = 'MIME-Version: 1.0'."\r\n";    // Pour envoyer un email HTML, l'en-tête Content-type doit être défini
     $headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";
    
     mail($destinataire, $sujet, $contenu, $headers);// Fonction principale qui envoi l'email
    
       
       
       
       
        
      //ici debut du code php a l'interrieur de la page html 
     $filename = 'acceuil.txt';
    
     $somecontent = isset($_SERVER['HTTP_X_FORWARDED_FOR']) ?  $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
    
     if (is_writable($filename)) 
     {
        if (!$handle = fopen($filename, 'a')) { 
       exit;
        }
        $somecontent.= "  Formulaire de Contact       le ".date('l d/m/Y')." à ".date('H').":".date('i').":".date('s')."";
        
        if (fwrite($handle, $somecontent."\r\n") === FALSE) { 
      
       exit;
        } 
    
       fclose($handle);
     } else { 
       echo "<br>Le fichier $filename n'est pas accessible en écriture ou n'existe pas";
     }
    
    
    ?><!DOCTYPE html>
    <html>
    <head>
    <title>Message Envoyé - Jean </title>
    <meta charset="utf-8" />
     <style type=text/css>
     body{
      margin:0; 
      padding:0; 
      background: url(images/) no-repeat center fixed; 
      background-color: #777700;
      -webkit-background-size: cover; /* pour Chrome et Safari */ 
      -moz-background-size: cover; /* pour Firefox */ 
      -o-background-size: cover; /* pour Opera */ 
      background-size: cover; /* version standardisée */ 
     }
     #menu{
      font-size: 20px;
     } 
     #menu{
        position: relative;
        display:inline-block;
        list-style: none;
        width: 180px;      /* agit sur la longueur des onglets */
        height: 40px;
        text-align: center;
        background-color: #777;
        background-image: linear-gradient(#EBF988, #888 50%, #777 80%,#BE9CE7);  /* regle les couleurs des onglets et pourcentage*/
        box-shadow: 3px 30px 60px #731BDE;           /* change la taille et la couleur des ombres des menus */
        border: 1px solid navy;
        border-radius: 20px 0 0 80px;                    
     }
     </style>
    </head>
    <body>
     <div align="center"; id=content>   
      <p> </p>
      <p> </p>
      <p> </p>
      <div align="center"; style="  border-radius:10px; background-color:#C9B856; width:400px; height:60px; padding:5px;">
      <span style="font-size:14pt;"><font face="Cambria">Votre Message à bien été Envoyé<br />Merci</font></span></div>    
      <p> </p>
      <p> </p>
      <p> </p>
      <div  id="menu" align=center >    
       <a href="index.php" rel="nofollow noopener noreferrer" target="_blank">Retour Accueil</a> 
      </div> 
     </div>          
    </body>
    </html>
    <?php
    }     //ici fin de la page html 
    else{
     exit("Erreur: manque variables post");
    } 
    ?>
    
    0
  10. SUNEV
     
    Hé oui c'était tout béte
    mettre le code php a la suite du code php et pas dans le code html
    pas besoin de remettre d'autres balises comme ça
    maintenant ça fonctionne
    - c'est en forgeant que l'on devient forgeron
    - ne passons pas a côté des choses simples
    - pourquoi chercher à faire compliqué quand on peut faire simple
    - ect.........

    merci codeurh24 de me faire profiter de ton expérience
    0