vazio $ _POST no email do PHP ()

Alguma ajuda com o seguinte seria muito apreciada! Eu tenho procurado na web e stackoverflow por horas. Existe este problema com a minha função de correio php.

Há um formulário no meu site (o site usa o wordpress) com dois campos de texto, nome e número de telefone. Há também um campo oculto no formulário que exibe o URL atual, para que possamos ver em qual página o formulário foi preenchido. Essas informações também são armazenadas em uma sessão do 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>

O seguinte código 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");
}

?>

Depois de enviar o formulário, o visitante é redirecionado para nossa página de agradecimento e a oportunidade de preencher informações adicionais usando um segundo formulário. As informações armazenadas anteriormente na sessão do php (nome dos campos de formulário, tel e url) são adicionadas em campos de formulário ocultos.

Isso tudo funciona bem na maioria das vezes, mas às vezes recebemos e-mails com todos ou alguns campos vazios. Claro que isso pode ser usuários com javascript desabilitado ou google bots que enviam formulários em branco, mas o estranho é que às vezes até o campo url está vazio (o formulário não é visível em nossa homepage). Não deveria o $ _SERVER ['REQUEST_URI'] continuar a funcionar?

Eu estava pensando em adicionar a validação do formulário php, mas não tenho certeza se isso resolverá o problema. Isso poderia ter algo a ver com o hiper-cache plug-in para wordpress? Ou poderia estar relacionado com a sessão php?

questionAnswers(2)

yourAnswerToTheQuestion