MMGP logo
Присоединяйтесь к нашему инвестиционному форуму, на котором уже 642,430 пользователей. Чтобы получить доступ ко многим закрытым разделам и начать общение - зарегистрируйтесь прямо сейчас.
Все, что относится к Web-Программированию (PHP, Perl, JavaScript, MySQL, XML и т.д.)
Первый пост Опции темы
Старый 15.10.2015, 13:31
#1
Специалист
 
Имя: Андрей
Пол: Мужской
Инвестирую в: разработка сайтов
Регистрация: 02.07.2010
Сообщений: 1,665
Благодарностей: 524
Нужна помощь по сессиям - от А до Я

Пишу небольшой проект, нужна помощь по сессиям.
Часть первая:
Главная имеет обычный код, просто форма для авторизации:
PHP код:
<html>
<head>
<title>Админка</title>
</head>

<body>

<?
echo '<form action="logh.php" method="post">
Введите логин: <input type="text" name="login"><br>
Ваш пароль: <input type="password" name="pass"><br>
<input type="submit" value="Вход в админку"></form>';

?>

</body>
</html>
Дальше страница logh.php, которая проверяет пароль. Например, логин и пароль admin:
PHP код:
<?
session_start();
?>
<html>
<head><meta charset="utf-8"><title>Админка </title>

</head>

<body>
<?
$loger=$_POST['login'];
$para=$_POST['para'];

if ($loger=='admin' && $pass=="admin"){
$_SESSION['Login'] = 'YES';
echo 'что попало';
} else {
$_SESSION['Login']="NO";
echo 'не вошел. закрытая зона. ЧТобы войти <a href="index.php">вернитесь на главную</a>';
}
?>
</body>
</html>
И вот вопросы:
1) правильно ли я делаю session_start(); ?
2) правильный ли алгоритм проверки логина/пароля?

Все работает, но может подскажите на начальном этапе что не так? Спасибо.

p.s. Часть первая, потому что по мере написания проекта вопросы будут возникать и дальше
__________________
ибо ленивый я.мой bdseo.ru
Меняйся выгодно: BTC, BTC-E, WMZ, PM, WIRE, SEPA
An27 вне форума
Старый 09.11.2015, 19:16
#2
Интересующийся
 
Имя: Антон
Пол: Мужской
Адрес: Казань
Инвестирую в: Стартапы
Регистрация: 15.10.2015
Сообщений: 46
Благодарностей: 5
Re: Нужна помощь по сессиям - от А до Я

Тут походу нет никого...
__________________
Барина и в лаптях видно.
teslatoy вне форума
Старый 12.11.2015, 17:51
#3
Специалист
 
Имя: Андрей
Пол: Мужской
Инвестирую в: разработка сайтов
Регистрация: 02.07.2010
Сообщений: 1,665
Благодарностей: 524
Автор темы Re: Нужна помощь по сессиям - от А до Я

Цитата:
Сообщение от teslatoy Посмотреть сообщение
Тут походу нет никого
видимо так и есть, либо просто дают нам самим думать
__________________
ибо ленивый я.мой bdseo.ru
Меняйся выгодно: BTC, BTC-E, WMZ, PM, WIRE, SEPA
An27 вне форума
Старый 17.11.2015, 02:07
#4
Интересующийся
 
Имя: Антон
Пол: Мужской
Адрес: Казань
Инвестирую в: Стартапы
Регистрация: 15.10.2015
Сообщений: 46
Благодарностей: 5
Re: Нужна помощь по сессиям - от А до Я

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

.htaccess сайта содержит строки:
RewriteCond %{HTTP_HOST} ^www.site.com
RewriteRule (.*) https://site.com/$1 [R=301,L]
<IfModule mod_rewrite.c>
php_value session.cookie_domain ".site.com"
</IfModule>

.htaccess поддомена содержит строки:
<IfModule mod_php5.c>
RewriteCond %{HTTP_HOST} ^my.site.com
RewriteRule (.*) https://my.site.com/$1 [R=301,L]
</IfModule>
php_value session.cookie_domain ".site.com"

сайт на битриксе, кабинет на поддомене - самописный

в битриксе стоят галки в настройках модулей:
Распространять куки на все домены:
Использовать защищенное хранение авторизации в cookies:
Распространять авторизацию на все домены:

в настройах сайта указаны доменные имена:
site.com
my.site.com
__________________
Барина и в лаптях видно.
teslatoy вне форума
Старый 17.11.2015, 08:05
#5
 
Пол: Мужской
Инвестирую в: Свой бизнес
Регистрация: 13.12.2006
Сообщений: 5,553
Благодарностей: 3,381

награды Ветеран MMGP.RU Волшебный горшочек 
Re: Нужна помощь по сессиям - от А до Я

