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

我是php新手。我正在尝试重定向到某个页面。起初,我尝试如下硬编码,但仍然不起作用

$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>&nbsp;</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;
}