gpt4 book ai didi

PHP:利用 exit();或者死();在 header ("Location: "之后);

转载 作者:IT王子 更新时间:2023-10-29 00:09:58 25 4
gpt4 key购买 nike

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

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

我最近读了一篇关于 exit();die(); 的文章,我不知道我应该使用它们。据我了解,他们使它结束了 PHP?那是对的吗?我可以为此努力的最佳方法是什么,只需在 header(); 之后直接添加其中一个函数即可。我有执行吗?

我有 AJAX,jQuery 读取我的 login.php/register.php,这会以任何方式影响吗?

编辑:除了在 header(); 之后,我还应该在哪里使用 exit();die(); 函数? exit(); 更多地用于 PHP 而 die(); 更多地用于 Perl?

最佳答案

我也一直在寻找这个问题的答案。我发现了什么:

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

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

区别:

我也想知道函数之间的区别,因为它似乎没有。但是,在 PHP 中,Header 输出存在明显差异。在下面的示例中,我选择使用不同的 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() 不会。是否要保持连接打开或关闭取决于性能。两者都有优点和缺点,取决于您的具体要求。

HTTP persistent connections on Wiki

关于PHP:利用 exit();或者死();在 header ("Location: "之后);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8665985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com