PHP会话ID问题

时间:2012-08-23 19:22:12

标签: php session

我有一个网站,在刷新页面之前,网站上的内容不会显示。

我在我的代码session_start();中发现了这个,如果我删除了我的PHP会话ID,我的页面上的东西再次消失,似乎这个会话需要设置在第一页加载...有没有人知道怎么做是什么?

顺便说一下,没有出现的东西是表格,GET形式。

由于

以下是会话

的代码
function wpsc_core_load_session() {
    if ( !isset( $_SESSION ) )
        $_SESSION = null;

    if ( ( !is_array( $_SESSION ) ) xor ( !isset( $_SESSION['nzshpcrt_cart'] ) ) xor ( !$_SESSION ) )
        session_start();
}

他不会出现

<form class="product_search" style="font-size:0px !important;" method="GET" action="<?php echo $pp_url?>/" >
                <input name="product_search" id="wpsc_search_autocomplete" class="wpsc_product_search wpsc_live_search_embed .wpsc_live_search" autocomplete="off" style="padding:0px !important; height:25px !important; vertical-align:top;" />
                <script type='text/javascript' > /* <![CDATA[ */
                    jQuery('#wpsc_search_autocomplete').keypress( function(e){
                        if ( e.keyCode == 13 ) {
                            var url = '<?php echo $pp_url ?>'+'?product_search='+jQuery(this).val();
                            url = encodeURI(url);
                            jQuery(window.location).attr('href', url);
                        }
                    });
                     /* ]]> */
                     </script>
                     <input type="submit" id="button" name="button" class="searchBtn" value="GO"/>
            </form>

我打开了Wordpress调试器,这就是出现的内容

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/content/19/9468119/html/wp-content/plugins/jquery-colorbox/jquery-colorbox.php:34) in /home/content/19/9468119/html/wp-content/plugins/wp-e-commerce/wpsc-core/wpsc-constants.php on line 13

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/content/19/9468119/html/wp-content/plugins/jquery-colorbox/jquery-colorbox.php:34) in /home/content/19/9468119/html/wp-content/plugins/wp-e-commerce/wpsc-core/wpsc-constants.php on line 13

并且当缺少表单时出现此消息....

Notice: A session had already been started - ignoring session_start() in /home/content/19/9468119/html/wp-content/plugins/wp-e-commerce/wpsc-core/wpsc-constants.php on line 18

1 个答案:

答案 0 :(得分:0)

你有一个基本问题:

if ( !isset( $_SESSION ) )
    $_SESSION = null;

if ( ( !is_array( $_SESSION ) ) xor ( !isset( $_SESSION['nzshpcrt_cart'] ) ) xor ( !$_SESSION ) )
    session_start();

您无法在启动会话之前访问该会话。尝试启动它,然后访问它......

此外xor是一个按位比较...我不确定这是否是你在这里寻找的,也许是||

  

看起来这个会话需要设置首页加载...有谁知道怎么做?

通常情况下,首页加载由脚本顶部或输出标题之前运行的任何内容表示,但由于您的新文件我只是在顶部说。试着把它放在那里。

很可能你收到错误并且display_errors关闭了,因此我得到一个空白页面。