繁体   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