php / html:点击计数器不起作用

时间:2015-03-19 10:37:19

标签: php

我正在尝试创建一个点击计数,每次单击该按钮都会调用一个incrementClickCount()函数,该函数将变量$ count = 0设置为static,递增$ 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>

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

对于那些正在努力解决同样问题的人。这是我的代码修复。非常感谢那些帮助过我的人。 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>