2010-01-13 4 views
0

Я надеялся, что кто-то может дать некоторую информацию о Cookies и Codeigniter, я прочитал там руководство пользователя по ним, поэтому у меня есть понимание того, как их установить, и т. Д. Я хочу знать, как я могу использовать например, если вы посмотрите на веб-сайт BBC, вы можете перетащить ящики, и он запомнит, где вы разместили их, из-за необходимости зарегистрироваться или войти в систему и т. д., поэтому я предполагаю, что он хранится в файле cookie ,Файлы cookie Codeigniter

На моем сайте у меня есть система меню, которая позволяет пользователю выбирать контент, который отображается на «своей» странице, теперь я не хочу, чтобы они регистрировались или регистрировались, поэтому я предполагаю, что смогу как-нибудь хранить содержимое, которое они запрашивали в cookie? Это возможно? В настоящее время они нажимают ссылку, и соответствующий контент извлекается из базы данных, используя идентификатор в URL-адресе и идентификатор в базе данных. Я просто сохраняю каждый запрошенный идентификатор? И если да, то как?

Благодаря

ответ

5

Тот факт, что вы используете CodeIgniter не имеет значения, как вы можете установить информацию печенья довольно легко с любой платформы, которую вы используете. CodeIgniter просто предоставляет функции обертки для файлов cookie, чтобы упростить их работу. Если вы знаете, как использовать помощник cookie CI, тогда у вас не должно возникнуть проблемы с этой работой.

Наиболее надежным решением было бы использовать файл cookie, который содержит уникальный идентификатор для этого пользователя. Этот уникальный идентификатор соответствует записи базы данных, содержащей параметры для пользователя. Сохраняя уникальный идентификатор в файле cookie, вы избегаете читать и писать в файл cookie при изменении настроек. Если вы добавите новые функции на свой сайт, которые нуждаются в их собственных настройках, вам не придется прикасаться к файлу cookie, вы просто добавите новые значения настроек в db. Кроме того, вы не хотите раскрывать информацию о настройках в вашем файле cookie, что может позволить кому-то отредактировать содержимое файла cookie, чтобы попробовать SQL-инъекцию или какую-либо другую атаку.

Вы можете создать несколько файлов cookie для своего сайта, чтобы я сделал новый файл cookie для уникального идентификатора в соответствии с пользовательскими настройками. Когда пользователь посещает ваш сайт, загружайте помощник cookie CI, а затем используйте помощник get_cookie ('unique_cookie'), чтобы найти файл cookie. Имя cookie 'unique_cookie' - это то, что вы используете как имя файла cookie, содержащего уникальный идентификатор пользователя.

Если get_cookie() возвращает false, то у пользователя нет файла cookie, поэтому он, вероятно, посещает первый раз, или он удалил файл cookie. Вам нужно создать новый файл cookie с помощью set_cookie ($ cookie_array). Метод set_cookie() принимает ассоциативный массив в качестве аргумента. Этот массив содержит значения для файла cookie, одним из которых является «имя», которое вы укажете на «unique_cookie», а «value» будет уникальным идентификатором (используйте метод random_string() вспомогательного элемента CI String для создания уникального идентификатора) , Пока вы настраиваете файл cookie, вы также хотите создать запись db с этим уникальным идентификатором, который содержит значения параметров по умолчанию.

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

Смежные вопросы