我正在处理一个简单的登录表单,我有这个重定向网址:
<form method="post" action="/incs/login.php?redirect=<?php echo $_SERVER['PHP_SELF'];?>">
但是当我填写表单并点击提交按钮时,我被重定向到错误的网址:
http://site/incs/login.php?redirect=/admin/index.php
它应该是这样的:
http://site/admin/index.php
我正在关注一位旧指南,我在互联网上寻找此(重定向)功能,但我找不到任何东西。这现在仍然有用还是不再受支持?
答案 0 :(得分:1)
除非您在服务器端代码中实际使用它,否则只需在您的网址中添加query string即可。在你的php脚本中,你需要处理实际的重定向,如下所示:
<?php
/* Process form data */
if(isset($_REQUEST['redirect'])){
$url = preg_replace('/[\?\&].*/','',$_REQUEST['redirect']);
if ($url == '') $url='/';
}
header("Location: $url"); // <-- this is what actually redirects
?>
以上是一个很大的简化,但它显示了一般的想法。在实际应用程序中,如果表单数据有效(例如,成功登录),您可能只会重定向。您可能还需要验证重定向网址,以确保它是您网站中的有效网址。
如果您正在使用某种PHP框架,那么它将处理所有这些细节,您只需要正确配置它。