cookiejar в PHP Curl

В случае PHP Curl, когда нам нужно хранить / читать файлы cookie с точки зрения веб-очистки, кажется, что многие ресурсы там рекомендуют использовать файл для обработки файлов cookie с помощью этих опций

curl_setopt($ch, CURLOPT_COOKIEJAR, $CookieJarFilename); curl_setopt($ch, CURLOPT_COOKIEFILE, $CookieJarFilename); 

Суть в том, что они используют один файл как файл cookiejar (обычно .txt).

Но в реальном сценарии наш веб-сайт не только доступен одному компьютеру, но, скорее всего, к нему одновременно подключается множество компьютеров, а также есть такие боты, как Googlebots, Yahoo Slurp и т. Д.

Итак, с единственным .txt- файлом, не очевидно ли, что кувшин cookie будет перезаписывать один и тот же текстовый файл, сделать его настоящим беспорядком для cookie?

Или я ошибаюсь здесь?

Какой «правильный» метод обработки файлов cookie?

Solutions Collecting From Web of "cookiejar в PHP Curl"

Если на вашей странице есть несколько пользователей, и вам нужно выполнить curl с уникальными куки-файлами для всех, то вы можете сделать несколько действий для этого сценария.

1) Если ваш пользователь аутентифицирован и имеет начало $_SESSION на вашем конце, вы можете использовать session_id() для имени файла cookie.

2) Если ваш пользователь не требует сеанса (например, бота Google), вы можете создать файл cookie с использованием timestamp + дополнительного случайного числа для вашего имени файла cookie. Например:

 $cookieName = time()."_".substr(md5(microtime()),0,5).".txt"; // Would output something like: // `1388788940_91ab4.txt` 

Но в этом случае вы не можете повторно использовать файл cookie, если пользователь вернется к вам через 5 минут (если вы не установите cookie пользователя с вашим файлом файла cookie).

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

Если вы хотите, чтобы PHP выполнял очистку для вас.

Используйте tempnam, как bagz_man, но после использования прочитайте содержимое файла и сохраните его в своем сеансе. Затем вы можете удалить временный файл. Создайте новый файл в следующий раз, когда вам это нужно.

Единственное, что осталось позади – это сеанс, на который php заботится.