J'essaye de faire une tâche simple de stocker un modèle d'email dans une base de données, le récupérant et remplissant des variables dans le modèle avant d'envoyer un email. J'utilise str_replace
mais pour une raison quelconque cela ne fonctionne pas pour moi. Pour compliquer le tout, cela fonctionne pour l'une des variables de mon modèle ci-dessous, le {{date}}
est rempli, mais tous les autres sont ignorés.str_replace de PHP ne fonctionne pas?
Ce n'est pas un problème avec mes variables POST n'étant pas remplies, je peux même passer une chaîne de texte réel dans str_replace
et il ne trouvera toujours pas mes "variables de modèle" et les remplacer. Juste la date un.
Des idées pour lesquelles il aurait un comportement si étrange? D'après ce que je peux voir, le Date n'a rien de différent?
Modèle
$admin_template = '<table>
<tr>
<td><strong>Name:</strong></td><td>{{name}}</td>
</tr>
<tr>
<td><strong>Email:</strong></td><td>{{email}}</td>
</tr>
<tr>
<td><strong>Website:</strong></td><td>{{website}}</td>
</tr>
<tr>
<td><strong>Phone:</strong></td><td>{{phone}}</td>
</tr>
<tr>
<td><strong>Source:</strong></td><td>{{source}}</td>
</tr>
<tr>
<td><strong>Budget:</strong></td><td>{{budget}}</td>
</tr>
<tr>
<td><strong>IP:</strong></td><td>{{{ip}}}</td>
</tr>
<tr>
<td><strong>Date Submitted:</strong></td><td>{{date}}</td>
</tr>
<tr>
<td><strong>Message:</strong></td><td>{{message}}</td>
</tr>
</table>';
Code pour modèle de processus
// Process Admin Template
$admin_body = str_replace('{{name}}', $name, $admin_template);
$admin_body = str_replace('{{email}}', $mailFrom, $admin_template);
$admin_body = str_replace('{{phone}}', $_POST["phone"], $admin_template);
$admin_body = str_replace('{{website}}', $_POST["website"], $admin_template);
$admin_body = str_replace('{{message}}', $_POST["message"], $admin_template);
$admin_body = str_replace('{{budget}}', $_POST["budget"], $admin_template);
$admin_body = str_replace('{{source}}', $_POST["source"], $admin_template);
$admin_body = str_replace('{{ip}}', $_SERVER['REMOTE_ADDR'], $admin_template);
$admin_body = str_replace('{{date}}', date("Y-m-d H:i:s"), $admin_template);
sortie réelle après le traitement
// Actual Output...
<table>
<tr>
<td><strong>Name:</strong></td><td>{{name}}</td>
</tr>
<tr>
<td><strong>Email:</strong></td><td>{{email}}</td>
</tr>
<tr>
<td><strong>Website:</strong></td><td>{{website}}</td>
</tr>
<tr>
<td><strong>Phone:</strong></td><td>{{phone}}</td>
</tr>
<tr>
<td><strong>Source:</strong></td><td>{{source}}</td>
</tr>
<tr>
<td><strong>Budget:</strong></td><td>{{budget}}</td>
</tr>
<tr>
<td><strong>IP:</strong></td><td>{{{ip}}}</td>
</tr>
<tr>
<td><strong>Date Submitted:</strong></td><td>2013-05-26 05:01:14</td>
</tr>
<tr>
<td><strong>Message:</strong></td><td>{{message}}</td>
</tr>
</table>
Vérifiez le serveur et les variables de publication sont ce que vous pensez qu'elles devraient être. 'printr ($ _ POST);' –