2015-03-16 3 views
0

У меня есть Wordpress, работающий на общем хостинге Windows (IIS) с Godaddy. У Wordpress заканчивается собственный подкаталог «/ wordpress». Если я установил значение сеанса PHP, например. $ _SESSION ["test1"] = "значение установлено из root: /"; в PHP от root я вижу, что значение сеанса прекрасное, пока мой PHP-код заканчивается из корня. Если я попытаюсь получить доступ к этому значению сеанса из папки/wordpress, он не будет найден.Набор переменных PHP-сессии в корне не отображается в подкаталоге

Обратное применение. Если я устанавливаю значение сеанса в/wordpress и его подкаталогах, я могу отлично просматривать сеанс и его значения, пока я работаю в папке/wordpress. Если я попытаюсь получить доступ к значению сеанса, установленному внутри/wordpress в корне, он недоступен.

Я проверил идентификаторы сеанса, и они совпадают с корнем и из папки/wordpress. Я проверил файлы cookie, установленные с обоих, и у них есть тот же путь & домена.

Я в недоумении, почему установка значений сеанса PHP из корневой папки/wordpress не будет глобальной. Любая помощь будет оценена по достоинству. Благодарю.

/set_session.php

<?php 
session_start(); 
$_SESSION["test1"] = "value set from root: /"; 
?> 

/wordpress/set_session.php

<?php 
session_start(); 
$_SESSION["test2"] = "value set from wordpress subdirectory: /wordpress"; 
?> 

view_session.php (я запускаю это от корня и/WordPress)

<?php 
session_start(); 
echo "<h3> PHP List All Session Variables</h3>"; 
    foreach ($_SESSION as $key=>$val) 
    echo $key." ".$val."<br/>"; 
?> 

Если я запустите скрипт сеанса просмотра из /view_session.php. Я вижу только значение для «test1», поскольку оно было установлено из /set_session.php.

Если я запустил сценарий сеанса просмотра из /wordpress/view_session.php, я вижу только значение для «test2», поскольку оно было установлено из /wordpress/set_session.php.

+0

Что вы подразумеваете под «в PHP от root»? Вы можете установить только переменную сеанса внутри скрипта, и она будет видна внутри контекста этого сеанса. Поэтому, скорее всего, если вы имеете в виду, что вы задаете переменную в одном скрипте, а затем не имеете ее в другой, это означает, что вы ссылаетесь на разные сеансы. – arkascha

+0

У меня есть php-файл/скрипт в корне, установите там значение сеанса. У меня есть еще один php-файл/скрипт в/wordpress и установите его значение сеанса. Сессии кажутся разными, поскольку значения из каждого набора не отображаются при просмотре сеанса из корня или/wordpress. –

+0

Да, это именно то, что я сказал. Поэтому возникает вопрос, почему вы используете разные сеансы? Я предлагаю вам опубликовать код, показывающий, как вы настраиваете сеансы. В противном случае мы ничего не можем с этим помочь ... – arkascha

ответ

0

Прежде всего, позвольте мне сказать, что поддержка GoDaddy бесполезна. Они восприняли это так, потому что официальной «ошибки» не было, что они не могли мне помочь, и это не было их ошибкой, несмотря на то, что образец кода был демонстрационным.

Когда я установил WordPress, я использовал их автоматическую установку Plesk для установки WP для меня. Он установил WordPress в свой собственный подкаталог. Это прекрасно, однако их процессы установки сделали папку/wordpress своим собственным виртуальным каталогом, который заставляет весь контент в нем запускаться под собственным пулом приложений/потоком. Это вызвало различные сеансы между каталогом/wordpress и другими каталогами на сайте.

Смежные вопросы