2017-02-03 105 views
1

我相信這是非常簡單的事情,但我無法弄清楚什麼是錯的。

我已經建立了我的html,php和js文件一起工作,但是在設置我自己的會話變量並在跨文件檢查時遇到問題。

我已經確保HTML和PHP文件都包含我的session.php文件的包含文件(如果尚未設置,該文件只處理session_start)。

總結一下,我的HTML文件有一個函數(userSelection aka fxn1)。該函數將值傳遞給另一個函數(showGameInfo又名fxn2),而我的.js文件處理fxn2。然後,fxn2將它發送到php文件中,吐出要顯示的信息。一切工作正常,直到我嘗試定義我自己的變量。我在html文件的fxn1裏面做了這個。然後,我嘗試在php文件中回顯$ _SESSION ['test']的值。這是我添加到fxn1的行:

<?php $_SESSION['test'] = 1 ?>; 

我在這裏錯過了一些非常簡單的東西嗎?我的php文件顯示SESSION已設置。請讓我知道什麼可能是錯的。

FXN1是在我的HTML文件中像這樣:

<script> 
function userSelection(val) { 
    <?php $_SESSION['test'] = 1; ?> 
    showGameInfo(val); 
} 
</script> 

如果我拿出SESSION [「測試」]在html線,PHP文件簡單地說,可變測試是不確定的,並顯示應該休息。

因此,這告訴我這是錯誤的HTML以某種方式..但爲什麼?

Edit1:我在我的html和php文件中包含了session.php。 session.php包含如下內容:

<?php 
if (!isset($_SESSION)) 
    session_start(); 
?> 

那不對?它位於html的頂部。這也是它如何包含在php文件中,並且我的php文件顯示isset($ _ SESSION)是真實的,所以我認爲它是正確的。

+3

*「我失去了一些東西在這裏真的很簡單嗎?」 *可能'session_start();' –

+0

錯誤報告;永遠是你的朋友 –

+0

你在哪裏嘗試使用會話?您只向我們展示了您設置的位置。 –

回答

2

「」 FXN1是在我的HTML文件中像這樣: 「 - 定義如.html文件 - 弗雷德-ii-」

「@弗雷德-II-,是的,它是在我的主要.html文件,定義爲這樣 - Gredenko」

首先,您需要啓動會話併爲.html文件更改爲.php或指示您的系統將它們視爲php。

PHP不會用.html作爲默認值解析指令。

您還應該檢查會話數組是否設置爲isset()

+0

好吧,我認爲這是問題所在。我剛纔讀到在html中不起作用,這肯定是它爲什麼會崩潰的原因。我將它改爲.php文件,它工作。但是我應該總是使用.php擴展名,那麼如果我要包含任何php代碼?還是有更多'正確'的解決方案?謝謝弗雷德。 – Gredenko

+0

@Gredenko不客氣。如果你想繼續使用'.html'作爲擴展名,你可以指示你的系統(如果它支持)將它們當作php。這裏有一些你可以看看http://stackoverflow.com/questions/4687208/using-htaccess-to-make-all-html-pages-to-run-as-php-files –

1

首先使用

session_start(); 

那麼只有你可以與會議工作啓動會議。

<script> 
function userSelection(val) { 
    <?php 
    session_start();//starts your session 
     $_SESSION['test'] = 1;//sets session variable ?> 
    showGameInfo(val); 
} 
</script> 

欲瞭解更多請參看使用手冊PHP Sessions

+0

缺少session_start()方法。 –

+0

請檢查我的編輯和關於session.php的部分,我已經確保將它包含在php和html文件中。 – Gredenko

+0

如何在html中包含php文件?將其保存爲'main.php' –

0

session_start();必須在需要定義或調用會話變量的任何頁面上,並且必須在定義或調用變量之前。

PHP manual(強調):

在session_start()創建一個會話或恢復基於經由通過cookie GET或POST請求,或通過傳遞會話標識符的當前一個。

另外,如果你想在一個HTML文件中運行PHP,你需要這個文件夾中添加到.htaccess文件

AddType application/x-httpd-php .htm .html