mail()防止JSON响应

时间:2013-05-06 20:28:55

标签: php jquery ajax json

我使用以下jQuery代码将表单数据发送到PHP处理脚本,该脚本可以在数据库中输入新的列表或更新现有列表。

该网站列出了待售的游艇和游艇。它工作得很好,但现在客户希望在列出新船时收到电子邮件通知。我在PHP处理脚本中添加了代码来执行此操作,但如果由于某种原因我使用mail()它会阻止成功函数在下面的jQuery代码中工作。

mail()函数是唯一影响它的函数。如果我评论该行,它会再次起作用。

有关正在发生的事情的任何想法?

$.ajax({  
        type: "POST",  
        url: "scripts/listing_form_json_exec.php", 
        dataType: 'json',   
        data: JSON.stringify(dataString),
        success: function(data) { 
            var yacht_id = (data);
            $('#manage_images_link').attr('href', 'manage_images.php?yacht_id=' + yacht_id);                
            $('input[name=yacht_id]').val(yacht_id);
            $('img.saved').show();
            $('img.saved').fadeOut(3000);
            $('div#button_frame').show();
            $('#errors_container').html('');

        } 
    });

修改

PHP脚本很长,但这是令人讨厌的部分

    $_SESSION['SESS_YAUCHT_ID'] = $yacht_id;
echo json_encode($yacht_id);

if (isset($message)) {
    //mail($to, $subject, $message, $headers);
}

我尝试将mail()函数放在不同的地方,但无论我把它放在哪里都会发生同样的事情。上面我已将mail()函数注释掉,一切正常。如果我取消注释,脚本将停止工作。

2 个答案:

答案 0 :(得分:0)

<强>尝试:

$_SESSION['SESS_YAUCHT_ID'] = $yacht_id;
echo json_encode($yacht_id);

if (isset($message)) {
    if(@mail($to, $subject, $message, $headers)){
            //ok
    } else {
            //error
    }
}

答案 1 :(得分:0)

事实证明,因为我在本地测试,所以一旦我没有连接到邮件服务器 将它上传到服务器一切正常。

感谢您提出的建议,因为事实证明这是愚蠢的。