Я пытаюсь очистить содержимое сайта с помощью входа в систему, но не могу сделать это. У входа в систему есть три параметра: имя пользователя, пароль, пароль, код, который я использую
<?php // HTTP authentication $url = "http://aftabcurrency.com/login_script.php"; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); $cookie = 'cookies.txt'; $timeout = 30; curl_setopt($curl, CURLOPT_TIMEOUT, 10); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout ); curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie); curl_setopt ($ch, CURLOPT_POST, 1); curl_setopt ($ch,CURLOPT_POSTFIELDS,"user_name=user&user_password=pass&passcode=code"); $result = curl_exec($ch); curl_close($ch); echo $result; ?>
вам нужно сделать POST
на http://ftabcurrency.com/login_script.php, и ваши завитки также должны принимать файлы cookie.
После аутентификации сценарий перенаправляет вас, поэтому вам нужно также добавить CURLOPT_FOLLOWACTION .
вот отредактированная версия вашего скрипта, я не могу проверить его на http://ftabcurrency.com/, надеюсь, что он работает:
$url = "http://aftabcurrency.com/login_script.php"; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); $cookie = 'cookies.txt'; $timeout = 30; curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout ); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); curl_setopt ($ch, CURLOPT_POST, 1); curl_setopt ($ch,CURLOPT_POSTFIELDS,"user_name=user&user_password=pass&passcode=code"); $result = curl_exec($ch); /* //OPTIONAL - Redirect to another page after login $url = "http://aftabcurrency.com/some_other_page"; curl_setopt ($ch, CURLOPT_POST, 0); curl_setopt($ch, CURLOPT_URL, $url); $result = curl_exec($ch); */ //end OPTIONAL curl_close($ch); echo $result;
Вам необходимо ПОЧТИТЬ свое имя пользователя / пароль / пароль на эту страницу. То, что вы пытаетесь сделать прямо сейчас, это http-аутентификация. Поэтому вместо этого
curl_setopt($ch, CURLOPT_USERPWD, "demo:demopass:demopasscode");
ты нуждаешься в этом
curl_setopt ($ch, CURLOPT_POST, 1); curl_setopt ($ch, CURLOPT_POSTFIELDS, "user_name=xxxxx&user_password=xxxxxx&passcode=xxxxx");