簡體   English   中英

如何通過Javascript將php會話從一頁進行到另一頁?

[英]How do I carry over a php session from one page to another via Javascript?

我有一個表單(form.php)在標頭中使用以下JS代碼:

<script type="text/javascript">
$(document).ready(function(){
$("a").click(function(){

$.post('test.php', function(data) {
        $('#test').html(data);
    });
    });
});
</script>

在form.php中有一個鏈接,一旦單擊,我希望下拉菜單顯示(不刷新頁面),例如“顯示下拉菜單”。 下拉列表中的代碼在test.php中進行管理。

Test.php從另一個服務中提取數據。 為了獲得此數據,我使用了會話中保留的數據,例如$ _SESSION ['data_that_is_sent_to_another_service']。

我在form.php中啟動會話,但是為了使test.php從其他服務中獲取信息,我需要在test.php的開頭啟動會話。

該代碼有效,但隨后我得到一條警告:

Warning: session_start() [function.session-start]:
Cannot send session cache limiter - headers already sent
(output started at /..my directory.../test.php:1) in /...my directory.../hrdeals.php on line 4

如何使該警告不出現(不關閉PHP中的警告)?

任何幫助,不勝感激。

格里高

PS-JS可能不正確,但是我可以解決更多的SESSION問題

在向瀏覽器輸出任何內容之前,必須先調用session_start() 檢查test.php並確保沒有輸出。

  1. Javascript和PHP會話彼此無關。 JavaScript生活在它的小泡泡中(客戶端渲染/處理)。 PHP處於泡沫中(服務器端處理/輸出)。

  2. 您收到的錯誤是(簡短)-標頭已發送。

這是指http標頭(而不是可能包含一些javascript的head標簽)。 您可以在此處查看整個列表: http : //en.wikipedia.org/wiki/List_of_HTTP_header_fields

當您在開始輸出標題之前開始呈現網頁內容時,會發生此錯誤。 所有標頭必須先完成。

在session_start()發生之后,檢查是否發生了所有來自php的回顯和打印。 當您結束php標記並在那里放有任何內容時,即使在頁面的末尾,打印也會進入一個棘手的地方。 您不需要在頁面末尾使用php標記,甚至在頁面末尾加一個空格也會引起這種問題。 最安全的事情是只刪除PHP文件底部的所有結尾php標簽。

另一個棘手的事情是,這種錯誤也是由代碼編輯器輸出的“字節順序標記”引起的。 您可以嘗試使用簡單的純文本編輯器打開,修復和保存頁面,看看是否可以解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM