После того, как мои клиенты разместили заказ, я отправляю подтверждение по электронной почте, используя следующий код, но я хочу запретить включение PHPSESSID в это письмо:
$body = "";
foreach ($_REQUEST as $Field=>$Value) {
if($Value != ''){
$body .= "$Field: $Value\n\n";
}
}
В верхней части файла PHP у меня есть следующее относительно идентификатора сессии
<?php session_start(); ?>
<?php if (!isset($_SESSION['id'])) : ?>
Так или иначе, это должно создать поле PHPSESSID со значением, которое выбирается моим кодом $ body.
Сгенерированный вывод электронной почты выглядит следующим образом:
_fname: Mark
_lname: Smith
_Address_1: South St
_Phone: 123-456-7890
_email: [email protected]
_Date_Needed: 4/19/17
B1: Submit
PHPSESSID: (some string of characters)
Интересно, что B1 Submit и PHPSESSID не являются переменными, которые я использую, но код находит эти значения и возвращает их. Подтверждение B1 — раздражение, но я думаю, что PHPSESSID — это возможный риск для безопасности.
Я использую $ _REQUEST для получения данных формы от пользователя следующим образом:
$_fname=$_REQUEST['_fname'];
$_lname=$_REQUEST['_lname'];
$_Address_1=$_REQUEST['_Address_1'];
Может быть, мне следует изменить это значение с $ _REQUEST на $ _GET, а затем использовать $ _GET при создании электронной почты?
Если ваша форма получает данные POST, просто измените ее на:
foreach ($_POST as $Field=>$Value) {
if($Value != ''){
$body .= "$Field: $Value\n\n";
}
}
Если он использует данные GET, измените его на $_GET
вместо $_POST
Вероятно, проблема заключается в использовании $ _REQUEST вместо $ _POST или $ _GET в зависимости от поведения формы / заголовка. Тем не менее, я предполагаю, что, поскольку вы используете $ _REQUEST, вы не выполняете никакой очистки отправляемых данных. Это может привести к угону вашей почтовой системы спаммерами, что приведет к добавлению в черный список антиспама. Скорее всего, вы захотите прочитать о том, как правильно защитить почтовые системы, или использовать стороннюю библиотеку, которая решает эти проблемы за вас.
Идентификатор сеанса либо генерируется, либо восстанавливается / возобновляется функцией session_start ();
Ваша отправка звучит так, как будто это вход со значением.
Вы можете использовать кнопку с типом отправки без значения.
Вот пример, где кнопка не будет отображаться в выводе:
Примечания: здесь я использовал метод POST. Если это не решит вопрос, я просто удалю его.
<?php
$body = "";
foreach ($_REQUEST as $Field=>$Value) {
if($Value != ''){
$body .= "$Field: $Value\n\n";
// ...
}
}
?>
<form method="post">
abc1:
<input name="abc1" value="abc1a" type="text">
<br>
abc2:
<input name="abc2" value="abc2a" type="text">
<br>
abc3:
<input name="abc3" value="abc3a" type="text">
<br>
abc4:
<button name="abc4" type="submit">SUBMIT</button>
</form>