Цитата:
Сообщение от An27 Посмотреть сообщение
:
1) правильно ли я делаю session_start(); ?
2) правильный ли алгоритм проверки логина/пароля?
1. правильно.
2. неправильно.


Цитата:
Сообщение от teslatoy Посмотреть сообщение
Проблема: авторизация на сайте срабатывает, перекидывает на поддомен, на нем сессия сохраняется, а на сайте исчезает
изучите детали самой куки, которая создается.
странно, что битрикс её создает и сам не видит.

попробуйте убрать ваши настройки из хтацесса - пускай битрикс сам делает обработку. должен бы уметь.
dkameleon вне форума
Сказали спасибо 2 раз(а):
An27 (17.11.2015), teslatoy (17.11.2015)
Старый 17.11.2015, 14:49
#6
Интересующийся
 
Имя: Антон
Пол: Мужской
Адрес: Казань
Инвестирую в: Стартапы
Регистрация: 15.10.2015
Сообщений: 46
Благодарностей: 5
Re: Нужна помощь по сессиям - от А до Я

Цитата:
Сообщение от dkameleon Посмотреть сообщение

изучите детали самой куки, которая создается.
странно, что битрикс её создает и сам не видит.

попробуйте убрать ваши настройки из хтацесса - пускай битрикс сам делает обработку. должен бы уметь.
Спасибо большое, буду пробовать.
__________________
Барина и в лаптях видно.
teslatoy вне форума
Старый 17.11.2015, 19:00
#7
Специалист
 
Имя: Андрей
Пол: Мужской
Инвестирую в: разработка сайтов
Регистрация: 02.07.2010
Сообщений: 1,665
Благодарностей: 524
Автор темы Re: Нужна помощь по сессиям - от А до Я

Цитата:
Сообщение от dkameleon Посмотреть сообщение
2. неправильно.
Пускай даже если с базы тяну. Дело не в этом.
А сам алгоритм. Сверяю логин и пароль - и если они совпадают: пускаю, если нет - не пускаю.
Проблема в условии (if ($loger=='admin' && $pass=="admin")) или в $_SESSION['Login']?

Спасибо.
__________________
ибо ленивый я.мой bdseo.ru
Меняйся выгодно: BTC, BTC-E, WMZ, PM, WIRE, SEPA
An27 вне форума
Старый 17.11.2015, 22:03
#8
 
Пол: Мужской
Инвестирую в: Свой бизнес
Регистрация: 13.12.2006
Сообщений: 5,553
Благодарностей: 3,381

награды Ветеран MMGP.RU Волшебный горшочек 
Re: Нужна помощь по сессиям - от А до Я

Цитата:
Сообщение от An27 Посмотреть сообщение
Проблема в условии (if ($loger=='admin' && $pass=="admin")) или в $_SESSION['Login']?
если просто открыть страницу без отпраки логина и пароля - авторизация будет сброшена.
dkameleon вне форума
Старый 18.11.2015, 19:30
#9
Специалист
 
Имя: Андрей
Пол: Мужской
Инвестирую в: разработка сайтов
Регистрация: 02.07.2010
Сообщений: 1,665
Благодарностей: 524
Автор темы Re: Нужна помощь по сессиям - от А до Я

Цитата:
Сообщение от dkameleon Посмотреть сообщение
авторизация будет сброшена.
Да, замечал такую проблему. Нужно алгоритм (если авторизированный) в начале страницы помещать, после session_start?
__________________
ибо ленивый я.мой bdseo.ru
Меняйся выгодно: BTC, BTC-E, WMZ, PM, WIRE, SEPA
An27 вне форума
Старый 19.11.2015, 19:03
#10
 
Пол: Мужской
Инвестирую в: Свой бизнес
Регистрация: 13.12.2006
Сообщений: 5,553
Благодарностей: 3,381

награды Ветеран MMGP.RU Волшебный горшочек 
Re: Нужна помощь по сессиям - от А до Я

Цитата:
Сообщение от An27 Посмотреть сообщение
Да, замечал такую проблему. Нужно алгоритм (если авторизированный) в начале страницы помещать, после session_start?
нужно проверять, что происходит ПОСТ запрос
dkameleon вне форума
Старый 01.12.2015, 19:28
#11
Специалист
 
Имя: Андрей
Пол: Мужской
Инвестирую в: разработка сайтов
Регистрация: 02.07.2010
Сообщений: 1,665
Благодарностей: 524
Автор темы Re: Нужна помощь по сессиям - от А до Я

Цитата:
Сообщение от dkameleon Посмотреть сообщение
что происходит ПОСТ запрос
а можете подробнее? Сейчас опять взялся за проект, не могу понять о чем речь идет. Спасибо
__________________
ибо ленивый я.мой bdseo.ru
Меняйся выгодно: BTC, BTC-E, WMZ, PM, WIRE, SEPA
An27 вне форума
Старый 01.12.2015, 20:09
#12
Любитель
 
