按钮点击计数器[PHP]

时间:2014-08-14 10:42:08

标签: php html

我尝试创建一个变量来存储点击按钮的数量。不幸的是我得到了这个错误:

 Undefined variable: counter

这是我的代码:

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $counter = isset($_POST['counter']) ? $_POST['counter'] : 0;
    if(isset($_POST["button"])){
        $counter++;
        echo $counter;
    }
}

这是一种形式:

<form action = "<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method = post>
    <input type = "submit" name = "button" value = "Submit" >
    <input type = "hidden" name = "counter" value = "<?php print $counter; ?>"; />
</form>

有人知道我做错了吗?

4 个答案:

答案 0 :(得分:3)

或者,如果要保存计数器,可以使用会话。像这样:

session_start();

// if counter is not set, set to zero
if(!isset($_SESSION['counter'])) {
    $_SESSION['counter'] = 0;
}

// if button is pressed, increment counter
if(isset($_POST['button'])) {
    ++$_SESSION['counter'];
}    

// reset counter
if(isset($_POST['reset'])) {
    $_SESSION['counter'] = 0;
}

?>

<form method="POST">
    <input type="hidden" name="counter" value="<?php echo $_SESSION['counter']; ?>" />
    <input type="submit" name="button" value="Counter" />
    <input type="submit" name="reset" value="Reset" />
    <br/><?php echo $_SESSION['counter']; ?>
</form>

顺便说一句,您当前的代码会显示Undefined index error,因为您在表单上echoing $counter但尚未初始化它。它只会在第一次提交表单时存在,而不是在第一次正常加载页面时存在。

答案 1 :(得分:1)

您的代码中没有错误。它在我的工作。你需要检查两点:

  1. PHP代码应该在HTML之上,HTML代码将在PHP代码之后。因此$counter变量将被初始化。

  2. PHP和HTML代码应位于同一页面上。


  3. 由于OP编辑了问题:因此,行$counter = isset($_POST['counter']) ? $_POST['counter'] : 0;不应该在if-block中。可以肯定的是,**将此行作为PHP文件的第一行。然后,整个页面只能使用$counter变量。

答案 2 :(得分:0)

因为这个没有定义变量你得到这个错误。

要隐藏此错误,请将此内容写入页面error_reporting(0)

检查this..how to defined variable?

答案 3 :(得分:0)

您尝试使用未取消的变量

<input type = "hidden" name = "counter" value = "<?php print $counter; ?>"; />
................................................................^

这个var不存在,因为错误说明了。猜你的代码设置错误。

像php不在同一侧或不在html之上