簡體   English   中英

按鈕點擊計數器[PHP]

[英]Button click counter [PHP]

我試圖創建一個變量來存儲點擊按鈕的計數。 不幸的是我得到了這個錯誤:

 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>

誰知道我做錯了什么?

或者,如果要保存計數器,則可以使用會話。 像這樣:

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. PHP代碼應該高於HTML,HTML代碼將在PHP代碼之后。 這樣$counter變量將被初始化。

  2. PHP和HTML代碼應該在同一頁面上。


由於OP編輯了問題:那么,行$counter = isset($_POST['counter']) ? $_POST['counter'] : 0; $counter = isset($_POST['counter']) ? $_POST['counter'] : 0; 不應該在if-block中。 可以肯定的是,**將此行作為PHP文件的第一行。 然后只有$counter變量可用於整個頁面。

因此沒有定義變量你得到這個錯誤。

要隱藏此錯誤, error_reporting(0)寫入頁面頂部error_reporting(0)

檢查this..how定義變量?

你試圖使用一個欠載的變量

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

這個var不存在,因為錯誤說。 猜你的代碼設置錯誤了。

喜歡php不在同一側或不在html之上

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM