我是编程学生,目前我们正在看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。任何想法有什么不对?
答案 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}}