8797 sujets

Développement web côté serveur, CMS

Bonjour, j'ai un petit soucis, j'ai mis en place sur mon site immobilier la possibilité d'envoyer la fiche d'une maison à un amis par email.
Pour cela, je génère donc un email en html, mais j'ai un problème avec l'affichage des variables.
Voici un exemple:

$message = '
<html><head><title>Offre de vente</title></head>
	<body>
	<p><?php echo $nom; ?> vous a envoyé une offre...</p>
	<p>Message : <?php echo $commentaire; ?></p>
	<p>Vous pouvez consulter le bien à cette adresse :</p>
	</body>
</html>';


le code
<?php echo $nom; ?>
n'est pas interprété, ça ne m'affiche rien dans l'email.

Merci par avance pour votre aide.
Modifié par Beno (20 Apr 2007 - 08:41)
Salut,

Pour envoyé un mail au format html grâce à la fonction mail(), il est indispensable d'ajouter des entêtes au mail. En effet, dans la clause from, il faut ajouter cela :

$from = "MIME-version: 1.0\n"; 
$from .= "Content-type: text/html; charset= iso-8859-1\n";


Voici un petit lien sur le site phpcodeur.net qui t'en dira plus sur la fonction mail().

Bonne continuation Smiley cligne
Salut ymhotepa et merci pour ta réponse, j'utilise bien les entêtes spécifiques, je n'ai repris que la portion de code qui me pose problème.

Voici mon code complet:

$adress = $adresse_recuperee;

$entete  = 'From: ...@...'."\n";
$entete .= 'MIME-Version: 1.0'."\n";
$entete .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
$entete .='Content-Transfer-Encoding: 8bit'; 

$sujet  = 'Offre de vente';

$message = '
<html><head><title>Offre de vente</title></head>
	<body>
	<p><?php echo $nom; ?> vous a envoyé une offre...</p>
	<p>Message : <?php echo $commentaire; ?></p>
	<p>Vous pouvez consulter le bien à cette adresse :</p>
	</body>
</html>';

mail($adress, $sujet, $message, $entete);
C'est la concaténation qui bloque par içi.

Voilà avec une bonne concaténation :

$message = '

<html><head><title>Offre de vente</title></head>

	<body>

	<p>'.$nom.' vous a envoyé une offre...</p>

	<p>Message : '.$commentaire.'</p>

	<p>Vous pouvez consulter le bien à cette adresse :</p>

	</body>

</html>';


En clair, tu déclare une variable. Cette variable n'accepte pas du code php comme pour le html.

Pour que ta variable devienne dynamique, il faut concaténer (désolé pour le terme, mais c'est celui qu'il faut utiliser lol).

En clair, comme tu as écris ta variable ainsi :

$message = 'mon petit message';


Pour concaténer ceci avec la variable $taille il faut faire :


$message = 'mon '.$taille.' message';

La variable sera ainsi bien interprété.

En clair lorsque tu souhaite mettre une variable dans une variable, il faut mettre la variable qui se situe dans ta variable entre soit double guillemet (") soit entre simple guillemet ('), ceci dépends de comment tu fais pour ta variable de base.

Après les points (.) cela indique que tu assemble le reste avec quelques chose de fixe.

J'espère que ce n'est pas trop confu Smiley cligne
Modifié par Super_baloo8 (19 Apr 2007 - 19:24)
Bravo Super_baloo, j'avais même pas vu ce petit problème de <?php echo $nom; ?> dans la variable php. Smiley bawling Smiley smash

Super_baloo8 a écrit :
J'espère que ce n'est pas trop confu Smiley cligne

Maginifique rien à re-dire Smiley cligne Smiley prie
Modifié par ymhotepa (20 Apr 2007 - 01:01)
Lol !

Puisque tout est bien qui se finis bien, tu pourrais peut être marqué ce sujet comme résolu pour que les Alsanautes qui ont eu le même problème que toi puisse trouver une réponse facilement Smiley cligne
Super_baloo8 a écrit :

Puisque tout est bien qui se finis bien, tu pourrais peut être marqué ce sujet comme résolu pour que les Alsanautes qui ont eu le même problème que toi puisse trouver une réponse facilement Smiley cligne


En fait ce n'est pas moi qui est crée le poste. Je voulais simplement dire que j'avais répondu complétement à côté de la plaque Smiley langue
ymhotepa a écrit :


En fait ce n'est pas moi qui est crée le poste. Je voulais simplement dire que j'avais répondu complétement à côté de la plaque Smiley langue


Oops, mais où ais-je la tête moi aussi Smiley biggol Smiley biggol Smiley biggol Smiley ravi
Merci pour tes conseils avisés Super_baloo, ça fonctionne très bien à présent. Smiley biggrin