檢查後,沒有驗證我設置會話變量在我這裏header.php
:空()POST
<?php
session_start();
if(empty($_SESSION['name'])) {
?>
No name set! <br>
<form action="" method="post">
<input type="text" name="textName"/>
<input type="submit" name="submitName" value="Log in"/>
</form>
<?php
if(isset($_POST['submitName'])) {
$_SESSION['name'] = $_POST['textName'];
}
}
並驗證了name
變量被設置在我這裏指數:
<?php
include 'header.php';
if(!empty($_SESSION['name'])){
?>
<a href="session_kill.php">Log out</a>
<?php
}
?>
我可以確認會話變量存在,因爲出現了logout
鏈接。
通過表單提交名稱後,會話變量更新,但empty()
檢查不再發生,這意味着textarea
停留在頁面上,除非我刷新。
誰能告訴我爲什麼會發生這種情況?
你必須在顯示它之前處理數據,否則你會顯示未處理的數據......假設你有登錄表單,在檢查用戶登錄前是否顯示登錄表單,那麼你將不得不刷新頁面檢查您是否已登錄。 – 2016-11-22 11:32:48
爲什麼不使用isset();? –