Другие языки программирования и технологии

Хранение данных

Хочу сделать свою базу пользователей. Где хранить данные о том, что пользователь вошел? Что бы ему постоянно на каждой странице не входить по новой. Момент регистрации и входа пользователя легко осуществить, а чтобы он оставался в системе где то нужно хранить данные о его входе (куки, сессии) . Но куки можно хранить и с помощью js и с помощью php, соответственно на сервере или клиенте ( но вроде всегда хранят на клиенте..) , а сессии вообще скидываются после закрытия браузера. Дак вот, где хранить? И с помощью чего? (js,php)
Лучше в сессиях =) Сессии находятся на сервере и с помощью XSS их нельзя украсть =)После успешной авторизации создайте сессионную переменную какую нибудь например $_SESSION['entered'] = 1
Потом в остальных частях сайта где есть контент который доступен только авторизованным юзерам, сделайте проверку на существование сессии об успешной авторизации... Если сессия есть значит юзер авторизован и он видит скрытый контент.. в противном случии можете сделать редирект на страницу авторизации или что то еще =)Время жизни сессии по умолчанию 15 минут.. то есть если пользователь авторизовался и не обновлял страницу 15 минут то сессия уничтожается и пользователь снова должен войти.. Время можно увеличить или уменьшить с помощью htaccess ..На счёт автологина.. обычно делают чекбокс "запомнить меня" а потом в обработчике проводят проверку поставил галочку юзер или нет? Если поставил то ему отправляют куки где например хранят его айди.. потом когда юзер закрывает браузер и снова приходит на сайт то скрипт проверяет есть ли куки.. проверяется это с помощью глобального массива $_COOKIE..то есть что то подобное

if(isset($_COOKIE['id'])) //Если куки есть сделать что то

Если есть то из БД вытаскивают логин и пароль того пользователя айди которого хранится в куках.. а потом тупо создают сессию об успешной авторизации и делают редирект на страничку юзера или куда то еще... Как то так =)

Итог

1)При успешной авторизации создайте сессию об успешной авторизации.. еще не забудьте проверить поставлена ли галочка в чекбоксе.. если поставлена отправьте куки

2)На тех страницах где контент доступен после авторизации проверьте существование сессии об успешной авторизации.. если сессия существует то пустить юзера в противном случии показать форму авторизации. .

Я знаю что ниасилил многа букф, но так получилось)) гг
Игорь Луцай
Игорь Луцай
9 098
Лучший ответ
обычно в сессиях хранят, да она сбрасывается через какое то время неактивности но так оно и правильно. А еще чтобы сохранялось навсегда обычно клиенту вешают куку соотвественно если он их не почистил и заходит на сайт то проверяют если такая кука у него стоит то автоматически входят
Евгений Шатов
Евгений Шатов
59 848
Геннадий Морозов но куки на клиенте хранить можно только через javascript, и как мне тогда вытащить эти куки с помощью php?
данные о входе ххранить в $_SESSION. Если хочется сохранять "залогиненность" между сессиями открытия/закрытия браузера (что само по себе не хорошо с точки зрения обеспечения безопасности). , то ставить куки и проверять $_COOKIE.