setcookie 并询问投票系统的 cookie 值

setcookie and ask cookie value for voting system

我想设置一个 cookie,让用户在 4 个类别(悲伤、愤怒、有趣、酷)中只投票一次。 我是初学者,所以我知道我的代码很不方便,但这是我的第一次尝试,所以多几行或少几行对我来说并不重要。 由于某种原因,浏览器不会加载 vote.php 文件(当用户单击一个投票选项时调用)。我只是找不到错误...也许有人会立即看到它? [在我插入 cookie 之前,代码文件加载完美,所以调用不是问题。]

<?php
require_once('connect.php');
$newsid = $_POST['id'];

if (isset($_POST['submit'])) {
    if(isset($_COOKIE['votecookie']) && $_COOKIE['votecookie'] !== 'sad') {
        if($_COOKIE['votecookie'] == 'cool') {  
            $query = mysql_query('UPDATE `index` SET cool=cool-1 WHERE id = {$newsid}');
        }
        if($_COOKIE['votecookie'] == 'funny') { 
            $query = mysql_query('UPDATE `index` SET funny=funny-1 WHERE id = {$newsid}');
        }
        if($_COOKIE['votecookie'] == 'sad') {   
            $query = mysql_query('UPDATE `index` SET enraging=enraging-1 WHERE id = {$newsid}');
        }
        setcookie('votecookie', 'sad');
        $query = mysql_query('UPDATE `index` SET sad=sad+1 WHERE id = '{$newsid}'');
        $hosts = $_SERVER['HTTP_HOST'];
        $uris = rtrim(dirname($_SERVER['PHP_SELF']), '/\');
        $extras = 'news.php?id={$newsid}&sad=1';
        header('Location: http://$hosts$uris/$extras');
        exit;
    }
    if(!isset($_COOKIE['votecookie']) {
            setcookie('votecookie', 'sad');
            $query = mysql_query('UPDATE `index` SET sad=sad+1 WHERE id = '{$newsid}'');
            $hosts = $_SERVER['HTTP_HOST'];
            $uris = rtrim(dirname($_SERVER['PHP_SELF']), '/\');
            $extras = 'news.php?id={$newsid}&sad=1';
            header('Location: http://$hosts$uris/$extras');
            exit;
        }

        if(isset($_COOKIE['votecookie']) && $_COOKIE['votecookie'] == 'sad') {
            $hosts= $_SERVER['HTTP_HOST'];
            $uris = rtrim(dirname($_SERVER['PHP_SELF']), '/\');
            $extras = 'news.php?id={$newsid}&sad=0';
            header('Location: http://$hosts$uris/$extras');
            exit;
        }
        }
    else {
        $hosts= $_SERVER['HTTP_HOST'];
        $uris = rtrim(dirname($_SERVER['PHP_SELF']), '/\');
        $extras = 'news.php?id={$newsid}&sad=0';
        header('Location: http://$hosts$uris/$extras');
        exit;
        ?>

如果有人对答案感兴趣:我现在就是这样做的(我的代码中还有一些错误和推理错误)。

<?php
require_once('connect.php');
$newsid = $_POST['id'];
if (isset($_POST['submit'])) {
    if(isset($_COOKIE[$newsid]) && $_COOKIE[$newsid] != 'sad') {
        if($_COOKIE[$newsid] == 'cool') {   
        $query = mysql_query("UPDATE `index` SET cool=cool-1 WHERE id = '{$newsid}'");
        }
        if($_COOKIE[$newsid] == 'funny') {  
        $query = mysql_query("UPDATE `index` SET funny=funny-1 WHERE id = '{$newsid}'");
        }
        if($_COOKIE[$newsid] == 'enraging') {   
        $query = mysql_query("UPDATE `index` SET enraging=enraging-1 WHERE id = '{$newsid}'");
        }
    $query = mysql_query("UPDATE `index` SET sad=sad+1 WHERE id = '{$newsid}'");
    setcookie($newsid, "sad", time() + (10 * 365 * 24 * 60 * 60));
    $hosts = $_SERVER['HTTP_HOST'];
    $uris = rtrim(dirname($_SERVER['PHP_SELF']), '/\');
    $extras = "news.php?id={$newsid}&sad=1";
    header("Location: http://$hosts$uris/$extras");
        exit;
    }
    if(!isset($_COOKIE[$newsid])) {
        $query = mysql_query("UPDATE `index` SET sad=sad+1 WHERE id = '{$newsid}'");
        setcookie($newsid, "sad", time() + (10 * 365 * 24 * 60 * 60));
        $hosts = $_SERVER['HTTP_HOST'];
        $uris = rtrim(dirname($_SERVER['PHP_SELF']), '/\');
        $extras = "news.php?id={$newsid}&sad=1";
        header("Location: http://$hosts$uris/$extras");
            exit;
    }   
    if(isset($_COOKIE[$newsid]) && $_COOKIE[$newsid] == 'sad') {
        $hosts= $_SERVER['HTTP_HOST'];
        $uris = rtrim(dirname($_SERVER['PHP_SELF']), '/\');
        $extras = "news.php?id={$newsid}&sad=0";
        header("Location: http://$hosts$uris/$extras");
            exit;
    }
}
else {
    $hosts= $_SERVER['HTTP_HOST'];
    $uris = rtrim(dirname($_SERVER['PHP_SELF']), '/\');
    $extras = "news.php?id={$newsid}&sad=0";
    header("Location: http://$hosts$uris/$extras");
    exit;
}
?>