PHP.SU

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


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

> Без описания
gheka
Отправлено: 11 Января, 2012 - 18:48:13
Post Id



Частый гость


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


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




Здравствуйте сейчас хотел переписать авторизацию сделанную на COOKIE,
Хочу сделать с применением SESSION

Авторизация работает с SESSION пока включены приём КУКОВ как их отключаешь авторизация не срабатывает.
Заметил что в куках браузера записывается параметр PHPSESSID если его удаляешь этот кук происходит вылет с сайта.

что это такое и как можно обойтись без него.
Неужели СЕССИИ не работают без применения кукок ( COOKIE ).

Ещё вопрос как можно обновить время жизни записанного COOKIE
То есть как в сессиях стандартное время стоит 15 минут при обновлении страницы сесия перезаписывается и время продлевается ещё на 15 минут.

setcookie("hashes","".md5($_POST['password'])."", time () +60*60)
Записана $_COOKIE ['hashes'] на 60 минут как обновить время жизни при обновлении страницы?

(Отредактировано автором: 11 Января, 2012 - 18:48:36)

 
 Top
Panoptik
Отправлено: 11 Января, 2012 - 18:53:19
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2497
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




вообще сессия должна опознавать пользователя. и для того чтобы однозначно это сделать он присваивает в куку значение PHPSESSID. если куки отключены сессия попробует поискать это значение в параметре $_GET и если там ничего не найдет то подумает что пользователь не имеет сессии и назначит ему новую, как будто он новый, вне зависимости авторизирован или нет.

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


-----
Just do it
 
 Top
Bio man
Отправлено: 11 Января, 2012 - 18:54:15
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2752
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




Это ид сессии. если куки отключены то он передается методом GET, если включены соотв. директивы php.ini. без него сервер не может знать что за пользовател пришел и какую сессию ему отдавать.
 
 Top
Panoptik
Отправлено: 11 Января, 2012 - 18:54:40
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2497
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




PHP:
скопировать код в буфер обмена
  1. setcookie("hashes","".md5($_POST['password'])."", time () +60*60)
вот это вставьте на странице до вывода текста, и кука будет каждый раз обновляться и продлеваться


-----
Just do it
 
 Top
gheka
Отправлено: 11 Января, 2012 - 20:12:19
Post Id



Частый гость


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


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




Panoptik пишет:
PHP:
скопировать код в буфер обмена
  1. setcookie("hashes","".md5($_POST['password'])."", time () +60*60)
вот это вставьте на странице до вывода текста, и кука будет каждый раз обновляться и продлеваться


это метод я пробовал но при этом создается новый кук и получается что их набирается очень много.
Нельзя сделать чтобы просто обновлялось время жизни не создовая при этом новый кук с токим же именем.

И правильно я понял что без включенных куков сессии работать не будет. И сессии только нужны чтобы не воровали логин и пароли из куков.
И если куки не включить то авторизоваться нельзя будет?
 
 Top
Panoptik
Отправлено: 11 Января, 2012 - 20:21:00
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2497
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




поставьте параметр path="/" в куки
(Добавление)
gheka пишет:
И правильно я понял что без включенных куков сессии работать не будет.
для работы сессии нужны либо куки либо гет-параметры. так как гет-параметры вы вряд ли используете, то по большому счету сессия работать не будет. точнее будет, но для вас эффекта не будет никакого
gheka пишет:
И сессии только нужны чтобы не воровали логин и пароли из куков.

нет. сессии нужны чтобы хранить данные между перезагрузками страниц. так как http протокол работает по принципу запрос-ответ и после забывает обо всем что было. то отличить 2 одинаковых запроса от одного пользователя он никак не может, а думает что это 2 разных пользователя. так вот как раз тут и помогает сессия. она идентифицирует пользователя и на второй запрос уже будет знать что это тот же пользователь, и взависимости от этого можно реализовывать разные функции с роду авторизации и прочего


gheka пишет:
И если куки не включить то авторизоваться нельзя будет?

