[英]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並確保沒有輸出。
Javascript和PHP會話彼此無關。 JavaScript生活在它的小泡泡中(客戶端渲染/處理)。 PHP處於泡沫中(服務器端處理/輸出)。
您收到的錯誤是(簡短)-標頭已發送。
這是指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.