gpt4 book ai didi

php - 在页面之间重定向时在 URL 末尾的奇怪#

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:41 25 4
gpt4 key购买 nike

我遇到的问题是#f1 在我的所有页面之间传递,#f1 指的是我的登录表单,例如 127.0.0.1/#f1 使用 div 标签显示登录表单。表单提交给自身进行验证,然后使用 session 变量重定向到 127.0.0.1/_af/act_login.php 以使用 die(header(location:)); exit() 登录用户.但是该 URL 的末尾也会有 #f1,例如 127.0.0.1/_af/act_login.php#f1。然后,当我从该页面重定向回 127.0.0.1 时,它会再次传送它,例如 127.0.0.1/#f1 会再次显示登录表单,而不仅仅是我的主页。不确定我做错了什么?或者在哪里寻找好的答案,任何帮助表示赞赏。谢谢。

代码片段如下:

调出登录表单:<a href="#f1"><li>Login</li></a>

登录表单:

<div id="f1">
<div id="loginForm">
<h3>Login</h3>
<form name="loginForm" action="" method="post">
<input type="hidden" name="form" value="Login" />
<div>Email:</div>
<div><input type="text" name="email" value="" /></div>
<div id="newLine"></div>
<div>Password:</div>
<div><input type="password" name="password" /></div>
<div id="newLine"></div>
<div class="submitButton"><input type="submit" value="SUBMIT" /></div>
</form>
</div> </div>

PHP 一旦验证完成重定向:

die(header("Location: _af/act_login.php"));
exit();
}

PHP 在创建日志条目并完成登录后重定向回来:

die(header('Location: http://127.0.0.1'));
exit();

最佳答案

片段标识符 (#f1) 被复制到新位置,因为您使用的是相对 URI-Reference。您需要使用绝对 URI-Reference:

header ('Location: http://127.0.0.1/_af/act_login.php');

此行为在 RFC 7231 中有详细说明:

7.1.2.  Location
 Location = URI-reference

The field value consists of a single URI-reference. When it has theform of a relative reference ([RFC3986], Section 4.2), the finalvalue is computed by resolving it against the effective request URI([RFC3986], Section 5).

...

If the Location value provided in a 3xx (Redirection) response doesnot have a fragment component, a user agent MUST process theredirection as if the value inherits the fragment component of theURI reference used to generate the request target (i.e., theredirection inherits the original reference's fragment, if any).

引用资料

关于php - 在页面之间重定向时在 URL 末尾的奇怪#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27730260/

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