这是通过Ajax发送的.这是JS:
$.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.');
}
}
});
Run Code Online (Sandbox Code Playgroud)
以及处理请求的PHP:
global $user;
echo $_POST['msg'];
echo $_POST['url'];
if(isset($_POST['msg']) && $_POST['msg'] !== ''){
mail('commons@example.com', 'Commons Feedback', 'url: ' + $_POST['url'] + $_POST['msg'], 'From: ' . $user->mail);
}else{
echo 'ajaxError - no msg';
}
Run Code Online (Sandbox Code Playgroud)
您可以在success()回调函数中看到我正在将响应记录到控制台,并且此响应由echoPHP代码开头附近的两个语句组成.最终在控制台中的字符串是正确的; 它包含消息和URL.但是,我收到的实际电子邮件只包含内容中的数字0.
知道为什么吗?
在php中连接字符串的运算符.不是+.加号执行数字加法,然后将字符串转换为值0.
因此你需要改变
'url: ' + $_POST['url'] + $_POST['msg']
Run Code Online (Sandbox Code Playgroud)
至
'url: ' . $_POST['url'] . $_POST['msg']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |