Добрый день! Полдня шерстю гугля по поводу http авторизации с использованием cUrl на страничке http://file.raid.ru//tmp/ есть форма авторизации <form enctype="multipart/form-data" action="http://file.raid.ru/tmp/" method="POST"> Вот что сваял, но оно не работает =( $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://file.raid.ru/tmp/"); curl_setopt($ch, CURLOPT_REFERER, "http://file.raid.ru//tmp/"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HEADER,0); //Не выводить заголовки curl_setopt($ch, CURLOPT_NOBODY,0); //Выводить получаемый Content curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt'); curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_USERPWD, "charlie.walker@bk.ru:196032320"); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; (R1 1.5))"); $params = "email=charlie.walker@bk.ru& =196032320"; curl_setopt($ch, CURLOPT_POSTFIELDS, $params); //curl_setopt($ch, CURLOPT_HTTPAUTH, 1); $my_load_page = curl_exec($ch); curl_close($ch); echo $my_load_page; Единственное, что вызывает смутное сомненье, это имя поля пароля. На форме оно имеет имя <input name=" " type="password" value="" size="14" maxlength="11" style="height:16px; width:150px;"/> имя здесь - это знак табуляции. Оно же прописано в моем скрипте. Но в любом случае результат работы скрипта - это то, что лежит на http://file.raid.ru//tmp/ то есть авторизация не проходит. В целом задача такая: нужно авторизоваться, и затем аплоадить файл пхп скриптом. За ранее очень благодарен за помощь. PS: логин и пароль в скрипте - рабочие, на тот случай, если вдруг у кого что путевого получится...
Нужно делать за два захода - сначала посылается логин и пароль и узнаются куки. Потом используя эти куки делаем то, что надо. Это не правильное применение логина и пароля. Эта опция используется для HTTP-аутентификация.
Действительно. Но к сожалению это не помогло. Да и пробовал я input name = password, не помогло. Видимо потом в текстовом файле при прсмотре кода страницы блокнотом случайно изменил это дело... ... и без нее тоже пробовал. Она тут потому, что когда ничего не работает, то хороши все средства Убрал эту строку - так же не помогло.
А когда при простуде аспирин не помогает Вы пьете пурген? Он помогает избавиться от кашля - просто будете бояться кашлянуть.
Как насчет этого? http://phpclub.ru/detail/article/http_request Советую почитать оттуда хотя бы теорию...
Не, ну смех смехом конечно, но то, что использовано неверно - убрал. Спасибо, прочел, только не понял, какие параметры cUrl надо выставить/заюзать, чтобы решить требуемую задачу. Вот, немного еще поправил скриптик, но отца Советской демократии это не спасло ;( PHP: <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://file.raid.ru//tmp/index.php"); curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt'); curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; (R1 1.5))"); $my_load_page = curl_exec($ch); echo $my_load_page; curl_setopt($ch, CURLOPT_URL, "http://file.raid.ru//tmp/files.php"); curl_setopt($ch, CURLOPT_REFERER, "http://file.raid.ru//tmp/index.php?f="); curl_setopt($ch, CURLOPT_POST, 1); $params = "email=charlie.walker@bk.ru&password=196032320"; curl_setopt($ch, CURLOPT_POSTFIELDS, $params); $my_load_page = curl_exec($ch); curl_close($ch); echo $my_load_page; ?>