Пол: Мужской
Инвестирую в: Форекс
Регистрация: 09.12.2012
Сообщений: 325
Благодарностей: 122
Re: Нужна помощь по сессиям - от А до Я

Не мешало бы проверять POST переменные на isset, на поздних версиях php это уже вроде как обязалово.

- а ещё значение переменной $pass не присвоено, нужно поменять $para=$_POST['para']; на $pass=md5($_POST['para']);

- и конечно пароли лучше хранить в хеше

<?

if (isset($_POST['login']) && isset($_POST['para'])){

$loger=$_POST['login'];
$para=md5($_POST['para']);

if ($loger=='admin' && $pass=="admin"){
$_SESSION['Login'] = 'YES';
echo 'что попало';
} else {
$_SESSION['Login']="NO";
echo 'не вошел. закрытая зона. ЧТобы войти <a href="index.php">вернитесь на главную</a>';
}
}
?>

Последний раз редактировалось ARRAY97; 01.12.2015 в 23:28.
ARRAY97 вне форума
Старый 03.12.2015, 01:16
#13
 
Пол: Мужской
Инвестирую в: Свой бизнес
Регистрация: 13.12.2006
Сообщений: 5,553
Благодарностей: 3,381

награды Ветеран MMGP.RU Волшебный горшочек 
Re: Нужна помощь по сессиям - от А до Я

Цитата:
Сообщение от An27 Посмотреть сообщение
а можете подробнее? Сейчас опять взялся за проект, не могу понять о чем речь идет. Спасибо
$_SERVER['REQUEST_METHOD'] == 'POST'
dkameleon вне форума
Старый 05.12.2015, 03:17
#14
Специалист
 
Имя: Андрей
Пол: Мужской
Инвестирую в: разработка сайтов
Регистрация: 02.07.2010
Сообщений: 1,665
Благодарностей: 524
Автор темы Re: Нужна помощь по сессиям - от А до Я

Цитата:
Сообщение от dkameleon Посмотреть сообщение
REQUEST_METHOD
Извините за вопрос, но где должен быть этот код? То есть строка проверки алгоритма? На странице проверки данных логина/пароля, на всех страницах, где есть сессии? И еще, до начала сессий, или после:
Код:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
echo 'скрытый текст кабинета';
}
__________________
ибо ленивый я.мой bdseo.ru
Меняйся выгодно: BTC, BTC-E, WMZ, PM, WIRE, SEPA
An27 вне форума
Старый 05.12.2015, 17:03
#15
 
Пол: Мужской
Инвестирую в: Свой бизнес
Регистрация: 13.12.2006
Сообщений: 5,553
Благодарностей: 3,381

награды Ветеран MMGP.RU Волшебный горшочек 
Re: Нужна помощь по сессиям - от А до Я

PHP код:
 <?
session_start();
?>
<html>
<head><meta charset="utf-8"><title>Админка </title>

</head>

<body>
<?
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$loger=$_POST['login'];
$para=$_POST['para'];

if ($loger=='admin' && $pass=="admin"){
$_SESSION['Login'] = 'YES';
echo 'что попало';
} else {
$_SESSION['Login']="NO";
echo 'не вошел. закрытая зона. ЧТобы войти <a href="index.php">вернитесь на главную</a>';
}
}

if ($_SESSION['Login'] == 'YES') {
echo 'здесь выводим админку';
}
?>
</body>
</html>
приблизительно так.
dkameleon вне форума
Сказали спасибо:
An27 (06.12.2015)
Старый 06.12.2015, 00:53
#16
Специалист
 
Имя: Андрей
Пол: Мужской
Инвестирую в: разработка сайтов
Регистрация: 02.07.2010
Сообщений: 1,665
Благодарностей: 524
Автор темы Re: Нужна помощь по сессиям - от А до Я

Цитата:
Сообщение от dkameleon Посмотреть сообщение
приблизительно
Спасибо, то есть ПОСТ запрос нужно проверить один раз, а потом просто
if ($_SESSION['Login'] == 'YES'), то выводить другую скрытую инфу, так?
__________________
ибо ленивый я.мой bdseo.ru
Меняйся выгодно: BTC, BTC-E, WMZ, PM, WIRE, SEPA
An27 вне форума
Войдите, чтобы оставить комментарий.
Быстрый переход
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь в IPB Riphas Сайтостроение: общий форум 1 18.10.2016 01:05
Нужна помощь Ray'D Букмекерство: общий форум 7 14.10.2016 16:10
Нужна помощь Дмитрулин Веб-программирование 4 11.04.2013 14:45
нужна прога, нужна помощь Alexander Вопросы по маркетингу от новичков 8 27.03.2011 19:46