這是通過Ajax發送的。這裏的JS:爲什麼mail()函數發送一個主體爲「0」的電子郵件?
$.ajax({
url: objCommon.ajax,
type: 'POST',
data: {type:'feedback', msg:$('.commonsFeedbackDiv').text(), url:window.location.href},
success: function(data){
console.log(data);
if(data.search('ajaxError') === -1){
console.log('sent');
}else if(data.search('msg')){
alert('Please enter a message.');
}
}
});
和處理請求的PHP:
global $user;
echo $_POST['msg'];
echo $_POST['url'];
if(isset($_POST['msg']) && $_POST['msg'] !== ''){
mail('[email protected]', 'Commons Feedback', 'url: ' + $_POST['url'] + $_POST['msg'], 'From: ' . $user->mail);
}else{
echo 'ajaxError - no msg';
}
您可以在我登錄到控制檯的響應success()
回調函數看,而且這種反應是由在PHP代碼開始附近的兩個echo
語句的後面。結束於控制檯的字符串是正確的;它包含消息和URL。但是,我收到的實際電子郵件僅包含內容中的數字0。
任何想法爲什麼?
而且不要忘了* *的sanitize您輸入! http://xkcd.com/327/ – Aif
我是 - 爲了這篇文章而刪除它。 – maxedison