Как переписать значения сессий в cURL, используя PHP? - PullRequest
0 голосов
/ 12 февраля 2019

Я должен отправить sessionId для каждого запроса, используя CURL в PHP.

Когда я отправляю запрос вместе с sessionId в качестве первого запроса, он работает нормально.

Но для моего третьего запросаЯ должен переписать сессию.Потому что в моем 3-м запросе создаются новые сеансы, и мне нужно отправить эти новые сеансы для всех запросов позже.

Например: в моем первом запросе я отправляю по sessionId как

  1. Запрос1 : идентификатор сессии: 12345,
  2. Запрос2 : идентификатор сессии: 12345,
  3. Запрос3 : идентификатор сессии: 12345, //В этом ответе я получил новый sessionId: ABCD
  4. Request4 : sessionId: ABCD,
  5. Request5 : sessionId: ABCD,

    Здесь я не могу отправить sessionId на 4-й запрос, что я получил ответ от Request3.

здесь мой код

<?php
$fcookies = __DIR__."/cookies.txt";
$fp = fopen($fcookies, "w");
fclose($fp);
if (! is_readable($fcookies) || ! is_writable($fcookies)) {
    die(
        'Cookiefile ' . $fcookies . ' is not writable or readable.'
    );
    exit;
}

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_HEADER => TRUE,
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_URL => 'https://192.168.2.35/cgi-bin/common/login/webLogin',
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_SSL_VERIFYHOST => false,
    //CURLOPT_COOKIESESSION => TRUE,
    CURLOPT_COOKIEFILE => $fcookies,
    CURLOPT_COOKIEJAR => $fcookies,
    CURLOPT_FOLLOWLOCATION => TRUE,
    CURLOPT_AUTOREFERER => TRUE,
));
$result = curl_exec($curl);

if (!curl_exec($curl))
{
    die('Error: "' . curl_error($curl) . '" - Code: ' . curl_errno($curl));
}

echo "<h2>Response 1</h2>";
print_r($result);
$cookies = curl_getinfo($curl, CURLINFO_COOKIELIST);
print_r($cookies);

$fields = array(
    'userName' => 'dadmin',
    'logonButton' => 'Logon',
    'actionStep' => 2,
);
$fields_string = http_build_query($fields);
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_HEADER => TRUE,
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_URL => 'https://192.168.2.35/cgi-bin/common/login/webLogin',
    CURLOPT_POST => TRUE,
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_SSL_VERIFYHOST => false,
    CURLOPT_POSTFIELDS => $fields_string,
    CURLOPT_FOLLOWLOCATION => TRUE,
    //CURLOPT_COOKIESESSION => TRUE,
    CURLOPT_COOKIEFILE => $fcookies,
    CURLOPT_COOKIEJAR => $fcookies, 
    CURLOPT_AUTOREFERER => TRUE,
));
$resp = curl_exec($curl);

if (!curl_exec($curl))
{
    die('Error: "' . curl_error($curl) . '" - Code: ' . curl_errno($curl));
}

echo "<h2>Response 2</h2>";
print_r($resp);
$cookies = curl_getinfo($curl, CURLINFO_COOKIELIST);
print_r($cookies);

$fields = array(
    'userName' => 'dadmin',
    'pa55word' => 'dadmin01',
    'logonButton' => 'Logon',
    'actionStep' => 3,
);
$fields_string = http_build_query($fields);
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_HEADER => TRUE,
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_URL => 'https://192.168.2.35/cgi-bin/common/login/webLogin',
    CURLOPT_POST => TRUE,
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_SSL_VERIFYHOST => false,
    CURLOPT_POSTFIELDS => $fields_string,
    CURLOPT_FOLLOWLOCATION => TRUE,
    //CURLOPT_COOKIESESSION => TRUE,
    CURLOPT_COOKIEFILE => $fcookies,
    CURLOPT_COOKIEJAR => $fcookies, 
    CURLOPT_AUTOREFERER => TRUE,
));
$response = curl_exec($curl);

if (!curl_exec($curl))
{
    die('Error: "' . curl_error($curl) . '" - Code: ' . curl_errno($curl));
}

echo "<h2>Response 3</h2>";
print_r($response);
echo "<br/>";
$cookies = curl_getinfo($curl, CURLINFO_COOKIELIST);
print_r($cookies);


$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_COOKIEFILE => $fcookies,
    CURLOPT_COOKIEJAR => $fcookies, 
    //CURLOPT_COOKIESESSION => TRUE,
    CURLOPT_HEADER => TRUE,
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_URL => 'https://192.168.2.35/cgi-bin/msg/mango/admin/controller/SubscriberMgmt',
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_SSL_VERIFYHOST => false,
    CURLOPT_FOLLOWLOCATION => TRUE,
    CURLOPT_AUTOREFERER => TRUE,
));
$result = curl_exec($curl);

if (!curl_exec($curl))
{
    die('Error: "' . curl_error($curl) . '" - Code: ' . curl_errno($curl));
}

echo "<h2>Response 4</h2>";
print_r($result);
echo "<br/>";
$cookies = curl_getinfo($curl, CURLINFO_COOKIELIST);
print_r($cookies);
exit;
?>

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...