2013-06-21 40 views
0

我創建了一個PHP腳本的請願網站,允許簽名者在我的網站的後臺簽名並顯示它。我期望完成的是向腳本添加郵件功能,以便將簽名者信息以及時間戳,IP地址和用戶代理ID發送到我的電子郵件地址。任何援助與此將不勝感激。我是PHP新手,自學自學代碼。添加郵件功能到一個已經存在的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); 

      mail("[email protected]", "Subject", "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>'; 

    } 

} 
+0

使用'mail()'函數 – DevZer0

+0

我有這個功能,但是如何定義帶時間戳,IP地址和用戶代理ID的郵件設置? – user2507414

回答

0
mail("[email protected]", "Subject", "message"); 

您可以「主題」和「消息」分開是因爲你想要的任何東西。把它想象成電子郵件中的3個字段(「收件人:」,「主題行」,「電子郵件的內容」)。

所以,你可以創建通過電子郵件發送給您一個變量,如:

$message = "IP: $ip" . PHP_EOL; 
$message .= "TIME: " . date('Y-m-d H:i:s'); 
$message .= "UserAgent: $glvar_id" . PHP_EOL; 

mail("[email protected]", "Subject of email", $message); 

這將會寄給您一封電子郵件看起來像:

Subject: Subject of email 
Contents: 
IP: 127.0.0.1 
Time: 2013-06-21 12:30:12 
UserAgent: whatever-this-id-looks-like 

順便說一句,我不知道你所以我用$ glvar_id作爲UserAgent,但我懷疑這是否正確

0

這裏是如何使用帶有標題的郵件功能。頭與\r\n

$to  = '[email protected]'; 
$subject = 'the subject'; 
$message = 'hello'; 
$headers = 'From: [email protected]' . "\r\n" . 
'Reply-To: [email protected]' . "\r\n" . 
'X-Originating-IP: ' . $_SERVER['REMOTE_ADDR'] . "\r\n" . 
'X-Mailer: PHP/' . phpversion(); 

mail($to, $subject, $message, $headers); 
?> 
0

mail("[email protected]", "Whatever subject you want", "Thanks, blah blah blah\nIP Address: " . $_SERVER['REMOTE_ADDR'] . "\nDate" . date("M j Y @ H:i:s") . "\nUser Agent: " . $_SERVER['HTTP_USER_AGENT'], "From: [email protected]");

不確定是否需要人類可讀的日期或unix時間戳,如果需要時間戳替換爲time()而不是date()函數。查看date()文檔的不同格式。而「\ n」是換行符(以防萬一你不知道)。

我注意到你的代碼中沒有發送任何頭文件。上面代碼中的第四個參數(「From:[email protected]」)將在郵件中添加一個「發件人」字段,使其在收件箱中看起來更好。

+0

我遵循你的腳本,但我仍然很新,並且如何添加他們的名字和glvar ID以及混淆。我感謝你對這一切的幫助。 – user2507414

相關問題