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

В сессию записываются другие данные

02.12.2012, 10:31. Показов 1066. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Session {
const SECRET_WORD = 'some';
public static $id = 1;
public static function create_token(){
     self::set('token', sha1(self::SECRET_WORD.time().uniqid().self::$id));//random строка
     self::set('marker', 'some_value');
}
public static function set($name, $value){ //кладет значение
       $_SESSION[$name] = $value;
}
public static function get($name){ //возвращает значение
        if(isset($_SESSION[$name])){
            return $_SESSION[$name];
        }
        else{
            return false;
        }
    }
}
....
echo Session::get('token') //значение Sha1().К примеру: ce5d2f5e1ab55884677f20de1d51df6ecc25a8dd
echo Session::get('marker') //some_value
В файл сессии значение sha1(token) пишется совершенно другое, как такое может быть?Функция create_token вызывается 1 раз.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2012, 10:31
Ответы с готовыми решениями:

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

Не записываются данные в куки на php
Пишу регистрацию и авторихзацию на AJAX. Сам код работает отлично, но данные в куки не...

Не записываются данные из формы в БД mysql
Взяла готовое решение из интернета, однако данные не записываться. В окне браузера отображается ...

Не записываются данные в базу данных mysql
Приветствую! При регистрации, ошибок нет, говорит что регистрация успешна, а данных в самой базе...

8
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 36
03.12.2012, 20:25  [ТС] 2
в сессию пишутся данные некорректные, если они сгенерированны случайно, кто с таким сталкивался? если обычную строку записать, то все хорошо
0
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
03.12.2012, 21:57 3
Цитата Сообщение от gfs2 Посмотреть сообщение
В файл сессии значение sha1(token) пишется совершенно другое
А что другое? С чем вы сравниваете, ведь вы же только один раз сохраняете в $_SESSION['token'] случайно сгенерированное значение... Второй раз такое значение уже не получить.
0
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 36
03.12.2012, 22:10  [ТС] 4
в том то и дело после в файл сохраняется другое значение, не то которое сгенерировано. Т.е. $_SESSION['token'] != token в файле, причем без перезагрузки страницы(если бы он опять генерировался), т.е. в файл сразу пишется неверное значение, я схожу с ума
0
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
03.12.2012, 22:33 5
Из приведенного вами кода не видно где вы и как сохраняете token в файл, покажите может будет понятнее
0
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 36
03.12.2012, 22:37  [ТС] 6
ну так механизм сессии сам это делает $_SESSION['x'] = y;
0
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
03.12.2012, 22:53 7
Цитата Сообщение от gfs2 Посмотреть сообщение
ну так механизм сессии сам это делает $_SESSION['x'] = y;
Вы ищите файл сессии на сервере и ищите в нем значение token?

Не по теме:

А зачем это надо, если не секрет?

0
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 36
03.12.2012, 23:01  [ТС] 8
ну так там 1 файл всего моей сессии, все данные в нем нормальные, только token не правильный

Добавлено через 6 минут
Генерация токена нужна для защиты ajax от вызова с других доменов и тд. Защита от атак вообщем, ладно если ответа нету, то реализую по-другому как-нибудь
0
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
03.12.2012, 23:10 9
PHP
1
self::set('token', sha1(self::SECRET_WORD.time().uniqid().self::$id));
заменить на что-то типа
PHP
1
2
$token=sha1(self::SECRET_WORD.time().uniqid().self::$id);
self::set('token', $token);
и уже переменную $token сравнивать с Session::get('token')... А лезть в файл сессии... Если мы не хотим кого-то хакнуть, то содержимое этого файла вообще не должно нас интересовать. Ну или я не знаю

Добавлено через 2 минуты
Цитата Сообщение от gfs2 Посмотреть сообщение
Генерация токена нужна для защиты ajax от вызова с других доменов и тд. Защита от атак вообщем, ладно если ответа нету, то реализую по-другому как-нибудь
Интересно.
1
03.12.2012, 23:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2012, 23:10
Помогаю со студенческими работами здесь

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

Сохранить данные в сессию
Добрый день! у меня простой вопрос пишу корзину для ИМ на сессиях. Почти все получилось за...

не записываются данные при отправке запроса почему
1.php <!DOCTYPE html> <html lang="ru"> <head> <title>Заголовок</title> </head> <body> ...

Как загнать в сессию данные?
есть форма <input type='radio' name='chekgor' value='oven'> <input type='radio' name='chekgor'...


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

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