php - 重定向 header

标签 php

我有一份电子邮件表格,我正在验证日期,它是预订表格。我正在做的是,当开始日期大于结束日期时,它会给我一条消息,要求修复日期并重定向到页面。我有 2 个页面,即预订表单页面,当我点击提交时,它会转到 contact_engine 页面以验证并发送电子邮件:

我是这么说的:

if ($datebegin >= $dateend){
    echo '<script>alert("Fix the Date");</script>'; 

exit;

问题是当它退出时,它停留在功能页面中,我希望它退出但转到上一页。有人可以给我一些帮助吗?我尝试使用 exit 来代替。我尝试将其与 header("Refresh: 1; url=http:/website.com/booking.php"); 一起使用,但不知何故,这将我带到 sent_page_booking 页面.

最佳答案

我建议采用另一种方法:通过验证处理表单提交的正确方法是使用 Post-Redirect-Get 技术:

  1. 用户提交表单(即 POST 请求)。
  2. 表格有效吗?如果是,请对其进行处理并使用 GET重定向至确认页面。
  3. 如果表单无效,则仅显示带有错误消息的表单(作为对原始 POST 请求的响应。

举例说明:

+--------+   POST   +--------+   Yes    +----------+   GET   +--------------+
| Submit | -------> | Valid? | -------> | Redirect | ------> | Confirmation |
+--------+          +--------+          +----------+         +--------------+
     ^                   |
     |                   | No
     +-------------------+

关于php - 重定向 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11373766/

相关文章:

PHPExcel 未插入 MySQL 数据库

php - 连接 HTML 和 PHP 以创建图像链接

php - CakePHP 中的多个 CSS 和 id

php - 如何配置 WAMP (localhost) 以使用 Gmail 发送电子邮件?

PHP 异步函数调用与 AJAX

php - 为什么 PHP 中的日期时间到时间戳转换不起作用?

php - 在 Laravel 中通过表格获得一行的最佳方法是什么?

php - 您如何知道两个不同版本之间的接口(interface)差异?

php - 使用基于 URL 参数的 PHP 更改 Web 文本

php - .htaccess 重写友好的 URL