Я пытался отправить электронное письмо, содержащее html-код, сгенерированный php.
Контекст таков: я использую php для создания веб-страницы, и я пытаюсь отправить эту веб-страницу по электронной почте, скопировав код, который я использовал для создания веб-страницы, и вставив сообщение с помощью функции почты.
Я нашел способ создать электронное письмо, содержащее переменные php, как в следующем примере:
[...]
$message = "<address>
<strong>Adresse de livraison:</strong><br>
$prenom $nom<br>
$adress1<br>
$adress2<br>
$postalcode $ville, $country
</address>";
mail($destinataire, $objet, $message, $headers);
[...]
Все было идеально, письмо было отправлено правильно.
Но теперь мой код содержит части php, как в следующем примере:
if ($disque!= 'No') {
<tr>
<td>Disque avant : $disque</td>
<td class='text-center'>
$selected_product[] = $disqueav;
$data = bdd_select('SELECT Price FROM products WHERE Nom = ?', $selected_product);
echo $data['0']['Price'] . '€';
$subtotalprice = $data['0']['Price'] + $subtotalprice;
</td>
<td class='text-center'>1</td>
<td class='text-right'> $data['0']['Price'] . '€';</td>
</tr>
}
И это не работает из-за такого массива, как $ data ['0'], даже если я использую для него одну запятую и двойную запятую для переменной $ message.
Я получаю такую ошибку:
Parse error: syntax error, unexpected ']', expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)
У меня вопрос: есть ли способ написать эту часть кода, чтобы я не получал никаких ошибок и мог отправить страницу точно так, как я ее видел.
Спасибо большое.
Я узнал, что <? $ message = "Hello $ name"?> было самым простым способом.






Попробуйте использовать $ data [0] ['price']; Если по-прежнему возникает ошибка, оставьте комментарий в журналах Apache.
Спасибо ! Это помогает, но по-прежнему возникают проблемы с $ selected_product [] = $ disqueav. Ошибка для этой строки - Ошибка синтаксического анализа: синтаксическая ошибка, непредвиденный ']', ожидаемый идентификатор (T_STRING), переменная (T_VARIABLE) или число (T_NUM_STRING)
Прокомментируйте фрагмент кода, в котором вы определили переменную $ disqieav.
Это извлечение переменной из $ _post. Но я понимаю, что проблема в том, как написано $ selected_product [].
извлечь ($ _ POST);
Хорошо. Вместо использования $ selected_product [] = $ disqueav; попробуйте использовать array_push ($ selected_product, $ disqueav);
Спасибо, вроде работает, этой ошибки больше нет. Теперь у меня есть только несколько неопределенных переменных: subtotalprice, data, selected_product. Я сделаю какой-нибудь тест.
Добро пожаловать, Если вам нужна дополнительная помощь, не стесняйтесь комментировать. Если ваша проблема решена, отметьте решение как решенное. Спасибо.
Просто заставьте переменную сообщения встраивать ваши строки сообщения в эту переменную. Также была проблема с $ data ['0']; Поскольку 0 - это целочисленный индекс, а не строка, это должно быть $ data [0], а не $ data ['0']. Я думаю, это сработает для вас. Я не смог правильно протестировать, потому что у меня нет базы данных.
$message = "<table><tbody>";
if ($disque!= 'No') {
$message. = "<tr>
<td>Disque avant :". $disque."</td>
<td class='text-center'>";
$selected_product[] = $disqueav;
$data = bdd_select('SELECT Price FROM products WHERE Nom = ?', $selected_product);
$message .= $data[0]['Price'] . "€";
$subtotalprice = $data[0]['Price'] + $subtotalprice;
$message .= $subtotalprice;
$message .= "</td>
<td class='text-center'>1</td>";
$message .= "<td class='text-right'> ".$data[0]['Price'] . "€</td>
</tr>";
}
$message . = "</tbody></table>";
Вы не можете так смешивать PHP и HTML. Вы должны закрыть свой PHP перед выводом HTML, а затем снова открыть PHP, чтобы использовать больше кода PHP.