PHP点击计数器不起作用

时间:2015-05-29 01:19:40

标签: php counter

我是编程学生,目前我们正在看PHP语言。我需要在PHP中使用一个点击计数器来了解用户点击链接的次数,然后打印它,所以这是我的代码:

$i=0;

$url = ($_SERVER['QUERY_STRING']);

switch($url){

case 'action=add':
    $i++;
    break;
case'action=remove':
    $i--;
    break;

}
echo "you clicked $i times";

我的index.php上有2个链接,带有href ='action = add'或'action = remove'。 我看到它的方式是,每次我点击一个链接,它将查询字符串添加到我的网址,因此应该增加或减少$ i,但事实并非如此。我的$ i等于1或-1。任何想法有什么不对?

2 个答案:

答案 0 :(得分:0)

原因是因为你没有存储$ i的价值。
因此,每次调用脚本时,$ i都会使用值0进行初始化,而不是从旧值开始。

答案 1 :(得分:0)

你想通过简单地通过URL中的参数传递它吗?

使用参数内的计数器:

// If the session haven't started yet, start it
if (!session_id())
    session_start();

$counter = 0;

// Check if the 'c' saved in the sessions and its an numeric 
if (!empty($_SESSION["c"]) && is_numeric($_SESSION["c"]))
    $counter = $_SESSION["c"];


$action = isset($_GET["action"]) ? $_GET["action"] : null;

if ($action == null)
    die("invalid action");

switch ($action)
{
    case "add":
    {
        $counter++;
        break;
    }

    case "remove":
    {
        // Decrease only when its greater then 0
        if ($counter > 0)
            $counter--;
        break;
    }

    default:
    {
        die("You can only 'add' or 'remove'");
        break;
    }
}

// Save the new counter for next time
$_SESSION["c"] = $counter;

echo "You clicked " . $counter . " times";

或在会话中使用它(将其保存一段时间):

{{1}}