2011-10-17 239 views
0

我試圖在php中創建一個計時器。它位於iframe上,以便iframe可以定期刷新。我在將會話變量載入iframe時遇到了麻煩。如果我在頁面上(在iframe上方)回顯會話變量,它顯示正確,但不希望在iframe中回顯。請幫忙。將變量傳遞給Iframe

第1頁

<?php 
session_start(); 
.... 
if ($_SESSION['auth']) { 
$d=getdate(); 
$h=$d['hours']; 
$m=$d['minutes']; 
$s=$d['seconds']; 
$_SESSION['h']=$h; 
$_SESSION['m']=$m; 
$_SESSION['s']=$s; 
$_SESSION['m12']=-1; 
echo "<a href='http://localhost/index.php?option=com_content&view=article&id=50&tid=$tid'>Continue</a>"; 
?> 

第2頁

<IFRAME SRC="timer.php" WIDTH=450 HEIGHT=100></IFRAME> 

timer.php

<head> 
<meta http-equiv="Refresh" content="1; "> 
<?php 
session_start(); 
?> 
</head> 
<body> 
<?php 
$hourin=$_SESSION['h']; 
$minin=$_SESSION['m']; 
$secin=$_SESSION['s']; 
echo $secin . " "; 
+4

這也許不能直接解決您的問題,但你是什麼(或似乎)試圖做使用Javascript更容易(更好)實現。您不需要額外的PHP文件或會話來製作計時器。 – Kokos 2011-10-17 12:26:28

+0

+1科科斯,這可以很容易地用js做得更漂亮和更好。 – OptimusCrime 2011-10-17 12:34:41

回答

0

timer.php,將session_start()移動到腳本的第一行。會話需要cookie,這些cookie設置在標題中,除非啓用了輸出緩衝,否則在發送內容後無法修改。

這可能無法解決問題,但無論如何都要這樣做,因爲它可以避免您稍後可能遇到的其他問題。

如果這樣不能解決問題,請在page1的末尾和timer.php的正文中向我們顯示var_dump($_SESSION);的結果。

+0

我已將它更改爲timer.php中的以下內容,但仍然沒有運氣: ` <?php session_start(); ? > ` 我會嘗試var_dump並回報 – Wilest 2011-10-17 12:43:15

0

我認爲如果您將iframe url中的變量作爲get值傳遞,它可能會解決您的問題。例如,在第2頁創建的iframe鏈接爲:

<IFRAME SRC="timer.php?h=<?php echo $h; ?>&m=<?php echo $m; ?>&s=<?php echo $s; ?>" WIDTH=450 HEIGHT=100></IFRAME> 

和timer.php

<?php 
$hour = $_GET['h']; 
$min = $_GET['m']; 
$sec = $_GET['s']; 
... 
?>