php/html/click counter dos';不起作用


php/html: click counter doesn't work

我正在尝试创建一个点击计数,每次点击按钮都会调用incrementClickCount()函数,该函数会将变量$count=0设置为静态,递增$count变量并显示它。我不明白为什么它不起作用。

<html>
<head>
    <title>Click Counter</title>
    <?php
        if(isset($_POST['clicks'])){
            incrementClickCount();
        }
        function incrementClickCount(){
            static $count=0;
            $count++;
            echo $count . " and counting...";
        }
    ?>
</head>
<body>
    <form name="form1" method="POST" action="<?php $_SERVER['PHP_SELF']; ?>">
        <input type="submit" name="clicks" value="click me!">
    </form>
</body>

在代码中,当调用函数incrementClickCount()时,$counter总是设置为0并递增。。。您只需要声明$counter变量一次,并将其保存到某个地方,例如会话

对于那些正在为同样的问题而挣扎的人。这是我修复的代码。非常感谢那些帮助我的人。Zdenek Leitkep和Andrey建议使用会话。我在这里发现了如何使用它:http://php.net/manual/en/session.examples.basic.php

<html>
<head>
    <title>Sessions: Click Counter</title>
    <?php
        session_start();
        if(isset($_POST['clicks'])){
            incrementClickCount();
        }
        function incrementClickCount(){
            if (!isset($_SESSION['count'])) {
                $_SESSION['count'] = 0;
            }else{
                $_SESSION['count']++;
                print $_SESSION['count'];
            }
        }
    ?>
</head>
<body>
    <form name="form1" method="POST" action="<?php $_SERVER['PHP_SELF'];?>">
        <input type="submit" name="clicks" value="click me!">
    </form>
</body>
</html>