仅在特定页面上启动php会话

时间:2014-02-12 01:40:50

标签: php wordpress session session-variables

我正在处理的网站发布了过去活动的照片画廊。他们希望用户订阅时事通讯以访问这些照片库。

我目前在header.php的最开头使用以下代码:

<?php session_start();
//session_destroy(); ?>

使用此代码正确加载网站,除了在两个网页的源头开头返回以下内容,以及损坏的背景图片:

<b>Warning</b>:  session_start() [<a href='function.session-start'>function.session-start</a>]: 
Cannot send session cache limiter - headers already sent (output started at /home/.../the-calendar.php:7) 
in <b>/home/.../header.php</b> on line <b>2</b><br />

我希望此会话仅在照片库页面上触发,尽管我已经开始相信session_start()标记应该包含在WordPress网站的总体header.php中。

会话php是标题的第一行,我相信这是正确的地方。

我尝试过插入is -page('photo-gallery') - 进入会话php,但这没有成功实现;我怀疑我使用的代码不正确,非常感谢帮助!

不知何故,这种不正确的PHP实现导致网站两个网页上的背景图像中断而不显示。

拜托,谢谢!

我很欣赏这些回应;在发布此处之前,我仔细查看了其他主题,并认为尝试在某些页面上触发会话的变化只能提出一个新问题。

关于在会话开始之前调用其他内容的问题 - 我已经在此下面包含了相关标题的第一行,这表明在会话之前没有调用任何内容(至少根据我的理解) :

<?php session_start();
//session_destroy(); ?>
<!DOCTYPE HTML>
<html prefix="og: http://ogp.me/ns#">
    <head>

上面包含的警告HTML消息只显示在两个特定网页上(会话标记中未指定的页面和我不需要会话的页面)大约20个。在这两个网页上,背景图像也被破坏,我认为这是这个整体问题的直接原因。

再次感谢你。

1 个答案:

答案 0 :(得分:0)

在&lt;?php

之后,Session_start必须是文件中的绝对第一件事

听起来像是先叫其他东西。

相关问题