Signaler

Du php qui contient une page html avec du php [Résolu]

Posez votre question SUNEV - Dernière réponse le 18 oct. 2016 à 10:18
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>'; 
    }    
?>
Afficher la suite 
Utile
+0
moins plus
<?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>'; 
    }    
?>

Ajouter un commentaire
Utile
+0
moins plus
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.
Ajouter un commentaire
Utile
+0
moins plus
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 ?> ?>
Ajouter un commentaire
Utile
+0
moins plus
Bonsoir. A quoi te sert le code php dans ton echo ?

Pour afficher du html ? ou
Pour générer une page php ?
Ajouter un commentaire
Utile
+0
moins plus
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
Ajouter un commentaire
Utile
+0
moins plus
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
Ajouter un commentaire
Utile
+0
moins plus
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>
Ajouter un commentaire
Utile
+0
moins plus
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");
} 
?>
Ajouter un commentaire
Utile
+0
moins plus
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
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !