[英]PHP passing messages between pages
我在頁面上有一個表單,用戶有輸入來編輯XML文件,表單的操作是將其發送到單獨的PHP腳本,在腳本提交后進行編輯。 該腳本將寫入成功或失敗,無論是通過標題重定向到表單頁面的方式。 是否有一種簡單的方法可以將確認或失敗消息傳回表單頁面? 我可以在URL中完成它,但我寧願保持干凈的外觀。
我已經看到它(我個人使用)的方式就是會話。
// process something
if($success) {
flash_message('success','Did whatever successfully.');
} else {
flash_message('error','Oops, something went wrong.');
}
header('Location: whatever.php');
然后在其他地方,在您的庫或函數文件或其他任何地方:
function flash_message($type, $message) {
// start session if not started
$_SESSION['message'] = array('type' => $type, 'message' => $message);
}
然后在視圖/頁面中,您可以執行以下操作:
if(isset($_SESSION['message'])) {
printf("<div class='message %s'>%s</div>", $_SESSION['message']['type'],
$_SESSION['message']['message']);
unset($_SESSION['message']);
}
這是非常基本的,但如果你想要多條消息等,你可以從那里擴展它。 最重要的是,我認為會議是最好的。
我更喜歡將表單處理代碼和表單顯示代碼放在同一頁面中。 如果你真的想要將它分開,你可以將代碼移動到另一個文件並從表單文件中包含該文件,但是從客戶端看,它看起來就像是同一個PHP文件。
然后,始終提交到表單並在顯示表單之前在頂部進行錯誤檢查。 如果有要顯示的消息,您只需再次呈現該表單並顯示該消息以及用戶的數據,以便他們可以解決問題。 他們可以再次提交,您可以再次檢查錯誤。 如果他們成功提交,您可以將其重定向到其他地方,或者只顯示“成功”消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.