авторизироваться можно, но ваша авторизация будет длиться до следующего обновления страницы и после вся информация успешно забудется и прийдется авторизироваться снова

(Отредактировано автором: 11 Января, 2012 - 20:28:01)



-----
Just do it
 
 Top
gheka
Отправлено: 11 Января, 2012 - 21:20:00
Post Id



Частый гость


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


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




Panoptik пишет:
поставьте параметр path="/" в куки
(Добавление)
gheka пишет:
И правильно я понял что без включенных куков сессии работать не будет.
для работы сессии нужны либо куки либо гет-параметры. так как гет-параметры вы вряд ли используете, то по большому счету сессия работать не будет. точнее будет, но для вас эффекта не будет никакого
gheka пишет:
И сессии только нужны чтобы не воровали логин и пароли из куков.

нет. сессии нужны чтобы хранить данные между перезагрузками страниц. так как http протокол работает по принципу запрос-ответ и после забывает обо всем что было. то отличить 2 одинаковых запроса от одного пользователя он никак не может, а думает что это 2 разных пользователя. так вот как раз тут и помогает сессия. она идентифицирует пользователя и на второй запрос уже будет знать что это тот же пользователь, и взависимости от этого можно реализовывать разные функции с роду авторизации и прочего


gheka пишет:
И если куки не включить то авторизоваться нельзя будет?

авторизироваться можно, но ваша авторизация будет длиться до следующего обновления страницы и после вся информация успешно забудется и прийдется авторизироваться снова


Спасибо за разъяснения.

Скажите пожалуйста можно ли как то продлить время жизни сессии.

То есть по умолчанию оно составляет 15 минут можно как то сделать чтобы было допустим 25 минут т.д?
Имеется без перезагрузки страницы так как я знаю что после перезагрузки время обновляется.
 
 Top
Okula
Отправлено: 11 Января, 2012 - 21:30:54
Post Id



Участник


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


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




Можно покопаться в настройках PHP (файл php.ini)
(Добавление)
Параметр
session.gc_maxlifetime = 1440
где 1440 количество секунд по истечению которых сессия будет разрушена.
 
 Top
gheka
Отправлено: 11 Января, 2012 - 22:18:27
Post Id



Частый гость


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


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




Okula пишет:
Можно покопаться в настройках PHP (файл php.ini)
(Добавление)
Параметр
session.gc_maxlifetime = 1440
где 1440 количество секунд по истечению которых сессия будет разрушена.


Это не верянт так как у себя на сервере сделать это можно а вот на хостинге вряд ли.

Других способов нет?

и ещё вопрос не по этой теме. есть запрос.
PHP:
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query ( "SELECT * FROM `" . DB_PREFIX . "user` WHERE `email`='" . $_POST ['usermail'] . "'" );
  3.         if (mysql_num_rows ( $result ) != 0) {
  4.                 $user_list = @mysql_fetch_assoc ( $result );
  5.  


Для чего ставится знак @ ?
перед @mysql_fetch_assoc ( $result );
 
 Top
Plusminuz
Отправлено: 11 Января, 2012 - 22:23:44
Post Id



Частый гость


Покинул форум
Сообщений всего: 156
Дата рег-ции: Апр. 2011  
Откуда: Россия


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




@ - подавление ошибок


-----
учусь... Улыбка
 
 Top
Okula
Отправлено: 11 Января, 2012 - 22:51:03
Post Id



Участник


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


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




gheka пишет:
Это не верянт так как у себя на сервере сделать это можно а вот на хостинге вряд ли.

PHP:
скопировать код в буфер обмена
  1. $set = ini_set('session.gc_maxlifetime', 10000);

Если хостер разрешает изменять эту опцию.
Или в .htaccess строка
CODE (htmlphp):
скопировать код в буфер обмена
  1. php_value session.gc_maxlifetime 10000

Проверить изменилось ли значение можно так

Выведет текущее значение

(Отредактировано автором: 11 Января, 2012 - 22:57:35)

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB