Codeigniter печенье - PullRequest
       9

Codeigniter печенье

0 голосов
/ 13 января 2010

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

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

Спасибо

1 Ответ

5 голосов
/ 13 января 2010

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...