Тот факт, что вы используете 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, когда пользователь впервые заходит на ваш сайт и объект сеанса еще не создан.