下面是我的提交表單的腳本。我收到電子郵件,但它包含的是IP地址和時間戳。我沒有收到任何其他列出的信息。我對PHP很陌生,所以任何幫助將不勝感激。另外,在電子郵件中,它是從d91b8401
,[email protected]
開始說的。有沒有辦法糾正?PHP腳本無法正確發送電子郵件
<?php
include('database/config.php');
include('database/database.php');
$err = '';
if(isset($_POST['submit'])){
$first = addslashes(trim($_POST['first']));
$last = addslashes(trim($_POST['last']));
$glvar = addslashes(trim($_POST['glvar']));
$ip = isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
//echo $ip;
if(($first!='')&& ($last!='')&& ($glvar!='')){
$database = new Database(HOST, DATEBASE, USERNAME, PASSWORD);
$allUsers = $database->select('user','glvar_id','*',"glvar_id = '".$glvar."'");
//echo $ip;
$checkglvar = 0;
$checkglvar = count($allUsers);
$userData = array(
'first_name' => $first,
'last_name' => $last,
'glvar_id' => $glvar,
'ip' => $ip,
);
if(!$checkglvar) {
$database->insert('user',$userData);
$message = "First Name: $first";
$message = "Last Name: $last";
$message = "GLVAR ID: $glvar";
$message = "IP: $ip" . PHP_EOL;
$message .= "TIME: " . date('Y-m-d H:i:s');
mail("[email protected]", "New Petition Signer", $message);
header('location:thank-you.html');
} else $err.='<p style="color:red">Ooops! You have already signed the petition</p>';
} else {
if($first=='') $err.='<p style="color:red">Your First Name is empty</p>';
if($last=='') $err.='<p style="color:red">Your Last Name is empty</p>';
if($glvar=='') $err.='<p style="color:red">Your GLVAR ID is empty</p>';
}
}
?>
我個人認爲你錯過了'頭information'。你有'mail(「[email protected]」,「新的簽名簽名人」,$ message);' - 應該看起來像這樣的郵件(「[email protected]」,「新的簽名簽名者」 $ headers);' - 在** $ message **之後添加** $ headers **。然後添加諸如'$ headers =「From:」之類的東西。 $ senderName。 「<」。 $ senderEmail。 「>」;'在腳本的頂部。 –
您將'd91b8401,d91b8401 @ p3nlhg1159.shr.prod.phx3.secureserver.net'作爲'From:'返回的原因就是,您的標題中有** no **'From:' 。 –
加上'message =「...'中的連接點,第2,第3和第4應顯示爲'message。=」...'。好吧,我要去「拉赫蘭德」。 –