1

网站的第一个计时器,这里不是经验丰富的 php 程序员 :)

我有一个问题,我在一个站点中使用一个 iframe,我试图在其中使用一个会话变量,首先我只是试图显示会话变量以确保它们可以从 iframe 中访问:

    echo "productcheck 会话".$_SESSION['productcheck']." 
"; echo "productcheck1 的会话 ".$_SESSION['productcheck1']."
"; echo "productcheck2 的会话 ".$_SESSION['productcheck2']."
"; echo "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 个产品而不用担心会话。

也许我让这太复杂了,任何帮助将不胜感激谢谢!

4

2 回答 2

5

您必须在两个脚本中使用 session_start(),一个设置值(并且可能打印 <iframe>-元素?)和生成 iframe 内容的脚本。

例如“外部”脚本

<?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>
于 2009-12-27T12:45:13.323 回答
1

不确定您的会话变量是怎么回事,但您绝对可以通过 iframe 中的 url 传递所有四个变量。您只需要用 & 号分隔键值对。所以是这样的:

file.php?key1=val1&key2=val2&key3=val3 等等。

如果您只是尝试将数据放入其他文件,这可能是比使用会话变量更好的方法。

于 2009-12-27T12:48:33.820 回答