2010-11-17 29 views
0

我目前正在嘗試使用會話變量的網站上工作。

我有與session_start();開始,有包括內if陳述兩種不同的HTML文件控制器腳本(的index.php)。一切工作都時髦,當我去/quote/index.php,我已經被設置爲呼應預期頁面上的會話變量,但如果我從URL中移除「index.php *」,使其指向剛剛/quote頁面加載但是,沒有一個會話變量顯示。

我沒有在我的腳本中使用session_destroy任何地方,並且會話變量沒有回顯「0」,所以我相當確定他們沒有被取消設置,似乎他們只是忽略沒有文件名網址!

任何瞭解爲什麼這是發生將是真棒, 感謝

/quote/index.php(與無關位去掉):

<?php 
session_start(); 

if (isset($_GET['form'])) 
    { 
include 'form.html.php'; 
exit(); 
    } 
if (isset($_GET['fetchquote'])) 
    { 
    $width = mysqli_real_escape_string($link, $_POST['width']); 
    $height = mysqli_real_escape_string($link, $_POST['height']); 
    $_SESSION['height'] = $height; 
    $_SESSION['width'] = $width; 
    } 
include 'quote.html.php'; 
?> 

變量在報價呼應了會議。 html.php

+0

確保對根的其他HTML文件沒有命名「的index.html」或「index.htm的」 – Codex73 2010-11-17 12:07:42

回答

1

什麼是兩個文件名? 似乎您所包含的文件之一被命名爲index.html,並位於mysite.com/quote/本身中。如果我沒有錯,如果在目錄中有index.html和index.php,那麼默認情況下會加載index.html,除非該文件在url中明確指定。因此,在你沒有明確指定index.php的情況下,index.html被加載。當然,只有在目錄中有index.html的情況下才是這種情況。

+0

剛編輯我的問題包含的代碼,我希望你描述的會是什麼情況,但很可惜,沒了!謝謝你的回答。 – BigRob 2010-11-17 12:33:03

0

確保您還使用session_start()在想要呼應會話變量PHP頁面的頂部。並確保index.php是您的根目錄中唯一的索引。

如果一個選項是通過GET方法來設置你正在檢查。你的表單在哪裏使用GET方法?

發佈你的整個腳本,你會得到更好的答案。

0

這有可能是與會話ID的Cookie有效期範圍。因爲如果cookie path設置爲/quote/,則此cookie將僅在/quote/及更高版本中可用。