我对此有困难,所以我用Google搜索并在此处阅读。最后,我尝试了W3网站的2个小摘录,在Z1.php和Z2.php这两个文件中如下:
Z1
<?php
// Start the session
session_start();
include ('z2.php'); (I added this)
?>
<html>
<body>
<?php
// Set session variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>
</body>
</html>
我在行中加入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码:&#34;警告!它应该是由脚本生成的第一个和唯一的输出,否则输出的其余部分将落在PNG二进制内部,确保打破它#34;而且,确实如此。所以我认为2个脚本将是最佳选择。
我之前没有尝试在脚本之间传递变量,因此欢迎在我的试用中尝试理解这种方法并让我走上正确的道路时,有一两个批判性的眼睛。
保罗答案 0 :(得分:0)
您在此遇到的问题是您在第一个文件中包含z2.php
脚本。现在想象include
就像复制并粘贴在那里的第二个脚本中的php
代码一样。你可以开始使用session
来获取变量,但是在创建它们之前尝试echo
。在定义z2.php
变量后,请尝试添加Session
,并从那里查看其工作原理。
简单地说,试着取消任何include
。你从W3Schools那里拿了this example。只需像你一样创建两个单独的文件。调用session_start()
并创建session
变量并尝试显式访问其他文件,看看是否可以访问它们。
来自documentation -
当包含文件时,它包含的代码将继承发生包含的行的变量范围。从那时起,调用文件中该行可用的任何变量都将在被调用文件中可用。但是,包含文件中定义的所有函数和类都具有全局范围。
如果你在另一个脚本中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中可以完美地运行。如果您确实想要检查当前设置中的Session
个变量,则可以通过添加以下行,而不是include
使用z2.php
的{{1}}重定向到z1.php
在文件的末尾:
header("Location: z2.php");
die();
希望这能让你开始朝着正确的方向前进。