2009-12-27 146 views
1

第一個定時器的網站,而不是一個過度經驗的PHP程序員在這裏:)傳遞會話變量通過iframe,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並將其分配給會話var productcheck1等等。不幸的是,我必須一次拿一個var,否則我只能通過所有4個產品,而不用擔心會話。

也許我做這個太複雜了,任何幫助將不勝感激謝謝!

+0

很奇怪,但我不明白這個問題。 – mauris 2009-12-27 13:02:20

回答

4

您必須在兩個腳本中使用session_start(),一個設置值(並且可能會打印<iframe> -element?)和生成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> 
+0

感謝您的幫助VolkerK,你是一位天才! – Doug 2009-12-27 15:12:57

+0

謝謝!謝謝! – Doug 2009-12-27 15:14:04

1

不知道如何處理您的會話變量的,但你絕對可以通過在你的iframe URL傳遞所有四個變量的腳本。您只需要將鍵值對與「&」分開。所以像這樣:

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

這可能是一個比使用會話變量更好的方法,如果您只是試圖將數據導入到其他文件中。