我有一个表单(form.php),它在标题中使用以下JS代码:
<script type="text/javascript">
$(document).ready(function(){
$("a").click(function(){
$.post('test.php', function(data) {
$('#test').html(data);
});
});
});
</script>
A在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问题
答案 0 :(得分:3)
答案 1 :(得分:0)
Javascript和PHP会话彼此无关。 Javascript存在于它的小泡泡中(客户端渲染/处理)。 PHP存在于它的泡沫中(服务器端处理/输出)。
您得到的错误是(简要地) - 已发送的标头。
这是指http标头(不是你可能有一些javascript的head标签)。您可以在此处查看整个列表:http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
在输出标题之前开始渲染网页内容时会发生此错误。必须先完成所有标题。
检查发生session_start()后是否发生了来自php的所有回声和打印。打印进入的一个棘手的地方是当你结束php标签并在那里有任何东西 - 即使它在页面的末尾。您不需要在页面末尾结束php标记,即使后面的空格也会导致此类问题。最安全的方法是删除php文件底部的所有结束的php标签。
另一个棘手的问题是,这种错误也是由代码编辑器输出的“字节顺序标记”引起的。您可以尝试在简单的纯文本编辑器中打开,修复和保存页面,看看是否能解决问题。