PHP在页面之间传递消息

时间:2009-01-08 17:35:06

标签: php

我在页面上有一个表单,用户有输入来编辑XML文件,表单的操作是将其发送到单独的PHP脚本,在脚本提交后进行编辑。该脚本将写入成功或失败,无论是通过标题重定向到表单页面的方式。是否有一种简单的方法可以将确认或失败消息传回表单页面?我可以在URL中完成它,但我宁愿保持干净整洁。

2 个答案:

答案 0 :(得分:16)

我看到它完成的方式(我个人使用)只是会话。

// 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']);
}

这是非常基本的,但如果你想要多条消息等,你可以从那里扩展它。最重要的是,我认为会议是最好的。

答案 1 :(得分:2)

我更喜欢将表单处理代码和表单显示代码放在同一页面中。如果你真的想要将它分开,你可以将代码移动到另一个文件并从表单文件中包含该文件,但是从客户端看,它看起来就像是相同的PHP文件。

然后,在显示表单之前,始终提交到表单并在顶部执行错误检查。如果有要显示的消息,您只需再次呈现该表单并显示该消息以及用户的数据,以便他们可以解决问题。他们可以再次提交,您可以再次检查错误。如果他们成功提交,您可以将其重定向到其他地方,或者只显示“成功”消息。