在脚本之间传递PHP变量
我在这方面遇到了困难,所以我谷歌搜索,也在这里阅读。最后,我想2只小节录从W3网站,在2档Z1.php和Z2.php这样的:在脚本之间传递PHP变量
Z1
我把线包括Z2 - Z2是然后:
<?php
session_start(); (note: I tried with and without this)
?>
<html>
<body>
<?php
// Echo session variables that were set on previous page
echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
?>
</body>
</html>
我把所有的到Zend,并获得了作为输出,
最喜欢的颜色是。
最喜欢的动物是。
我需要这个使我能够使用phpqrcode,它说关于调用QR码:“警告!它应该是唯一的输出生成的脚本,否则其余的输出将落在PNG二进制内部,打破它肯定“而且,当然,它的确如此。所以我认为2个脚本将是要走的路。
我还没有尝试过在脚本之间传递变量,所以在我的试验中试图理解这种方法并将我设置在正确的路径上时,欢迎批判性的眼睛或两眼。
保罗
你面对这里的问题是,你包括第一档的z2.php
脚本。现在将include
想象成与第二个脚本中的代码相同的php
复制并粘贴到那里。你开始session
你应该,以获得一个变量的挂起,但你尝试echo
他们创建之前。在定义Session
变量后,尝试包括z2.php
,并从中查看它的工作原理。
简单来说,试着去掉任何include
。你从W3Schools拿走了this example。像你一样创建两个独立的文件。拨打session_start()
并创建session
变量,并尝试显式访问其他文件,看看您是否可以访问它们。
当包括一个文件,它包含的代码继承在其上包括发生线的可变范围。从调用文件的那一行可用的任何变量将在被调用的文件中可用,从这一点开始。但是,包含文件中定义的所有函数和类都具有全局范围。
当你include
在你的另一个脚本中的脚本,你不是真的传递会话变量。事实上,你所做的一切都可以在不使用Sessions的情况下实现。
//foo.php
<?php
$color = 'green';
$fruit = 'apple';
?>
//bar.php
<?php
echo "A $color $fruit"; // A
include 'foo.php';
echo "A $color $fruit"; // A green apple
?>
这样的事情是完全合法的,并且在PHP中工作得很好。
header("Location: z2.php");
die();
希望这样的:如果你真的要检查Session
变量在当前的设置,你可以而不是使用include
通过在文件的结尾添加以下行做一个重定向到z2.php
在z1.php
结束让你开始正确的方向。
感谢您的非常明确的回应。在你的帮助下,我了解得更多(并且让我的剧本做我想做的!) Paul – calder 2014-10-09 06:19:22