嘿,我会在这里 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.php文件在底部,就像这样......
function set_new_cookie() {
setcookie("PHPSESSID", '6a52e6037be6342014834c475b6c0637', time()+3600); /* expire in 1 hour */
}
add_action( 'init', 'set_new_cookie');
它设置了它,它没有显示任何错误,但它不能解决我的问题。
我也在我的主题功能中尝试过这个.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>
我通过进入wp-ecommerce/wpsc-include/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 );
//}
问题不在于正在设置的 cookie。 您的 session_start() 将设置它。但是,您需要了解 Cookie(包括会话 Cookie)的工作原理。 Cookie 从服务器发送到响应标头中的浏览器。 因此,用户在开始获取您的响应源之前不会在浏览器中设置 cookie。 在他们下次向网站发出请求时,他们的浏览器将发送带有请求的cookie。
所以问题是你试图在第一个页面加载时依赖 $_COOKIE 超全局中的某些东西,它不会在那里(除非用户已经从上次访问中设置了它)。 如果您需要在初始页面加载中使用 $_COOKIE,则需要执行以下操作
setcookie('cookiename', 'cookie value');
$_COOKIE['cookiename'] = 'cookie value';