PHP header函数上级路径跳转时URL错误参数不显示问题求助
解决PHP Header上级路径跳转不显示URL参数的问题
先修正参数格式:你写的
error = RegistrationSuccessfull里,等号两边的空格是核心问题。URL参数的键值对不允许带空格,必须写成error=RegistrationSuccessfull——否则服务器会把带空格的error当成参数名,接收页面自然无法识别正确的参数。优先用绝对路径跳转:相对路径容易受当前文件层级影响,直接用网站根目录开头的绝对路径更可靠,比如:
header("Location: /login-page/login.php?error=RegistrationSuccessfull"); exit;这种写法不管当前脚本在哪个文件夹下,都能精准跳转到目标页面,参数也不会丢失。
如果必须用相对路径:先确认
../login-page/login.php的层级是正确的(比如当前脚本在register/文件夹,上级目录就是网站根目录,再进入login-page是合理的),同时务必去掉参数里的空格。也可以用PHP魔术常量自动生成路径,避免手动写错:// 从当前脚本目录向上跳一级,定位到目标文件 $targetPath = realpath(__DIR__ . '/../login-page/login.php'); // 转换为服务器可识别的URL路径 $targetUrl = str_replace($_SERVER['DOCUMENT_ROOT'], '', $targetPath); header("Location: $targetUrl?error=RegistrationSuccessfull"); exit;
另外要注意:调用header()函数之前,页面不能有任何输出(包括空格、HTML标签),否则跳转不会生效,参数自然也无法显示。
内容的提问来源于stack exchange,提问作者Inzemam_Zee
相关产品推荐
相关产品推荐

