пустое $ _POST в PHP mail ()

Некоторая помощь в следующем будет принята с благодарностью! Я искал в Интернете и stackoverflow в течение нескольких часов. Эта проблема связана с моей функцией php mail.

На моем сайте есть форма (сайт использует WordPress) с двумя текстовыми полями, именем и номером телефона. Есть также скрытое поле в форме, которое отображает текущий URL, поэтому мы можем видеть, на какой странице была заполнена форма. Эта информация также сохраняется в сеансе php.

<?php session_start();
$_SESSION['url'] = $_SERVER['REQUEST_URI']; 
?> 

<form name="callback" action="callme.php" method="post" onsubmit="return(validate());">
<label>Name:</label><input type="text" name="name" size=15 />
<label>Tel:</label><input class="sky" type="text" name="tel" size=15 />
<div id="afterfive"><p>Call after five<input type="checkbox" name="afterfive" value="Call back after five"></p></div>
<input type="hidden" name="url" value="<?php echo $_SESSION['url']; ?>">
<input type="submit" class="classname" value="Call me back!" title="Call me back!" />
</form>

<script>
function validate()
{
if( document.callme.name.value == "" )
{
 alert( "Please fill in your name" );
 document.callme.name.focus() ;
 return false;
 }
if( document.callme.tel.value == "" )
{
alert( "Please fill in your phone number" );
document.callme.tel.focus() ;
return false;
}
}
</script>

Следующий код php это callme.php:

<?php session_start();

$name = $_POST['name'];
$tel = $_POST['tel'];
$afterfive = $_POST['afterfive']; 
$url = $_POST['url'];

$to = "[email protected]";
$subject = "Please call back $name";
$message .= "Hi, the following person would like to be called back: \n";
$message .= "Name: $name \n";
$message .= "Phonenumber: $tel \n";
$message .= "$afterfive \n";
$message .= "This message was send from this page: $url \n";
$headers = "From: [email protected]" . "\r\n";
$headers .= "BCC: [email protected]" . "\r\n";

if(mail($to, $subject, $message, $headers)){
$_SESSION['name'] = $_POST['name'];
$_SESSION['tel'] = $_POST['tel'];
header("Location: http://www.mywebsite.thankyou");
}

?>

После отправки формы посетитель перенаправляется на нашу страницу благодарности и получает возможность заполнить дополнительную информацию, используя вторую форму. Информация, ранее сохраненная в сеансе php (имя поля формы, tel и url), добавляется в скрытые поля формы.

В большинстве случаев все работает нормально, но иногда мы получаем электронные письма со всеми или некоторыми пустыми полями. Конечно, это могут быть пользователи с отключенным JavaScript или боты Google, которые отправляют пустые формы, но странным является то, что иногда даже поле URL пустое (форма не видна на нашей домашней странице). Не должен ли $ _SERVER ['REQUEST_URI'] всегда работать?

Я думал о добавлении проверки формы PHP, но я не уверен, что это решит проблему. Может ли это быть как-то связано с плагином Hyper-кеша для WordPress? Или это может быть связано с сессией PHP?

Ответы на вопрос(2)

Ваш ответ на вопрос