У меня есть скрипт PHP для входа в систему для стороннего веб-сайта, который работает как шарм!
$cookie="cookie.txt";
$url="https://example.com";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url);
$postdata = "subUserId=&loginId=".$username."&password=".$password."&go=&__FORM_ID=";
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
echo $result;
Если я запускаю этот скрипт, $ result содержит членскую часть этого сайта. Проблема в том, что я хочу продолжить сеанс моего PHP-скрипта внутри моего браузера. Я не могу нажать на элемент, потому что хост сайта заменяется моим хостом. например «https://example.com/email» сейчас «HTTP: // локальный: 8080 / электронная почтаMsgstr «Если я открываю веб-страницу вручную, я не захожу в систему, потому что сеанс сохраняется для моего локального php-скрипта, а не для конечного веб-сайта.
Есть ли способ передать сеанс в мой браузер? Может быть, можно «позволить браузеру думать», что он включен «https://example.com«, вместо «HTTP: // локальный: 8080msgstr «, чтобы переменные сеанса сохранялись по правильному URL.
Я хочу использовать этот скрипт только для входа в систему, а не для выполнения каких-либо действий на целевом веб-сайте.
Заранее спасибо!
Я смог решить мою проблему с обходным путем.
Я только что создал HTML-форму с URL-адресом третьей стороны в качестве цели. Мои учетные данные передаются как скрытые переменные. Затем я добавил короткий код Javascript, который нажимает «отправить», как только страница загружается.
Изменить: не используйте это на общедоступном веб-сайте, потому что ваши учетные данные хранятся видимыми внутри исходного кода.
<script>
window.onload = function() {
document.getElementById('submit').click();
};
</script>
<form action="https://example.com/login" method="post">
<input type="hidden" id="subUserId" name="subUserId" value="">
<input type="hidden" id="loginId" name="loginId" value="<?php echo $username ?>">
<input type="hidden" id="password" name="password" value="<?php echo $password ?>">
<input type="hidden" id="go" name="go" value="">
<input type="hidden" id="__FORM_ID" name="__FORM_ID" value="">
<input type="submit" id="submit" value="OK">
</form>
Других решений пока нет …