簡體   English   中英

PHP在頁面之間傳遞消息

[英]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.

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