Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 19.04.2019
Сообщений: 15
1

Сессия не сохраняется, почему?

11.11.2019, 19:07. Показов 1181. Ответов 3

Author24 — интернет-сервис помощи студентам
Сессия не сохраняется, почему?

Ребята, подскажите пожалуйста.

Есть две кнопки "РУ" и "EN".
HTML5
1
2
    <a href="?lang=ru" id="langRU" class="active-lang">RU</a>
    <a href="?lang=en" id="langEN" class="">EN</a>
Если кликнули на какую либо кнопку срабатывает код, он вверху header.php
PHP
1
2
3
4
5
6
7
session_start();
 if($_GET['lang']) {
    $_SESSION['lang'] = trim(strip_tags($_GET['lang']));
    }
    else {
    $_SESSION['lang'] = 'ru';
    }
Ситуация такая, что когда кликаю на "EN" срабатывает сессия и она равна $_SESSION['lang']='en', но стоит мне перейти на другую страницу, то сразу же срабатывает условие else и сессия равна ru.
Почему не сохраняется 'en'?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2019, 19:07
Ответы с готовыми решениями:

Сессия не сохраняется
function com_profile(){ $link = $_SERVER.$_SERVER; if(preg_match('/logout/i', $link)){ ...

Не сохраняется сессия при переходе на другую страницу
Добрый день! Сабмитится форма на одной странице, обработчик обращается к бд, записывает значения в...

Почему отрубается сессия?
Здравствуйте. При разработке сайта на php и jquery столкнулся со следующей проблемой, через...

Почему запоминается сессия?
Почему, когда я запоминаю переменную в $_SESSION и закрываю браузер она сохраняется? Куки я не...

3
1113 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
11.11.2019, 22:06 2
Лучший ответ Сообщение было отмечено RionaSun как решение

Решение

RionaSun, это из серии: в слове "мир" четыре ошибки.

PHP
1
if($_GET['lang'])
если есть lang, то записываем в сессию, а если нет этого параметра, то записываем в сессию ru. Вот поэтому сессия и перезаписывается постоянно. А это что за валидация такая:
Цитата Сообщение от RionaSun Посмотреть сообщение
trim(strip_tags($_GET['lang']))
???

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
session_start();
if(isset($_GET['lang'])) {
   switch ($_GET['lang']){
       case 'en': 
          $_SESSION['lang'] = 'en';
          break;
       case 'ru': default:
          $_SESSION['lang'] = 'ru';
   }
}
 
if(empty($_SESSION['lang'])) {
   $_SESSION['lang'] = 'ru';
}
2
0 / 0 / 0
Регистрация: 19.04.2019
Сообщений: 15
12.11.2019, 10:23  [ТС] 3
Спасибо, все работает!
Ваш код очень красив
Учусь создавать сессии, вот по этой ссылке училась и создавала https://webformyself.com/princ... yx-sajtov/ там как раз и взяла эту валидацию....
0
1113 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
12.11.2019, 11:17 4
RionaSun, то что там творится, это просто ужас.

PHP
1
2
3
4
5
6
7
8
9
10
11
if($_GET['lang']) {
 $_SESSION['lang'] = trim(strip_tags($_GET['lang']));
 $date = time() + 30*24*60*60;
 setcookie('lang',trim(strip_tags($_GET['lang'])),$date);
}
else if ($_COOKIE['lang']) {
 $_SESSION['lang'] = $_COOKIE['lang'];
}
else {
 $_SESSION['lang'] = 'en';
}
вот это всё просто бессмысленный набор символов, более ничего.

Я бы Вам посоветовал забыть про этот сайт и никогда туда не заглядывать. Но я понимаю что для старта всё равно нужен какой-то путеводитель. В общем, главное чтобы Вы понимали что делаете, тогда Вы сами поймёте что есть хорошо а что есть плохо.
1
12.11.2019, 11:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2019, 11:17
Помогаю со студенческими работами здесь

Почему сессия опаздывает?
Всем привет! Создал страницу с капчей и результат сохраняю в сессию. Вывожу изображение(капчу) и...

Почему сессия выдает ошибку
Здравствуйте , я пилю сайт и вот столкнулся с такой проблемой . прописал сессию для сайта и на...

Не работает сессия при авторизации,не могу понять почему ?*
Создал класс сессию &lt;?php namespace Modules; class Session { private $logged_in = false; ...

Почему при переходе на новую страницу создается новая сессия?
При переходе на новую страницу сессия не сохранняетса а создаетса новая сессия проверял по id...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru