php - 我需要在 header ("Location: http://localhost/..."之后使用 exit 吗)?

标签 php validation

我正在创建一个脚本来验证表单,我在问自己一个问题。当我使用 header 时(请参见下面的示例),我是否需要在之后立即使用退出?我的意思是,使用 header 是否也意味着它默认退出,因此我不需要使用命令 exit?

// cancel button clicked
if (isset($_POST['cancel'])) {
  header("Location: http://localhost/admin/tracks.php");
  exit;
}

echo '<p>$name</p>'

最佳答案

你应该调用 exit() 因为 header() 不会自动停止脚本的执行 - 或者如果它自动停止(老实说我不是 100%在那上面),它绝对不会立即停止脚本。

例如,试试这个代码:

<?php

  header("Location: http://www.google.com");
  unlink(__FILE__);

?>

这个小脚本使用 header() 将您重定向到 Google,然后自行删除。如果你运行它,你会注意到在你被重定向之后,文件仍然被删除了。这意味着即使 header() 调用重定向了您,unlink() 调用仍会执行。

关于php - 我需要在 header ("Location: http://localhost/..."之后使用 exit 吗)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5527835/

相关文章:

php - Zend Framework MVC 重定向到不同的 Controller 和操作

php - 在 CakePHP 中按 1 更新行

validation - Richfaces Datatable 在验证失败时丢失提交的输入值

java - Spring:验证整个对象的方法

JQuery 和验证插件

java - java中的业务数据验证方法

php - 防止垃圾邮件发送者在网站上发布不受登录 ID 保护的表单

php - 从 .EXE 中提取 .PNG?

php - 如何通过在 codeigniter 中仅发送参数来编写用于获取记录的函数?

php - 为什么我们提交表单时会生成一个新的 token