当前位置: 首页 > 面试题库 >

PHP:利用exit(); 或者死(); 在标头之后(“ Location:”);

充小云
2023-03-14
问题内容

我有一个简单的用户登录/注册系统

// execute queries, set cookies, etc. here
header("Location: " . getenv("HTTP_REFERER"));

我最近看了一个关于交exit();die();,不知道,我本来应该使用这些。据我了解,它们使PHP终止了吗?那是对的吗?我可以解决此问题的最好方法是,直接在everHeader()之后直接添加这些函数之一;我有死刑吗?

我有AJAX,jQuery通过我的login.php / register.php阅读,这会以任何方式受到影响吗?

编辑:除了header()之后,我还应该在哪里使用exit();or
die();函数?而在exit();更多的使用PHP左右,而die();周围的Perl更多的使用呢?


问题答案:

我也一直在寻找答案。我发现:

为什么死()或退出():

如果您未header('Location: http://something')在脚本后放置die()或exit(),则脚本可能会继续导致意外行为。例如,这可能会导致泄露您实际上想要通过重定向(HTTP
301)阻止的内容。最终用户可能无法直接看到上述内容,因为浏览器可能无法呈现(由于301)。结论,exit()和die()函数可阻止脚本继续运行。

区别:

我还想知道函数之间的区别,因为 似乎
没有区别。但是,在PHP中,Header输出有明显的不同。在下面的示例中,我选择使用其他标头,但为了显示出exit()和die()之间的区别并不重要。

Exit()的作用

<?php
    header('HTTP/1.1 304 Not Modified');
    exit();
?>

结果是:

HTTP/1.1 304 Not Modified 
Connection: Keep-Alive 
Keep-Alive: timeout=5, max=100

Die()在行动

<?php
    header('HTTP/1.1 304 Not Modified');
    die();
?>

结果是:

HTTP/1.1 304 Not Modified 
Connection: close

区别

因此, die() 关闭连接,而 exit() 没有关闭。是否要保持打开或关闭连接取决于性能。两者都有优点和缺点,并取决于您的特定要求。



 类似资料:
  • 问题内容: 调用重定向函数标头后,是否应该调用exit? 谢谢 问题答案: 你绝对应该。否则脚本执行不会终止。仅设置另一个标头不足以重定向。

  • 问题内容: 您知道,如果要在PHP中重定向用户,可以使用标头函数: 众所周知,在调用后放置一个“ a” ,以防止执行其他php代码也是一种很好的做法。所以我的问题是:标头位置调用之后的代码能否有效执行?在什么情况下?恶意用户能否完全忽略该呼叫?怎么样? 问题答案: 标头位置调用之后的代码能否有效执行? 是的,总是。的不仅是数据线 ,要求 浏览器重定向。该页面的其余部分 仍将 由PHP 提供服务 ,

  • 本文向大家介绍exit(0)与exit(1)两者之间的区别,包括了exit(0)与exit(1)两者之间的区别的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将了解exit和exit(1)之间的区别。 exit 它是便携式的。 它告知程序成功终止或完成。 它告知程序执行时终止而没有任何错误。 “ EXIT_SUCCESS”宏用于返回代码0。 可以将“ EXIT_SUCCESS”定义为标准零

  • 如果我使用这样的代码: 它必须死还是你可以在之后提出不同的查询?比如一个预定的函数,它将错误的日志写入另一个表?如: 或者之后还有什么选项?留档里没找到,有线索不胜感激。

  • 我根据本教程制作了一个联系表单:http://blog.teamtreehouse.com/create-ajax-contact-form 我在我的服务器上使用的是PHP5.3.10-1Ubuntu3.4版本,但我遇到了的问题,这正是上面链接中的示例教程所使用的。我读过仅适用于PHP5.4。因此,我转而使用。 我的表单工作得很好,提交时显示成功消息,而不是使用时出现错误,但我的PHP不是那么好,

  • 如何在nodejs中发送文件,我正在创建一个页面应用程序,所以我只想abcd.html页面首次按要求交付,这是我的代码 app.js 对页面的响应 发送后,它总是给出无法设置的标题,下面是控制台输出 错误:SendStream禁止。SendStream出错(/home/pitu/CODING/NODE-PROJECTS/chichat/NODE\u modules/express/NODE\u m