Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: не могу разобраться с сессиями

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: сессия не передаёт данные
arga
Отправлено: 09 Января, 2018 - 07:06:55
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Янв. 2018  


Помог: 0 раз(а)




Помогите новичку! Копаюсь в CMS, хочу написать простой сайтик и заодно в php разобраться. Столкнулся с проблемой авторизации на сайте. Хочу сделать чтобы на страницах выдавалось сообщение "Вы вошли как: юзер", а если не залогинился то отображаются кнопки входа и регистрации.
Есть главная страница index.php, она инклудит info.inc.php, она в свою очередь выводит содержимое переменной $content. Эта переменная содержит форму входа на сайт написанная на HTML(форма вызывает методом Post файл testreg.inc.php где происходит проверка логина пароля).
Как мне правильно открыть сессию? Прочитал кучу литературы и не могу понять всё равно. Открываю сессию в файле index.phpв самом начале. Данные сессия отображает только в файле testreg.inc.php., т.е. на странице где выполняется вход пишет : "Вы вошли как: Вася". Перехожу на главную и вижу:
'Notice: Undefined index: login in /var/www/vhosts/u0430752.plsk.re gruhosting.ru/mysite.ru/template /head_auth.php on line 2
Вы вошли как:"
 
 Top
Artix
Отправлено: 09 Января, 2018 - 16:17:09
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Дек. 2017  


Помог: 0 раз(а)




arga пишет:
Помогите новичку! Копаюсь в CMS, хочу написать простой сайтик и заодно в php разобраться. Столкнулся с проблемой авторизации на сайте. Хочу сделать чтобы на страницах выдавалось сообщение "Вы вошли как: юзер", а если не залогинился то отображаются кнопки входа и регистрации.
Есть главная страница index.php, она инклудит info.inc.php, она в свою очередь выводит содержимое переменной $content. Эта переменная содержит форму входа на сайт написанная на HTML(форма вызывает методом Post файл testreg.inc.php где происходит проверка логина пароля).
Как мне правильно открыть сессию? Прочитал кучу литературы и не могу понять всё равно. Открываю сессию в файле index.phpв самом начале. Данные сессия отображает только в файле testreg.inc.php., т.е. на странице где выполняется вход пишет : "Вы вошли как: Вася". Перехожу на главную и вижу:
'Notice: Undefined index: login in /var/www/vhosts/u0430752.plsk.re gruhosting.ru/mysite.ru/template /head_auth.php on line 2
Вы вошли как:"

http://programmer-weekdays[dot]ru/archives/301
http://programmer-weekdays[dot]ru/archives/395
http://programmer-weekdays.ru/archives/125

(Отредактировано автором: 09 Января, 2018 - 16:22:02)

 
 Top
Строитель Модератор
Отправлено: 09 Января, 2018 - 17:56:17
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




arga, набросал демо для примера:
index.php
Спойлер (Отобразить)

info.inc.php
Спойлер (Отобразить)

testreg.inc.php
Спойлер (Отобразить)

head_auth.php
Спойлер (Отобразить)
 
 Top
Artix
Отправлено: 09 Января, 2018 - 20:00:50
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Дек. 2017  


Помог: 0 раз(а)




Строитель пишет:
$_SERVER['REQUEST_METHOD'] == 'POST'

В чем разница if($_SERVER[‘REQUEST_METHOD’] == ‘POST’) между if(isset($_POST['submit'])) ?
хотя мне кажется второй варик это бред проверять кнопку но спрошу

(Отредактировано автором: 09 Января, 2018 - 20:09:16)

 
 Top
Строитель Модератор
Отправлено: 09 Января, 2018 - 20:15:56
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Artix, разница в том, что $_SERVER['REQUEST_METHOD'] == 'POST' проверяет, каким методом передаются данные, а isset($_POST['submit']) проверяет, какая именно нажата кнопка.
 
 Top
Artix
Отправлено: 09 Января, 2018 - 20:33:31
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Дек. 2017  


Помог: 0 раз(а)




Строитель пишет:
Artix, разница в том, что $_SERVER['REQUEST_METHOD'] == 'POST' проверяет, каким методом передаются данные, а isset($_POST['submit']) проверяет, какая именно нажата кнопка.

если я правильно тебя понял преждем чем использовать isset($_POST['submit']) я должен использовать $_SERVER['REQUEST_METHOD'] == 'POST' ??

(Отредактировано автором: 09 Января, 2018 - 20:37:58)

 
 Top
Строитель Модератор
Отправлено: 09 Января, 2018 - 20:48:43
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Artix пишет:
прежде чем использовать isset($_POST['submit']) я должен использовать $_SERVER['REQUEST_METHOD'] == 'POST' ?
Нет.

Строго говоря, выбор определённых инструментов зависит от конкретных задач. Например, если нужно проверить именно метод передачи, то разумнее использовать $_SERVER['REQUEST_METHOD']. Если методом POST передаются несколько значений, а вам надо получить значение конкретной формы, то правильнее проверять конкретную форму (или кнопку).

Ну и ещё надо помнить, что одну и ту же задачу можно решать двумя и более способами.
 
 Top
arga
Отправлено: 10 Января, 2018 - 04:29:40
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Янв. 2018  


Помог: 0 раз(а)




Спасибо всем кто откликнулся )))) Переделал как говорит Строитель, но всё равно получаю
Undefined index: user in /var/www/vhosts/u0430752.plsk.re gruhosting.ru/urvoenpravo.ru/ind ex.php on line 59

Вот ещё вопрос, это может быть связано с тем, что testreg.inc.php, head_auth.php, info.inc.php находятся в папке template, а индекс в корне? Сколько читал, когда запускается сессия не важно в каких папках что где лежит. Когда захожу в head_auth.php, пишет "привет, юзер", тут же перехожу на index.php и получаю выше указанную ошибку
(Добавление)
Локально всё заработало. На сайте проблема осталась. Покопался ещё, выяснил что когда перехожу на сайт по www[dot]mysite[dot]ru то "Привет, гость" а если без www просто mysite.ru всё отлично. Через конфиг обращение к сайту происходит как 'http://www.mysite.ru/'

(Отредактировано автором: 10 Января, 2018 - 05:01:11)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB