【问题标题】:Wordpress phpinfo cookies issueWordpress phpinfo cookie 问题
【发布时间】:2012-08-14 17:49:01
【问题描述】:

你好,我有这个网站http://www.taranmarlowjewelry.com/,右上角有一个购物车,但是当您第一次访问该网站时它不会显示,但当您刷新页面时它会显示。

我一直在研究这个问题,我认为它与这个 cookie PHPSESSID 有关,因为当我删除那个 cookie 时,购物车又消失了。

我也被告知这是一个 PHP 配置问题。

我尝试像这样对我的 php5.ini 文件进行一些调整...

session.use_only_cookies = 1
session.use_trans_sid = 0

session.url_rewriter.tags = ""

但这不起作用....我从这里得到它http://wordpress.org/support/topic/frontpage-slideshow-and-phpsessid-in-general-fix?replies=1

有谁知道我需要在我的 php 配置中进行哪些调整?

我试图在 wp-content/themes/twentyeleven/header.php 中设置一个 cookie,就在这样的标签之后...

<?php
setcookie("PHPSESSID","6a52e6037be6342014834c475b6c0637","/","http://www.taranmarlowjewelry.com/") 
?>

然后我得到这个错误......

Warning: setcookie() expects parameter 3 to be long, string given in /home/content/19/9468119/html/wp-content/themes/twentyeleven/header.php on line 54

当您第一次访问我的网站时购物车不会显示,但当您刷新时它仍然会显示。

我什至像这样手动将cookie放入主题的functions.php文件底部...

function set_new_cookie() {
    setcookie("PHPSESSID", '6a52e6037be6342014834c475b6c0637', time()+3600);  /* expire in 1 hour */

}
add_action( 'init', 'set_new_cookie');

它设置了它,它没有显示任何错误,但它并没有解决我的问题。

我也在主题的 functions.php 文件中尝试过这个...

 function set_new_cookie() {

    set_cookie('PHPSESSID', '6a52e6037be6342014834c475b6c0637');
    $_COOKIE['PHPSESSID'] = '6a52e6037be6342014834c475b6c0637';


}
add_action( 'init', 'set_new_cookie');

得到了这个错误

Fatal error: Call to undefined function set_cookie() in /home/content/19/9468119/html/wp-content/themes/twentyeleven/functions.php on line 5

这是购物车表格...

<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>

【问题讨论】:

  • 你不是已经问过这个问题了吗?我记得已经回答了这个问题。问题是在将 HTML 源发送给用户之前不会发送 cookie,因此您需要在脚本的前面手动设置 $_COOKIE 才能看到购物车。
  • 但是当我尝试手动设置 cookie 时出现错误。我会在一分钟内更新我的问题,只需要重新创建手动 cookie,我会告诉你我得到的错误。
  • 您已经有另一个关于如何设置 cookie 的悬而未决的问题。请不要在多个地方用相同的问题污染网站。
  • 更新了我的问题。我设置了 cookie 并收到此错误。

标签: wordpress cookies php


【解决方案1】:

我通过进入 wp-ecommerce/wpsc-includes/shopping_cart_functions.php 并调整此行来解决我的购物车问题

if ( isset( $cart ) ) {
echo wpsc_shopping_basket_internals( $cart, false, true );
}

到这里

//if ( isset( $cart ) ) {
echo wpsc_shopping_basket_internals( $cart, false, true );
//}

【讨论】:

    【解决方案2】:

    问题不在于设置的 cookie。您的 session_start() 将设置它。但是,您需要了解 cookie(包括会话 cookie)是如何工作的。 cookie 在响应标头中从服务器发送到浏览器。因此,在用户开始获取您的响应源之前,他们不会在浏览器中设置 cookie。在他们对网站的下一次请求时,他们的浏览器将随请求一起发送 cookie。

    所以问题是你试图在第一个页面加载时依赖 $_COOKIE 超全局中的某些东西,它不会存在(除非用户已经在之前的访问中设置了它)。如果您需要在初始页面加载中使用 $_COOKIE,您需要执行类似的操作

    setcookie('cookiename', 'cookie value');
    $_COOKIE['cookiename'] = 'cookie value';
    

    【讨论】:

    • 我尝试了您的代码并收到此错误Fatal error: Call to undefined function set_cookie() in /home/content/19/9468119/html/wp-content/themes/twentyeleven/functions.php on line 5
    • @user1269625 抱歉,我在不应该的地方加了下划线。那实际上只是示例代码,并不意味着要实现。到目前为止,您还没有真正共享您的源代码以了解正在发生的事情。会话在您的脚本中的哪个位置开始?相对于此,购物车在哪里启动?这是您应该在示例中显示的那种代码。您做事的顺序很可能是导致问题的原因。
    • 我不知道会话在我的脚本中的哪个位置开始。它是一个wordpress主题。我将研究会话开始的位置。我将使用购物车代码更新我的问题。
    • 用表格更新了我的问题
    • @user1269625 表单本身并没有真正的帮助。判断表单是否显示的逻辑是什么?
    猜你喜欢
    • 2012-08-02
    • 2019-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 2010-10-29
    • 2020-11-09
    相关资源
    最近更新 更多