![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Agares |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 376 Регистрация: 20.5.2007 Где: Минск Репутация: нет Всего: нет |
Делаю я и-нет магазин, когда чувак добавляет товар в корзину, то счетчик должен увеличиться на единицу.
вот код:
Когда чувак просто входит в корзину, то счетчик обнуляется, а когда добавляет товар то доходит до 1 и выше не подымается. Это сообщение отредактировал(а) Agares - 19.8.2007, 17:28 |
|||
|
||||
| HackMan |
|
|||
|
Юзверь-программист ![]() ![]() Профиль Группа: Участник Сообщений: 391 Регистрация: 18.6.2005 Где: .ua Репутация: 8 Всего: 9 |
а где start_session()?
-------------------- Завтра - это самый загруженный день недели ![]() ![]() |
|||
|
||||
| Agares |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 376 Регистрация: 20.5.2007 Где: Минск Репутация: нет Всего: нет |
Он прописан в system.php
|
|||
|
||||
| SelenIT |
|
||||||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 32 Всего: 401 |
Agares, переменная
Зачем вообще переопределять все на свете? Зачем карусель с
, почему бы не сделать просто
По-моему, отлаживать код и отслеживать значения станет проще... -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
||||||
|
|||||||
| Agares |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 376 Регистрация: 20.5.2007 Где: Минск Репутация: нет Всего: нет |
Изменил код:
Тоже самое ... Добавлено через 5 минут и 12 секунд Он увеличивает до единицы и все ... больше не увеличивает( |
|||
|
||||
| HackMan |
|
|||
|
Юзверь-программист ![]() ![]() Профиль Группа: Участник Сообщений: 391 Регистрация: 18.6.2005 Где: .ua Репутация: 8 Всего: 9 |
Вы точно уверены, что сессия нормально инициализируется?
Может start_session() вызывается неправильно? Проверьте значения переменных
-------------------- Завтра - это самый загруженный день недели ![]() ![]() |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Agares, мой Вам совет. Реализуйте сессию через БД, отдавая пользователю только ID сессии. Так построен OSCommerce - лидер, на сегодняшний день, в области интернет-магазинов общего распространния...
У Вас будет проблем раз в 4-5 меньше, чем сейчас... |
|||
|
||||
| Agares |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 376 Регистрация: 20.5.2007 Где: Минск Репутация: нет Всего: нет |
Сессия нормально проходит ...
А не подскажете сам алгоритм сессий через БД? |
|||
|
||||
| Agares |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 376 Регистрация: 20.5.2007 Где: Минск Репутация: нет Всего: нет |
Кстати, я вот тоже подумывал над тем, что бы через БД реализовать сэссию ...
|
|||
|
||||
| aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: нет Всего: 38 |
Мне тоже интересно. Можно подробнее? -------------------- ![]() |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
А что подробнее. Создаем таблицу sessions с полями, которые нам нужны. Что раньше писали в сессию пишем в Базу, при этом для каждой записи записываем session_id, который идет пользователю и еще одно дополнительное поле - время записи, чтобы потом удалять старые. Все. Пользователь заходит, по пользовательскому сиду достаем запись в базе и работаем.
|
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
Но как мне кажется, стандартный механизм сессий будет работать быстрее, нежели с базой... разве нет?
-------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
-=Ustas=-, скорее всего быстрее, но не намного, данные все равно в файл пишутся...
Зато надежность - на порядок выше. И удобство работы. |
|||
|
||||
| GiV |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 13.7.2006 Где: rus|53 Репутация: 4 Всего: 9 |
Собственно пример с сессиями в БД:
http://ru2.php.net/manual/ru/function.sess...ndler.php#60316 А вообще если о скорости, то лучше использовать shared memory |
|||
|
||||
| WIPS |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 22.5.2006 Где: Украина, Киев Репутация: 1 Всего: 8 |
А можно поподробнее об этом? --------------------
Автопроизводители, машины, марки, модели! |
|||
|
||||
| GiV |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 13.7.2006 Где: rus|53 Репутация: 4 Всего: 9 |
Да собственно рассказывать не о чем, потому как на шаред хостинге или включено или нет (обычно нет).
Варианта использования shared memory 2-а: 1. Собрать PHP с поддержкой shared memory allocation (mm) --with-mm=[DIR] Однако в комментариях этого делать не советуют из-за конфликтов при работе всего этого дела под Apache (PHP просто вылетает в корку при попытке создании сессии) 2. Воспользоваться возможностями ОС (кроме Windows). А именно tmpfs или md. Собственно у меня под FreeBSD сделано так:
Добавлено через 10 минут и 51 секунду Да... БД, в частности MySQL, тоже позволяют хранить таблицы в памяти, так что по сути доступное всем решение это создание таблиц сессий в базе данных типа HEAP ( или ENGINE = MEMORY ) Так что если не смущает дополнительная нагрузка на сервер БД, то это выход для получения достаточно производительного механизма сессий. Хотя работа напрямую с shared memory все же быстрее, ИМХО. |
|||
|
||||
| Agares |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 376 Регистрация: 20.5.2007 Где: Минск Репутация: нет Всего: нет |
У меня вопрос стоит не в скорости работы, а в качестве, думаю, лучше будет на БД осуществить сессии. Спасибо за тот код, который вы привели, очень помог. Сейчас буду сидеть переписывать ...
Вот еще один вопрос, как передавать session_id пользователю? не делать же постоянно ссылку типа mysite.com?id=clf265k264g265j4okf5glkf242ghpd Есть вариант этот id в куки записывать, но я с куками не умею работать :( |
|||
|
||||
| Severyanin |
|
|||
![]() Исследователь ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 31.7.2007 Где: Россия, Омск Репутация: нет Всего: 9 |
Так в них нет ничего сложного. Устанавливаешь куку функцией setcookie(), а при необходимости берешь из глобального массива $_COOCIES. Вот и все
-------------------- "Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл "Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов |
|||
|
||||
| Agares |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 376 Регистрация: 20.5.2007 Где: Минск Репутация: нет Всего: нет |
У меня появилась мысль, можно ведь сделать так:
Как думаете? Добавлено через 55 секунд Severyanin, можна примерчик кода записи в куки и чтения из него? |
|||
|
||||
| GiV |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 13.7.2006 Где: rus|53 Репутация: 4 Всего: 9 |
В случае если будете переопределять session_handler (http://ru2.php.net/manual/ru/function.session-set-save-handler.php), то сессия будет сохранятся в куках (особенное если включен session.use_only_cookies) Достаточно узнать IP жертвы, и сессия будет подделана злоумышленником. Два разных пользователя из одной локальной сети (сидящие за proxy-сервером) будут иметь одну и ту же сессию. Идентификатор сессии должен быть: а) уникальным б) с большим элементом случайности Как вариант
http://ru2.php.net/setcookie - достаточно примеров и записи и чтения. Да еще при чтении сессии из кук, стоит проверять полученные данные на "внешнюю похожесть" на ид сессии, либо удалять то чего в ид не может быть, например так:
|
||||||
|
|||||||
| Agares |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 376 Регистрация: 20.5.2007 Где: Минск Репутация: нет Всего: нет |
по поводу куков, я правильно понял:
И еще вопрос, зачем вот эта строчка:
что она делает? Добавлено через 1 минуту и 28 секунд и еще вопрос:
Что это за функции? Добавлено через 4 минуты и 59 секунд да и еще, как удалить куки? Добавлено через 6 минут и 41 секунду Слушайте, так с помощью куков ведь можно сделать автологин!! |
||||||
|
|||||||
| GiV |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 13.7.2006 Где: rus|53 Репутация: 4 Всего: 9 |
Для проверки того, что вместо md5-хэша в session_id в куке плохой дядя не воткнул SQL/CSS инъекцию. Собственно функции для генерации уникальных значений ид.
Сам код должен быть приблизительно таким
Это сообщение отредактировал(а) GiV - 20.8.2007, 12:28 |
||||
|
|||||
| Agares |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 376 Регистрация: 20.5.2007 Где: Минск Репутация: нет Всего: нет |
Аааа понятно, спасибо БОЛЬШОЕ!!!!
Было б у меня 100 сообщений, поставил бы плюсик ;) |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |