Не по электронной почте PHPSESSID

После того, как мои клиенты разместили заказ, я отправляю подтверждение по электронной почте, используя следующий код, но я хочу запретить включение 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 при создании электронной почты?

-1

Решение

Если ваша форма получает данные POST, просто измените ее на:

foreach ($_POST as $Field=>$Value) {
if($Value != ''){
$body .= "$Field: $Value\n\n";
}
}

Если он использует данные GET, измените его на $_GET вместо $_POST

1

Другие решения

Вероятно, проблема заключается в использовании $ _REQUEST вместо $ _POST или $ _GET в зависимости от поведения формы / заголовка. Тем не менее, я предполагаю, что, поскольку вы используете $ _REQUEST, вы не выполняете никакой очистки отправляемых данных. Это может привести к угону вашей почтовой системы спаммерами, что приведет к добавлению в черный список антиспама. Скорее всего, вы захотите прочитать о том, как правильно защитить почтовые системы, или использовать стороннюю библиотеку, которая решает эти проблемы за вас.

Идентификатор сеанса либо генерируется, либо восстанавливается / возобновляется функцией session_start ();

1

Ваша отправка звучит так, как будто это вход со значением.

Вы можете использовать кнопку с типом отправки без значения.

Вот пример, где кнопка не будет отображаться в выводе:

Примечания: здесь я использовал метод 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>
0
По вопросам рекламы [email protected]