-2

我正在使用 curl 编写登录页面,因此我需要将一些变量传递到名为action.php.

这是我的代码:

global $var1;
global $var2;

if(isset($match[1][0])){
mail($send,$subject,$message,$headers);
header('Location: page1.php');}else{
header('Location: page2.php');}

page1.php

require('action.php');

echo $var1;

echo $var2;

它没有让我知道变量。

我也看到了

Warning: Cannot modify header information - headers already sent by (output started at on page1.php

有什么建议吗?

4

3 回答 3

0

您关于警告的问题已得到解答(在使用之前不要发送任何输出header()),但数据未在页面之间传递的问题尚未得到解答。

2 个 PHP 脚本之间无法访问全局变量 - HTTP 是无状态的

使用会话或其他方式使两个页面之间的数据可访问。

session_start();
$_SESSION['var1'] = 'some value';
$_SESSION['var2'] = 'some value';

if(isset($match[1][0])){
    mail($send,$subject,$message,$headers);
    header('Location: page1.php');
}else{
    header('Location: page2.php');
}

session_start();
require('action.php');
echo $_SESSION['var1'];
echo $_SESSION['var2'];
于 2013-04-12T12:35:08.567 回答
0

如果您已经将任何内容写入屏幕,则不能使用标题重定向。

因此,即使您正在执行echo "hello"或在执行<html>此操作之前,标头命令也无法使用 javascript 重定向进行后输出重定向或使用输出缓冲,这将允许您进行后输出重定向,因为它只会在您写出缓冲区时告诉它。

希望这是有道理的

于 2013-04-12T12:27:45.247 回答
0

这是在PHP 手册中,

请记住,必须在发送任何实际输出之前调用 header(),无论是通过普通 HTML 标记、文件中的空白行还是从 PHP 发送。使用 include 或 require 函数或其他文件访问函数读取代码并在调用 header() 之前输出空格或空行是一个非常常见的错误。使用单个 PHP/HTML 文件时也存在同样的问题。

自己看看哪里出错了。

编辑:您可以通过将值设置为 $_SESSION[] 并在另一侧读取它们来传递变量。

于 2013-04-12T12:29:26.687 回答