Файлы cookie php styleswitcher не установлены в WordPress.Зачем? - PullRequest
0 голосов
/ 08 декабря 2010

Обновление через день: сейчас устанавливаются файлы cookie. Я пытаюсь показать изменения, которые мне нужно было сделать, с правками в приведенном ниже коде. Там все еще проблема. Теперь он не применяет таблицы стилей не по умолчанию! Браузер может их найти, но не переключатель ....

(оригинальный вопрос :) Я использую Styleswitcher Роба Баллу v.2 (robballou.com/switcher/v2/tutorial.php) в блоге WP3 (сайт здесь ). Я изменил URL таблиц стилей, чтобы WP знал, где их найти:

от
$ss->addStyle("default", "style.css", "", "", true);

до

$my_url = get_bloginfo('template_url');

$ss->addStyle("default", $my_url . '/style.css', "", "", true);

Судя по источнику документа, таблицы стилей находятся. Так что это не проблема. Тем не менее, cookie просто не устанавливается. Если я запускаю точно такие же сценарии на веб-странице (например, molvray.com/testing/ss-example.php), это работает, и когда я проверяю файлы cookie, устанавливается cwStyle. Но как только он в WP, не повезло.

Полагаю, проблема в следующей строке: $ss->cookieDomain = ".". $_SERVER['HTTP_HOST']; в switcher.php. Я видел пост, в котором предлагалось использовать HTTP_REFERRER, но это не помогло. Я включил switcher.php ниже. Я не касался самого Styleswitcher.php.

Может кто-нибудь сказать мне, что я делаю не так? Я схожу с ума здесь!

Пожалуйста, будьте настолько ошарашены, насколько можете, чтобы у меня был шанс следовать за снежным комом. Я довольно бесполезен в программировании.

Новое: большая часть switcher.php включена в header.php, а не в отдельный файл.

в header.php:

<?php

require_once ( "Styleswitcher.php");
$ ss = новый переключатель стилей ('/ switcher / v2 /');

if(!isset($reqPath)){ $reqPath = ""; }
require_once($reqPath ."Styleswitcher.php");
$my_url = get_bloginfo('template_url');
$ss = new Styleswitcher();

$ss->addStyle("default", $my_url . '/style.css', "", "", true);
$ss->addStyle("lowgraphics", $my_url . '/handheld.css');
$ss->addStyle("highcontrast", $my_url . '/highcontrast.css');

$ss->createSet("style");
$ss->addStyleToSet("style", "default", true);
$ss->addStyleToSet("style", "lowgraphics");
$ss->addStyleToSet("style", "highcontrast");

$ss->cookieDomain = ".". $_SERVER['HTTP_HOST'];
$ss->cookieName = "cwStyle";

$ & beta;> начать ();

$ss->printStyles();
    ?>

тогда фактический switcher.php просто:

<?php
if(!isset($reqPath)){ $reqPath = $my_url; }
require_once("Styleswitcher.php");
$ss = new Styleswitcher('/switcher/v2/');
$ss->cookieDomain = ".". $_SERVER['HTTP_HOST'];
$ss->cookieName = "cwStyle";
$ss->start();
?>

форма, используемая в header.php для wordpress, имеет «<_? Php bloginfo ('template_url');?> / Switcher.php» вместо просто «switcher.php»

<form action="<?php bloginfo('template_url'); ?>/switcher.php" method="post">

<_ input type = "hidden" name = "referer" id = "referer" value = "" />

    <input type="hidden" name="inputStyle2" id="inputStyle2" value="style" />        
    <li><input type="submit" name="style" id="default" value="Default" <?php $ss->printSetInputChecked("style", "default"); ?>/></li>    
    <li><input type="submit" name="style" id="lowgraphics" value="Mobile" <?php $ss->printSetInputChecked("style", "lowgraphics"); ?>/></li>
    <li><input type="submit" name="style" id="highcontrast" value="High&nbsp;Contrast" <?php $ss->printSetInputChecked("style", "highcontrast"); ?>/> </li>
    </form>

Решающим моментом, я думаю, было добавление пути php bloginfo ('template_url') к switcher.php в элементе формы. Теперь давайте разберемся, почему он не идет ни к чему, кроме стиля по умолчанию.

1 Ответ

0 голосов
/ 08 декабря 2010

(продолжение ответа The Dead Medic. У меня здесь пока что нет системы).

Я также немного осмотрелся и нашел кое-что о проблеме с регистрацией в WP.глобальные переменные.http://wordpress.org/support/topic/wp-blog-headerphp-killing-sessions

Я попытался создать файл php.ini в корневом каталоге блога с отключенным значением register_globals, как предлагалось в конце этого потока, но, похоже, это ничего не дало.

Есть также эта ссылка, h_ttp: //www.scratch99.com/2008/09/setting-cookies-in-wordpress-trap-for-beginners/, в которой говорится о предоставлении setcookie явного пути, но яМне не ясно, как и где это вписывается в мой switcher.php выше.

(Чтобы ответить на ваш последний вопрос: нет, это не плагин. WP жалок к переключателям стилей, поэтому эта одиссея: S)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...