Вот моя дилемма ...
В основном у меня есть скрипт, который посредством CURL отправляет сообщения на сторонний веб-сайт для выполнения входа в систему, а затем делает еще одну публикацию для обновления сведений о пользователях на основе этого сеанса входа. Теперь, когда мой сайт становится занятым, у меня есть несколько пользователей, которые делают одно и то же, и иногда кажется, что curl запутывается и обновляет данные одного пользователя с информацией другого пользователя. Это вызывает реальные проблемы.
Похоже, что файл cookie, который используется пользователем после одного входа в систему, используется другими пользователями, и они заканчивают тем, что входят в систему с тем же файлом cookie, что вводит в заблуждение стороннюю систему. Мой код опубликован ниже, и мне нужно использовать cookiefile и cookiejar для поддержки php-сессии, чтобы я мог делать то, что мне нужно. Но похоже, что один и тот же файл cookie используется всеми пользователями ....
Имеет ли это смысл? Что я могу сделать, чтобы изменить это? Пожалуйста, порекомендуйте....
Большое спасибо!
Ниже приведен код, который я использую как для входа в систему, так и для публикации обновления пользователя
function hitForm($postURL, $postFields, $referer="", $showerr = FALSE, $ispost = TRUE) {
global $islocal, $path_escape;
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt($ch, CURLOPT_URL, $postURL);
if ($ispost)
curl_setopt($ch, CURLOPT_POST, 1);
else
curl_setopt($ch, CURLOPT_HTTPGET, 1);
curl_setopt($ch, CURLOPT_REFERER, $referer);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$ret = curl_exec($ch);
if ($error = curl_error($ch)) {
if ($showerr)
echo 'ERROR: ' . $error;
return -1;
exit;
}
$CU_header = curl_getinfo($ch);
$CU_header["err"] = curl_errno($ch);
$CU_header["errmsg"] = curl_error($ch);
curl_close($ch);
$returnout = $ret;
//for debugging purposes for now we are logging all form posts
SaveLog("hitform", "F[".$this->curruserid." - ".$this->currfunc." - ".date("d-m-y h:i:s")."]".$postFields);
return $ret;
}