网站的第一个计时器,而不是一个经验丰富的php程序员:)
我有一个问题,我在网站中使用iframe尝试在内部使用会话变量,首先我只是试图显示会话变量以确保它们可以从iframe中访问:
echo "session of productcheck ".$_SESSION['productcheck']."
"; echo "session of productcheck1 ".$_SESSION['productcheck1']."
"; echo "session of productcheck2 ".$_SESSION['productcheck2']."
"; echo "session of productcheck3 ".$_SESSION['productcheck3']."
";
这只是显示“产品检查会话”,每次都没有任何内容,我将会话变量设置为:
$_SESSION['productcheck'] = $productBox;
$ productBox是来自URL的GET:
echo " <iframe src=\"homeview.php?productBox=$product1\" name=\"FRAMENAME\" width=\"594\" height=\"450\" scrolling=\"No\" id=\"FRAMENAME\" allowautotransparency=\"true\" > </iframe >";
奇怪的是,如果我只是从URL中检索到$ productBox变量并使用它然后代码工作,它只有当我将它存储在一个会混淆的会话变量中时。我想检索第二个$ productBox并将其分配给session var productcheck1,依此类推。不幸的是,我必须一次取一个var,否则我可以通过所有4个产品而不用担心会话。
也许我让这太复杂了,任何帮助都会非常感谢谢谢!!
答案 0 :(得分:4)
你必须在两个脚本中使用session_start(),设置值(并且可能打印&lt; iframe&gt; -element?)和生成iframe内容的脚本。
e.g。 “外部”脚本
<?php // test.php
session_start();
$_SESSION['productcheck'] = array();
$_SESSION['productcheck'][] = 'A';
$_SESSION['productcheck'][] = 'B';
$_SESSION['productcheck'][] = 'C';
session_write_close(); // optional
?>
<html>
<head><title>session test</title></head>
<body>
<div>session test</div>
<iframe src="test2.php" />
</body>
</html>
以及iframe内容的脚本
<?php // test2.php
session_start();
?>
<html>
<head><title>iframe session test</title></head>
<body>
<div>
<?php
if ( isset($_SESSION['productcheck']) && is_array($_SESSION['productcheck']) ) {
foreach( $_SESSION['productcheck'] as $pc ) {
echo $pc, "<br />\n";
}
}
?>
</div>
</body>
</html>
答案 1 :(得分:1)
不确定您的会话变量是什么,但您绝对可以通过iframe中的url传递所有四个变量。您只需要使用&符号分隔键值对。所以像这样:
file.php?key1 = val1&amp; key2 = val2&amp; key3 = val3等等。
如果你只是想把数据放到另一个文件中,这可能比使用会话变量更好。