php重定向到带有参数的页面
我是php新手。我正在尝试重定向到某个页面。起初,我尝试如下硬编码,但仍然不起作用php重定向到带有参数的页面,php,Php,我是php新手。我正在尝试重定向到某个页面。起初,我尝试如下硬编码,但仍然不起作用 $location = 'https://mywebsite.com/abc/?a=xyz'; header('Location:'.$location); 上面只是重定向到这里:https://mywebsite.com/abc/ 但是我无法在url末尾获取查询参数。请有人告诉我上面的问题是什么 编辑: 在日志中,我得到如下警告: PHP Warning: Cannot modify header inf
$location = 'https://mywebsite.com/abc/?a=xyz';
header('Location:'.$location);
上面只是重定向到这里:https://mywebsite.com/abc/
但是我无法在url末尾获取查询参数。请有人告诉我上面的问题是什么
编辑:
在日志中,我得到如下警告:
PHP Warning: Cannot modify header information - headers already sent by (output started at /myfile1.php:34) in /myfile2.php on line 317,
以下是myfile1.php代码:
class MyClass32
{
function myFun() {
?>
<head>
<body>
<div align=center>
<p><br>
<table width=778 cellpadding=0 cellspacing=0 border=0>
<tr>
<td bgcolor="#3399cc" width=6> </td>
<td colspan=3>
<table width="100%" cellPadding=0 cellSpacing=0 border=0>
<tr>
<?php // **THIS IS LINE 34**
//START TOP RIGHT MENU
$abc = new MyClass($this);
if ($this->isLog()) $xyz->goInto();
//END TOP RIGHT MENU
?>
类MyClass32
{
函数myFun(){
?>
试试这个:
$location = 'https://mywebsite.com/abc/';
$params = '?a=xyz'; // set your parameters in variable
header("Location: $location.$params"); // double-quote there
来源:这里发生了一些事情 最重要的是,您需要将标题设置为双引号
“
,而不是单引号,有关详细信息,请参阅
您还需要在标头之后设置exit;
或die语句,以确保一旦到达标头,PHP的页面处理就会停止
您的错误输出告诉您页面在标题值之前向浏览器输出了一些内容,这可以是任何内容,包括空格或PHP
检查一下
<--- file start
<?php
$var...
header("stuff.php");
使用此语法,您可以进一步了解:
function myFun(){
$output = "
output text
";
}
这意味着您可以控制数据的显示时间和方式,以便稍后在PHP文件中更像是:
if (true || false ){
header("Location:some.php");
exit;
}
else {
print $output;
}
这是一种粗糙的输出缓冲形式:
此外:
检查.htaccess
和其他重定向,这些重定向会导致/index.php?a=xyz将自身重定向到/index.php,或者删除查询字符串,如Splash58所述
此外:
避免将变量命名为
$this
,尤其是在类方法上下文中,该代码看起来是正确的(尽管在标题后添加die
将确保页面上不会运行其他内容)。是否您要重定向到的页面,/abc/
本身具有某种重定向?请同时发布.htaccess
文件的内容,因为这可能会导致工作不正常。请使用退出(0)如果在浏览器的“地址”选项卡中写入这样的url,您会得到查询吗?按原样显示,您提供的代码应该绝对有效。如果不可用,您可能希望启用错误报告(如果未启用)尝试找出这里发生了什么。例如,这可能会生成一个PHP警告。我还要确保没有发生双重重定向-谁知道,可能在该位置有代码再次重定向代码?在浏览器中打开web inspector,检查意外的重定向活动。params='1?a=xyz';
是一个分析错误。您可能希望在有人否决您之前更正该错误。这对解决问题没有任何作用,只是将问题分解为几个变量。没有理由$location
不能同时包含查询字符串。
if (true || false ){
header("Location:some.php");
exit;
}
else {
print $output;
}