Сессии PHP против файлов cookie

Возможный дубликат:
Cookie VS Session
PHP: как работают файлы cookie и сеансы?

Я пытаюсь изучить PHP. У меня есть веб-сайт проекта, где числа постоянно генерируются, изменяются и сохраняются в переменных javascript. Существует очень мало php, за исключением сохранения этих переменных в базе данных, когда пользователь нажимает кнопку «сохранить в базе данных». Сегодня я использовал сайт, перешел на другой сайт и вернулся, и все мои данные исчезли, так как я сначала не сохранил их в базе данных. Я хотел бы сохранить эти данные, чтобы они заполнялись повторно, если я покину страницу. что было бы лучшим способом сделать это? сеансы php, файлы cookie или файлы cookie javascript? подскажите, заранее спасибо!


person cream    schedule 06.07.2012    source источник


Ответы (5)


сеансы php, файлы cookie или файлы cookie javascript?

Существует либо сеанс, либо файл cookie, поэтому есть две вещи, а не три.

Теперь сеанс также является файлом cookie, но сохраняется на сервере, в отличие от простого файла cookie JS, который сохраняется на машине пользователя.

Я хотел бы сохранить эти данные, чтобы они заполнялись повторно, если я покину страницу.

Если это конфиденциальная информация, всегда используйте базу данных для ее хранения, а если это не конфиденциальная информация:

  • Используйте файлы cookie или localStorage, но они могут быть удалены пользователем.
  • Использовать сеанс, который не может быть удален пользователем, но срок действия которого истечет в зависимости от настроек php.ini.

С другой стороны, чтобы сохранить его навсегда, используйте базу данных.

person Blaster    schedule 06.07.2012

Файлы cookie PHP и Javascript — это одно и то же, это просто данные, хранящиеся на стороне клиента, php и javascript — это технология, используемая для их хранения, ничего более.

Поскольку файлы cookie PHP могут быть установлены только до того, как вывод будет отправлен на страницу, кажется, что лучше всего использовать файлы cookie Javascript.

Вы бы использовали файлы cookie вместо сеанса, потому что упомянули, что покинете страницу, и в этом случае сеанс прекратится, и вы потеряете свои данные.

person 1321941    schedule 06.07.2012

Используйте сеансы, если вы хотите временно хранить некоторые данные (на один сеанс - пока пользователь не закроет свой браузер).

Используйте файлы cookie, если вы хотите хранить данные дольше (например, сертификаты входа).

Вы также должны иметь в виду, что пользователь может изменить значение сохраненных файлов cookie, но не может для сеансов, поскольку сеансы хранятся на сервере, а файлы cookie хранятся на компьютере клиента.

person Nikola K.    schedule 06.07.2012

Я считаю, что файлы cookie - это ответ, который вам нужен, поскольку сеанс php сохраняется только между загрузками страниц, поэтому вы фактически уже отправляете данные обратно на сервер (а не то, что хотите), и, насколько я знаю, файлы cookie javascript - это просто установленные файлы cookie с джаваскриптом.

Итак, чтобы уточнить, я думаю, вы должны устанавливать файл cookie (с помощью javascript) каждый раз, когда создаются некоторые данные, которые будут храниться локально в браузере (все еще довольно изменчивы), пока пользователь не нажмет кнопку сохранения, где он будет отправлен обратно сервер.

person Billy Moon    schedule 06.07.2012

Файлы cookie PHP, если вы хотите хранить их в течение длительного времени, но не заботитесь о том, меняет ли пользователь значения или нет.

Сеансы PHP, если вы не хотите, чтобы пользователь имел возможность изменять значения, но не нуждается в долгосрочном хранении (это похоже на то, что вы хотите)

И сеанс, и файлы cookie, если вы хотите хранить их в течение длительного времени и не хотите, чтобы пользователи имели доступ к изменению значений. Вы хотели бы использовать базу данных с этим, чтобы вы могли проверить информацию о файлах cookie с базой данных, чтобы убедиться, что она верна, а затем сохранить данные в сеансах для легкого доступа.

Это то, как многие сайты «запоминают пользователей». Они хранят куки с именем пользователя и паролем, а затем, когда пользователь посещает сайт (если сеанс не установлен), они сверяют имя пользователя и пароль с базой данных, а затем, если он правильно, они создают сеанс, специфичный для этого пользователя.

person maxhud    schedule 06.07.2012
comment
по вашей логике, используя сеансы и файлы cookie, пользователь может манипулировать данными после истечения срока действия сеанса..? - person Billy Moon; 07.07.2012
comment
«Сеансы PHP, если вы не хотите, чтобы у пользователя была возможность изменять перехват сеанса значений?» - person 1321941; 07.07.2012
comment
используйте файлы cookie для хранения информации о пользователе, сверяйте ее с базой данных, а затем используйте сеансы для быстрого доступа к подтвержденной вами информации без использования большого количества ресурсов. что касается захвата, вероятность захвата сеанса практически равна нулю ... вам нужно будет угадать 20-значный случайный код! - person maxhud; 07.07.2012