$ _POST无法正常工作

时间:2012-01-27 06:33:55

标签: php mysql

我无法让我的$ _POST出于某种原因工作......这就是代码:

* 从href onClick事件调用的Javascript: *

function feedVote(postId, vote) {
    if(vote == "1") {
        document.getElementById('voteUpSpan' + postId).innerHTML = "Thank you for voting!";
        document.getElementById('voteDownSpan' + postId).innerHTML = "";
        var i = new Image();
        var d = new Date();
        i.src = "voteUp.php?time=" + d.getTime() + "&postId=" + postId;
    }
}

因此它会欺骗图像并运行我的voteUp.php页面传递参数而不更改当前页面。

<?php
    $id = $_POST['postId'];
    $con = mysql_connect("localhost", "username", "password");
    if (!$con)
    {
        die('Could not connect: ' . mysql_error());
    }
    mysql_select_db("database", $con);

    $update = mysql_query("UPDATE posts SET upvote = upvote + 1 WHERE id = '$id'");

    mysql_close($con);
    echo "$id";
?>

echo&#34; $ id&#34 ;;什么都没有返回所以它显然甚至没有在$ id中放入一个变量,这就是为什么我的sql语句没有被运行但为什么......

当我在Google Crome中运行代码时,我使用Inspect源代码下的网络跟踪功能,这是它在运行我的欺骗图像时触发的网址。

test.com/voteUp.php?time=1327644851907&postId=35

**我编辑了一些信息,例如我的数据库名称和用户名/密码以及网站网址。

3 个答案:

答案 0 :(得分:3)

这些参数称为 GET 参数,而不是POST。

使用$_GET超级全局(以与$_POST相同的方式使用它)来访问它们。

答案 1 :(得分:1)

如果你想发帖,请做一些jquery ajax帖子,如下:

而不是:

var i = new Image();
var d = new Date();
i.src = "voteUp.php?time=" + d.getTime() + "&postId=" + postId;

改变它:

$.ajax({
    url: "voteUp.php",
    cache: false,
    type: 'POST',
    data: {time: d.getTime(), postId: postId},
    success: function(data){}
});

注意:您需要在该网页上使用jquery!

答案 2 :(得分:0)

使用?数组而不是$_GET访问网址的查询字符串中显示的变量(即在$_POST字符之后)。