使用header()将数据从一个PHP页面传递到另一个PHP页面

时间:2011-11-22 13:46:26

标签: php header location

我想将数据从一个PHP文件发送到存在第一个PHP文件的子文件夹中的另一个PHP文件。我有一个名为folder1的文件夹,其中包含一个名为file1.php的PHP文件,我想在名为file2.php的{​​{1}}子文件夹中调用另一个名为folder1的文件。我在folder2

中使用header()函数
file1.php

数据未通过。是否有使用$host = $_SERVER['HTTP_HOST']; $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); $extra = 'folder1/folder2/file2.php'; header("location:http://$host$uri/$extra?sms=".$msg."&num=".$msg_num); 的解决方案?由于某些限制,我无法使用header()

2 个答案:

答案 0 :(得分:3)

以下代码有效:

file1.php

<?php

header( 'Location: inner/file2.php?x=1&y=2&z=3' );

?>

inner/file2.php

<?php

print '<pre>';

var_dump( $_GET );

print '</pre>';

?>

访问http://localhost/testing/file1.php的结果是重定向到http://localhost/testing/inner/file2.php?x=1&y=2&z=3,显示:

array(3) {
  ["x"]=>
  string(1) "1"
  ["y"]=>
  string(1) "2"
  ["z"]=>
  string(1) "3"
}

我建议复制这些测试文件,并向自己证明使用传递值重定向的基本概念是有效的。然后,围绕已知良好的内核构建其余代码。祝你好运!

答案 1 :(得分:1)

如果没有您要发送的变量的示例,很难说出问题可能是什么,但可能的问题可能是变量中的字符。

要确保没有无效字符,您可以使用urlencode(),也许与htmlentities()结合使用,请参阅manual

header("location:http://$host$uri/$extra?sms=".urlencode($msg)."&num=".urlencode($msg_num));