0

我看过很多其他类似的帖子,但我看不到我做错了什么。我还读到这可能是托管(Heroku)的问题,所以我创建了一张票,但 3 天后没有答案。

以下是发送信息的代码:

(讨论.php)

    <script type="text/javascript">
        $(function() {
            $('#ideasubmit').click(function() {
                console.log();
                $('#ideacontainer').append('<img src="images/loading.gif" alt="Please Wait" id="idealoading" />');

                var ideatitle = $('#ideatitle').val();
                var ideafbid = $('#ideafbid').val();
                var idea = $('#idea').val();

                $.ajax({
                    url: 'ajaxsqli.php',
                    type: 'POST',
                    data: 'ideatitle=' + ideatitle + '&ideafbid=' + ideafbid + '&idea=' + idea,

                    success: function(result) {
                        $('#idearesponse').remove();
                        $('#ideacontainer').append('<p id="idearesponse">' + result + '</p>');
                        $('#idealoading').fadeOut(500, function() {
                            $(this).remove();
                        });
                    }
                });
                return false;
            });
        });

下面是发送信息时出现错误的代码文件:

(ajaxsqli.php)

    $db = new db;

$query = "INSERT into comments(user_fbid, discuss_type, discuss_post_title, discuss_post, date) VALUES (?, ?, ?, ?, )";

$stmt = $db->stmt_init();
if($stmt->prepare($query)) {
    $stmt->bind_param('iissi', $_POST['ideafbid'], 1, $_POST['ideatitle'], $_POST['idea'], date('Ymd'));
    $stmt->execute();
}

if($stmt) {
echo "Thank you. We'll be in touch with you shortly!";
} else {
echo "There was a problem. Please  try again later.";
}

?>

奇怪的是我在 3 天前让它工作了,我去改进了一些代码,现在我无法让它工作,即使我恢复了备份。

这是完整的错误消息:

加载资源失败:服务器响应状态为 500(内部服务器错误)并指向 ajaxsqli.php

使用 Chrome Inspect Elements 我可以看到 POST 正在发布信息,但没有响应信息。

这段代码有什么问题吗?

4

1 回答 1

1

错误通常500是指 php.ini 中的问题。使用参数加载ajaxsqli.php到浏览器中(更改$_POST$_REQUEST然后您可以使用查询字符串。EG

$db = new db;

$query = "INSERT into comments(user_fbid, discuss_type, discuss_post_title, discuss_post, date) VALUES (?, ?, ?, ?, )";

$stmt = $db->stmt_init();
if($stmt->prepare($query)) {
    $stmt->bind_param('iissi', $_REQUEST['ideafbid'], 1, $_REQUEST['ideatitle'], $_REQUEST['idea'], date('Ymd'));
    $stmt->execute();
}

if($stmt) {
echo "Thank you. We'll be in touch with you shortly!";
} else {
echo "There was a problem. Please  try again later.";
}

?>

然后去http://yourhost/ajaxsqli.php?ideafbid=data&ideatitle=data&idea=data看看PHP报错是什么

于 2012-04-16T08:24:02.133 回答