簡體   English   中英

PHP:為什么isset無法正常工作

[英]PHP: Why isset is not working

我是PHP的新手。 這是一個非常基本的問題。
兩種情況:

1.默認情況下,應顯示6月。
2.如果用戶單擊提交按鈕,則應顯示Jan。

simple.php(PHP + HTML)
PHP:

if(isset($_POST['submit']))
   echo "Jan";
else
echo "June";

HTML:

 <form method="post" action="simple.php" target='_self'>
        <input type='submit' id ="submit" value='Submit' name="submit"/>
 </form>

現在,當您單擊“提交”按鈕時,它顯示為六月。
請向我建議我要去哪里錯了。 請給我建議。

該代碼似乎在我的PC上正常工作。 您是否用<?php?>標記<?php了PHP代碼?

在此處輸入圖片說明

這是我使用的代碼(simple.php):

<?php
    if(isset($_POST['submit']))
       echo "Jan";
    else
        echo "June";
?>

<form method="post" action="simple.php" target='_self'>
    <input type='submit' id ="submit" value='Submit' name="submit"/>
</form>

(順便說一句,您應該在HTML代碼中的id標記后面刪除空格)

嘗試檢查:

if (!empty($_POST))

要么

if ($_SERVER['REQUEST_METHOD'] == 'POST')

我認為單擊一次提交按鈕后,您只按了f5即可再次提交表單,而不是刷新頁面。

只需選擇地址欄,然后按Enter,然后每次進行檢查。

即使更改了內容, F5也會給您相同的頁面,因為它可能會從緩存中加載頁面。

Ctrl+F5將導致瀏覽器丟棄緩存並向服務器請求新緩存,服務器可能會忽略無緩存頭,並為服務器端緩存的頁面提供服務。 因此,如果服務器忽略無緩存頭,則即使Ctrl + F5也會返回該頁面的舊版本。 請求標頭包含一些POST數據。 無論您做什么,重新加載頁面時,都會再次發送rquest。

簡單的解決方案是重定向到新的頁面(如果不相同)。 此模式在Web應用程序中非常常見,稱為Post / Redirect / Get。 所有表單都進行POST是很典型的,如果成功,則應該進行重定向。

請閱讀此以獲取更多信息GET / POST / REDIRECT

暫無
暫無

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

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