[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сессии и Куки
Хиросим
Всем доброго дня.
Добрался я до изучения сессий и куков. Материала по теме достаточно, но в голове все равно сразу не усваивается... Вот решил проконсультироваться по основным недопониманиям.
Для начала изложу задачу - на сайте небольшой набор товаров и система заказа оных. Делать авторизацию пользователей не хочу - просто при нажатии на кнопку "положить товар в корзину" хотелось бы, чёб стартовала сессия, далее накидал товар в корзину, нажал "оформить заказ", ввел минимальные контактные данные, заказ улетел на почту, сессия завершена.
Затруднения в следующем - если использовать куки, то (если я правильно понял) пользователи с отключенными куками не смогут сделать заказ. Если же использовать механизм сессий, то он будет добавлять идентификаторы сессии во все ссылки, что наверняка не понравится поисковым роботам, а это мне нафиг не надо. Вычитал в этой статье, что PHP сам анализирует поддержку кук браузером посетителя и, если их нет, то запускает сессию... Вот тут меня конкретно заклинило!!!
Еслия я пишу запрос setCookie, а в ответ получаю тишину (куки отключены), то что, PHP сам создает массив $_SESSION и заносит туда данные по сессии??? а чтобы получить к нему доступ я на каждой странице сайта должен прописать функцию session_start()???? Какая то каша несуразная получается.
Где я неправ???
Еще я хотел бы, чтоб уважаемые форумчане подтвердили или опровергли некоторые мои выводы из теории по этому вопросу:
1. Куки более прогрессивный метод идентификации пользователя по сравнению с сессиями, но требует поддержки браузера пользователя. Сессии же независимы, но засоряют ссылки идентификаторами сессии, что может быть негативно воспринято поисковыми роботами.
2. Функцию вызова сессии session_start() необходимо добавлять на каждую страницу сайта, где требуется использование сессии. Функцию запроса куки можно поставить один раз ?????? в любом месте сайта?????? и установить параметр path "/" для распространения куки на весь сайт или прописать путь к страницам на которые кука должна распространяться.

Так ли это??




Спустя 1 день, 17 минут, 6 секунд (29.03.2010 - 10:14) Guest написал(а):
smile.gif)
Видимо слишком тупые вопросы задаю, раз такая тишина в эфире....
Решил исследовать сессии методом научного тыка.. расставил на всех страницах session_start() и вывожу идентификатор
<?php print session_id( );?>, который по чесному выводится... Но я не вижу чтобы изменялись ссылки. ПОЧЕМУ???

Спустя 9 минут, 39 секунд (29.03.2010 - 10:24) twin написал(а):
Ссылки будут меняться тогда, когда нет возможности установить сессионную куку. То бишь при отключенных последних.
Что бы маленько понятнее было:
$_SESSION - это обычный суперглобальный массив, как $_POST или $_GET.
Находится в оперативной памяти и ведет себя как любой обыкновенный массив. Фишка сессий в том, что если включить механизм session_start() то начальное значение этот массив получит из источника хранения (чаще из специального файла на сервере). А так же по окончании работы скрипта он (массив) будет сохранен туда же.

Доступ к файлу осуществляется по идентификатору сессии, а вот он уже пишется либо в сессионную куку, либо (если не получается) прилепляется к адресу. Поисковые роботы на это не обращают внимание, можно не переживать.

Спустя 2 часа, 56 минут, 8 секунд (29.03.2010 - 13:20) Хиросим написал(а):
То есть при старте сессии пхп в любом случае отправляет куку со значением session_id()????
тогда не понятно с каким именем??? и остальными параметрами?? и как их изменить если я не прописываю в коде setcookie???

Если я правильно понял, то для организации корзины покупок для конкретной сесиии я должен в бд создать таблицу(т), куда заносится переменная.. ну допустим $x=session_id(), и копируются данные по товару из основной таблицы с товаром.
ну и сочинить механизм увеличения количества товара если $x и id такого товара уже есть в таблице(т).
так???

Спустя 1 час, 45 минут, 50 секунд (29.03.2010 - 15:05) twin написал(а):
Еще раз внимательно нужно прочитать то, что я написал.
$_SESSION['карзина'] = 'товар';
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.