亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

$_SESSION 顯示在點擊提交一次后不反映更改

$_SESSION 顯示在點擊提交一次后不反映更改

PHP
慕后森 2023-04-21 10:03:24
我正在創建一個個人資料頁面,可以在其中編輯用戶名。我似乎無法弄清楚如何在成功編輯后更新顯示在首頁的用戶名(即 Hi Kana?。?。該名稱是使用我頁面頂部的會話變量$_SESSION['username']生成的<?phpsession_start();if(isset($_POST['submit']) && isset($_SESSION['newusername'])){    unset($_SESSION['username']); //clear existing username session    $_SESSION['username'] = $_SESSION['newusername']; //replace with the new username    echo $_SESSION['username'];} else {    echo $_SESSION['username'];}?>在使用文本輸入上設置的不同名稱點擊提交按鈕后,它應該會發生變化,但事實并非如此。這些是我上面提到的代碼之后的代碼行。<?php$textinput = $_POST['textinput']; if(isset($_POST['submit'])){if(strlen($_POST['textinput']) < 2)) {$errormessage = 'too short';}else{$_SESSION['newusername'] = $textinput; //setup a new session for the new username to be used above.}}?>請注意,引用的兩組代碼在同一頁中。發生的情況是該名稱仍然顯示以前的名稱,據說已被覆蓋。我嘗試刷新頁面但它仍然沒有改變,我需要再次提交(第二次)以顯示新名稱。
查看完整描述

1 回答

?
largeQ

TA貢獻2039條經驗 獲得超8個贊

您可以而且應該大大簡化您的代碼。目前這里有各種不必要的操作。從語義上考慮你想要完成什么:

如果用戶提交了他們的姓名,則使用新值更新會話。然后輸出值。

就是這樣。讓你想要完成的事情的語義指導你如何完成它。啟動會話,檢查表單發布,有條件地更新值,輸出值的當前狀態。例如:

<?php

session_start();


// update the value

if(isset($_POST['submit'])) {

    $_SESSION['username'] = $_POST['textinput'];

}


// output the value

echo $_SESSION['username'];

?>

在沒有用戶名的情況下,您可能想要添加一個合理的默認值。那就像:


<?php

session_start();


// set a default value

if (!isset($_SESSION['username'])) {

    $_SESSION['username'] = "Default User";

}


// update the value

if(isset($_POST['submit'])) {

    $_SESSION['username'] = $_POST['textinput'];

}


// output the value

echo $_SESSION['username'];

?>


查看完整回答
反對 回復 2023-04-21
  • 1 回答
  • 0 關注
  • 126 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號