#php #wordpress #session
#php #wordpress #сеанс
Вопрос:
У меня проблема с сеансами в WordPress. Сначала я активировал использование сеансов в моем functions.php и нет, я получаю правильную переменную, но только после перезагрузки моего целевого сайта после установки переменной. Когда я сначала загружаю другую страницу, а затем мою целевую страницу, моя переменная имеет неправильное значение без какого-либо контекста для моего первого значения. Когда у меня есть правильное значение на моем целевом сайте, и я перезагружаю этот сайт, значение также неверно. Это мой код:
//Activate sessions() in functions.php
add_action('init', function(){
if(!session_id())
{
session_start();
}
}, 1);
//Calculate the variable
$gesamtumsatz_kcal = round (($value1 $value2 $value3), 0);
//Then set the session variable
$_SESSION['gesamtumsatz_kcal'] = $gesamtumsatz_kcal;
//Get my session variable on another page somewhere on my site
if(isset($_SESSION['gesamtumsatz_kcal'])) {
$gesamtumsatz_kcal = $_SESSION['gesamtumsatz_kcal'];
} else {
$gesamtumsatz_kcal = '';
}
//Echo my variable
echo $gesamtumsatz_kcal;
У вас есть какие-либо идеи, что не так? Я абсолютно доволен этим….
Большое спасибо!
-
-
-
-
-
-
-
- Я должен добавить это
-
-
-
-
-
-
Когда я определяю постоянную переменную без вычисления чего-то подобного:
//Define the variable
$_SESSION['test'] = 1056;
//Get the variable
$test = $_SESSION['test'];
//Echo the variable
echo $test;
Я всегда получаю правильное значение: 1056 обратно… Что это? Не могу понять
Комментарии:
1. Ни у кого нет ответа? Это так плохо …. снова
2. У меня была эта проблема раньше, и она была вызвана плагином безопасности (я считаю, что это безопасность), который удалил файл cookie сеанса
3. @NicolasGaller о, это звучит безумно: o Я использую все в одном WP Security, каково было решение?
4. Я не нашел прямого решения, но признаю, что не очень долго исследовал, потому что не хотел изменять настройки безопасности сайта (я не был основным администратором для этого).). В моем случае я разрабатывал интерфейсное веб-приложение для сайта, и поэтому я смог обойти это, сохранив настройки, которые я хотел сохранить в javascript, но это не вариант во всех случаях… если у вас та же проблема, что и у меня, вы сможете определить, просмотрев ответ, отправленный сайтом в Chrome dev tools, и убедившись, что файл cookie сеанса (PHPSESSID) не отправлен.
Ответ №1:
wordpres уничтожает сеанс, когда он не открывается. поэтому используйте
if(!session_id()) session_start();
в начале wp-config.php
или лучше в init
вашем коде / плагине