Passer une variable dans un fichier externe

Résolu/Fermé
Kc!nn4y - 17 févr. 2012 à 11:56
 Kc!nn4y - 17 févr. 2012 à 12:47
Bonjour,

Voilà mon problème :

J'ai fait un script php qui envoi un mail avec comme contenu une page php.
Le script php obtient l'email dans la base de données et envoi la page php qui contient un lien dans lequel est passé l'id correspondant au mail sélectionné par la méthode GET.
Cependant en utilisant file_get_contents() pour appeler le page php externe, impossible de passer l'id par le GET car la fonction file_get_contents() ne fait qu'afficher et non exécuter.


Voici le code :

include('connect_db.php');
$recupid = "SELECT id FROM clientsmailing WHERE email = '".$_POST['email']."'";
$recupid = mysql_query($recupid) or die(mysql_error());
$id = mysql_fetch_assoc($recupid);
$id = $id['id'];

//=====Déclaration du message au format HTML.
$message_html = file_get_contents('premier_mail.php');


Et voilà le code du fichier premier_mail.php appelé :

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN'
   'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='fr' lang='fr'>

	<head>
		<title>Premier Mail</title>
		<meta http-equiv='Content-type' content='text/html; charset=utf-8' />
		<!-- Styles -->
		<link rel='stylesheet' media='screen' type='text/css' href='css/style.css' />
	</head>
	
<body>

	<h1 align='center'>Premier mail.</h1>
	<a  align='center' href='http://exemple.php?id=".$id."'>Suivez ce lien</a>
	
</body>

</html>


Je sais que je dois utiliser autre chose que file_get_contents() pour pouvoir utiliser la variable $id dans ce fichier externe mais je ne sais quelle fonction utiliser ni comment...

Si quelqu'un pouvait m'aider je lui en serait reconnaissant.

Merci d'avance.
A voir également:

2 réponses

Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
Modifié par Zep3k!GnO le 17/02/2012 à 12:07
Salut,
Si tu n'as pas de traitement à proprement parlé dans ton fichier php, il faut utiliser une autre méthode.
Dans ton cas, si je résume, tu veux avoir un fichier de template (qui contient le code html de ton mail) et remplacer certaines valeurs dans ce template.
Il faut donc, constituer un fichier de template, qu'on nommera pour cet exemple mon_premier_mail.html qui contient :
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 
   'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'> 
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='fr' lang='fr'> 

 <head> 
  <title>Premier Mail</title> 
  <meta http-equiv='Content-type' content='text/html; charset=utf-8' /> 
  <!-- Styles --> 
  <link rel='stylesheet' media='screen' type='text/css' href='css/style.css' /> 
 </head> 
  
<body> 

 <h1 align='center'>Premier mail.</h1> 
 <a  align='center' href='http://exemple.php?id=##MY_ID##'>Suivez ce lien</a> 
  
</body> 

</html> 


Puis dans ton script PhP, tu vas récupérer le contenu dans une variable et modifier la valeur que tu veux remplacer :
$sMailContent = file_get_contents('./chemin_vers_ton_fichier_template/mon_premier_mail.html'); 
if($sMailContent != ''){ 
   //Remplacement de la valeur. 
   $sMailContent = str_replace('##MY_ID##', $id, $sMailContent); 
} 


Tu peux alors utiliser $sMailContent qui contiendra ton template de mail avec l'id correctement valorisé.
0
Merci mec, j'avais même pas pensé à faire un remplacement... faut pas chercher midi à 14h des fois :)
0