我正在使用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
任何建议?
答案 0 :(得分:0)
如果您已将任何内容写入屏幕,则无法使用标题重定向。
所以,即使你正在做echo "hello"
或者<html>
之前,header命令也行不通,要么在输出重定向后使用javascript重定向,要么使用输出缓冲来允许你发帖子输出重定向,因为它只会在你告诉它时写出缓冲区。
希望有意义
答案 1 :(得分:0)
这是PHP Manual,
请记住,在任何实际输出之前必须调用header() 通过普通HTML标记,文件中的空行或PHP发送。 使用include或require读取代码是一个非常常见的错误, 函数或其他文件访问函数,并且有空格或空 调用header()之前输出的行。一样的问题 使用单个PHP / HTML文件时存在。
亲自看看你哪里出错了。
编辑:您可以通过将值设置为$ _SESSION []并在另一侧读取它来传递变量。
答案 2 :(得分:0)
您已经回答了有关警告的问题(在使用header()
之前不要发送任何输出),但是没有在页面之间传递数据的问题没有。
在2个PHP脚本之间无法访问全局变量 - HTTP is stateless。
使用会话或其他方法在两个页面之间访问数据。
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'];