这个问题来自可能看起来很奇怪的情况,但这个目的完全是故意的。
以下是该方案: 我有3个脚本(让他们称之为A,B和C)。每个必须每5秒执行一次,并使用特定的cookie。
我想用另一个名为" start.php"的脚本自动执行这些脚本,使用cURL,它应该在执行任何这些脚本之前设置正确的cookie。
摘要:
以下是我的start.php脚本:
function startCrawling()
{
$currentChall = 1;
$cookieValue = "";
for ($currentChall = 0; $currentChall <= 3; $currentChall++) {
$sql = getConnection()->prepare("SOME STUFF HERE");
if ($sql->execute()) {
while ($row = $sql->fetch(PDO::FETCH_ASSOC)) {
if ($row['idChallenge'] == $currentChall) {
$cookieValue = $row['token'];
break;
}
}
}
sendRequest($currentChall, $cookieValue);
sleep(1);
}
}
/**
* Send the request to the given script
*/
function sendRequest($id, $cookieValue)
{
$params = [
'password' => 'p4ssw0rd'
];
$defaults = array(
CURLOPT_URL => 'http://localhost/script' . $id . '.php',
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $params,
CURLOPT_HTTPHEADER => array("Cookie: AdminToken=".$cookieValue),
CURLOPT_VERBOSE => true
);
$ch = curl_init();
curl_setopt_array($ch, $defaults);
$content = curl_exec($ch);
curl_close($ch);
if ($content === false) {
echo 'Erreur Curl : ' . curl_error($ch);
}
}
但是,最后,即使每个脚本都已执行,作为cookie发送的唯一值是PHPSSID(在我的requestb.in中看到)。我在网上搜索了2天,但我在网上找不到任何类似的问题。
任何帮助都会得到真正的赞赏。
(由于评论建议而编辑)