|
| Дата |
|
USD/RUB | 93.4409 | BTC/USD | 64007.2926 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
11.06.2011, 02:14
|
#1
|
Senior Member
Регистрация: 08.05.2008
Сообщений: 834
Бабло: $258860
|
cURL login to wp
Всем доброй ночи
Такая задача - есть список вп блогов, хочется сделать кнопочку у каждого, по нажатию на которую сразу же логинило и кидало бы в админку этого блога.
Написал такой код:
PHP код:
<?php
//session_start();
$username="admin";
$password="password";
$url="URL";
$cookie="cookie.txt";
$postdata = "log=". $username ."&pwd=". $password ."&wp-submit=Log%20In&redirect_to=". $url ."/wp-admin/&testcookie=1";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url . "/wp-login.php");
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_COOKIESESSION, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url . "/wp-admin/");
curl_setopt ($ch, CURLOPT_COOKIEFILE, ''); // Enables session support
curl_setopt ($ch, CURLOPT_HEADER ,1);
curl_setopt ($ch, CURLOPT_HEADERFUNCTION, 'read_header');
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
curl_close($ch);
function read_header(){
foreach ($_COOKIE as $key => $val) {
// ($key[0]);
//echo $key;
setcookie($key, $val);
}
}
header('location: '.$url.'/wp-admin/');
die();
?>
Смысл с том, что куки считываются функцией и ставятся в ручном режиме пользователю. Не помогло При редиректе на админку она просит релогин...
Первый вариант был, до этого, что тупо эхом выводился резалт переменная в браузер, без редиректа, без считывания кук. В том варианте скрипт логинился, выводилась админка... Но все линки были в админке с УРЛ скрипта... То есть тоже не то
Я в ПХП новичек, тем более в курл... Буду благодарен за помощь, желательно с кодом\кусками кода =)
|
|
|
11.06.2011, 02:56
|
#2
|
Show Me the Money
Регистрация: 13.11.2009
Сообщений: 78
Бабло: $14079
|
Ты всё правильно делаешь с курлом. Пост запрос с сохранением кук.
Вот здесь сохраняются куки после логина:
Цитата:
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
|
глянь что у тебя сохранилось в файле cookie.txt
Следующим этапом тебе нужно отдать эти куки юзеру, нажавшему кнопку. Вот тут я хз
|
|
|
11.06.2011, 07:01
|
#3
|
кодер
Регистрация: 21.01.2008
Сообщений: 315
Бабло: $69585
|
Цитата:
Сообщение от GoodLife
Ты всё правильно делаешь с курлом. Пост запрос с сохранением кук.
Вот здесь сохраняются куки после логина:
глянь что у тебя сохранилось в файле cookie.txt
Следующим этапом тебе нужно отдать эти куки юзеру, нажавшему кнопку. Вот тут я хз
|
ну а тут на помощь приходит
PHP код:
curl_setopt ($ch,CURLOPT_COOKIEFILE, $cookie);
__________________
php скрипты от $25 Отзывы: 2013-2011, 2010, 2009. acя: 384 846 ноль два шесть
|
|
|
11.06.2011, 09:13
|
#4
|
коплю на феррари
Регистрация: 03.07.2008
Сообщений: 1,251
Бабло: $148195
|
Цитата:
Сообщение от GoodLife
Ты всё правильно делаешь с курлом. Пост запрос с сохранением кук.
Вот здесь сохраняются куки после логина:
глянь что у тебя сохранилось в файле cookie.txt
Следующим этапом тебе нужно отдать эти куки юзеру, нажавшему кнопку. Вот тут я хз
|
не сработает, нельзя куки для одного сайта поставить на другом сайте. Google не может поставить кукисы для mail.ru.
|
|
|
11.06.2011, 09:51
|
#5
|
Senior Member
Регистрация: 08.05.2008
Сообщений: 834
Бабло: $258860
ТС -->
|
ТС
кука пишеться и в файл и в заголовок. пробовал и оттуда и оттуда ставить её через сеткуки - не работает...
|
|
|
11.06.2011, 10:29
|
#6
|
коплю на феррари
Регистрация: 03.07.2008
Сообщений: 1,251
Бабло: $148195
|
Цитата:
Сообщение от Dumpty
кука пишеться и в файл и в заголовок. пробовал и оттуда и оттуда ставить её через сеткуки - не работает...
|
я же выше написал, не получится.
|
|
|
11.06.2011, 14:36
|
#7
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
|
Dumpty, ты таким образом можешь залогинить курл, т.е. свой php-скрипт, но не веб-браузер....да и зачем все эти проблемы, если юзер у тебя все равно нажимает кнопку.
Создай html файл и засунь в него такую кнопку:
Код:
<form action="http://domain1.ru/blog/wp-login.php" method="post" target="_blank">
<input type="hidden" name="redirect_to" value="http://domain1.ru/blog/wp-admin/" />
<input type="hidden" name="log" value="admin_login" />
<input type="hidden" name="pwd" value="admin_password" />
<input type="hidden" name="testcookie" value="1" />
<input type="hidden" name="rememberme" value="forever" />
<input type="submit" />
</form>
или 100500 кнопок:
Код:
<form action="http://domain1.ru/blog/wp-login.php" method="post" target="_blank">
<input type="hidden" name="redirect_to" value="http://domain1.ru/blog/wp-admin/" />
<input type="hidden" name="log" value="admin_login" />
<input type="hidden" name="pwd" value="admin_password" />
<input type="hidden" name="testcookie" value="1" />
<input type="hidden" name="rememberme" value="forever" />
<input type="submit" />
</form>
<form action="http://domain2.ru/blog/wp-login.php" method="post" target="_blank">
<input type="hidden" name="redirect_to" value="http://domain2.ru/blog/wp-admin/" />
<input type="hidden" name="log" value="admin_login" />
<input type="hidden" name="pwd" value="admin_password" />
<input type="hidden" name="testcookie" value="1" />
<input type="hidden" name="rememberme" value="forever" />
<input type="submit" />
</form>
<form action="http://domain3.ru/blog/wp-login.php" method="post" target="_blank">
<input type="hidden" name="redirect_to" value="http://domain3.ru/blog/wp-admin/" />
<input type="hidden" name="log" value="admin_login" />
<input type="hidden" name="pwd" value="admin_password" />
<input type="hidden" name="testcookie" value="1" />
<input type="hidden" name="rememberme" value="forever" />
<input type="submit" />
</form>
ну можно генерацию этих кнопок сделать на php
по крайне мере мой вордпресс, на котором я пробовал, не проверяет реферер поста с хостом блога, а значит должно работать.
|
|
|
11.06.2011, 15:08
|
#8
|
коплю на феррари
Регистрация: 03.07.2008
Сообщений: 1,251
Бабло: $148195
|
Цитата:
Сообщение от chesser
Dumpty, ты таким образом можешь залогинить курл, т.е. свой php-скрипт, но не веб-браузер....да и зачем все эти проблемы, если юзер у тебя все равно нажимает кнопку.
Создай html файл и засунь в него такую кнопку:
Код:
<form action="http://domain1.ru/blog/wp-login.php" method="post" target="_blank">
<input type="hidden" name="redirect_to" value="http://domain1.ru/blog/wp-admin/" />
<input type="hidden" name="log" value="admin_login" />
<input type="hidden" name="pwd" value="admin_password" />
<input type="hidden" name="testcookie" value="1" />
<input type="hidden" name="rememberme" value="forever" />
<input type="submit" />
</form>
или 100500 кнопок:
Код:
<form action="http://domain1.ru/blog/wp-login.php" method="post" target="_blank">
<input type="hidden" name="redirect_to" value="http://domain1.ru/blog/wp-admin/" />
<input type="hidden" name="log" value="admin_login" />
<input type="hidden" name="pwd" value="admin_password" />
<input type="hidden" name="testcookie" value="1" />
<input type="hidden" name="rememberme" value="forever" />
<input type="submit" />
</form>
<form action="http://domain2.ru/blog/wp-login.php" method="post" target="_blank">
<input type="hidden" name="redirect_to" value="http://domain2.ru/blog/wp-admin/" />
<input type="hidden" name="log" value="admin_login" />
<input type="hidden" name="pwd" value="admin_password" />
<input type="hidden" name="testcookie" value="1" />
<input type="hidden" name="rememberme" value="forever" />
<input type="submit" />
</form>
<form action="http://domain3.ru/blog/wp-login.php" method="post" target="_blank">
<input type="hidden" name="redirect_to" value="http://domain3.ru/blog/wp-admin/" />
<input type="hidden" name="log" value="admin_login" />
<input type="hidden" name="pwd" value="admin_password" />
<input type="hidden" name="testcookie" value="1" />
<input type="hidden" name="rememberme" value="forever" />
<input type="submit" />
</form>
ну можно генерацию этих кнопок сделать на php
по крайне мере мой вордпресс, на котором я пробовал, не проверяет реферер поста с хостом блога, а значит должно работать.
|
нет, он не проверяет реферер на странице логина. по вопросу топикастера не совсем понятно происхождение блогов. В логи сервера будут ессно падать логи с реферером страницы с кнопкой, что при определенных условиях может создать неудобства :-)
|
|
|
15.06.2011, 00:26
|
#9
|
Senior Member
Регистрация: 08.05.2008
Сообщений: 834
Бабло: $258860
ТС -->
|
ТС
Цитата:
Сообщение от chesser
Dumpty, ты таким образом можешь залогинить курл, т.е. свой php-скрипт, но не веб-браузер....да и зачем все эти проблемы, если юзер у тебя все равно нажимает кнопку.
Создай html файл и засунь в него такую кнопку:
Код:
<form action="http://domain1.ru/blog/wp-login.php" method="post" target="_blank">
<input type="hidden" name="redirect_to" value="http://domain1.ru/blog/wp-admin/" />
<input type="hidden" name="log" value="admin_login" />
<input type="hidden" name="pwd" value="admin_password" />
<input type="hidden" name="testcookie" value="1" />
<input type="hidden" name="rememberme" value="forever" />
<input type="submit" />
</form>
или 100500 кнопок:
Код:
<form action="http://domain1.ru/blog/wp-login.php" method="post" target="_blank">
<input type="hidden" name="redirect_to" value="http://domain1.ru/blog/wp-admin/" />
<input type="hidden" name="log" value="admin_login" />
<input type="hidden" name="pwd" value="admin_password" />
<input type="hidden" name="testcookie" value="1" />
<input type="hidden" name="rememberme" value="forever" />
<input type="submit" />
</form>
<form action="http://domain2.ru/blog/wp-login.php" method="post" target="_blank">
<input type="hidden" name="redirect_to" value="http://domain2.ru/blog/wp-admin/" />
<input type="hidden" name="log" value="admin_login" />
<input type="hidden" name="pwd" value="admin_password" />
<input type="hidden" name="testcookie" value="1" />
<input type="hidden" name="rememberme" value="forever" />
<input type="submit" />
</form>
<form action="http://domain3.ru/blog/wp-login.php" method="post" target="_blank">
<input type="hidden" name="redirect_to" value="http://domain3.ru/blog/wp-admin/" />
<input type="hidden" name="log" value="admin_login" />
<input type="hidden" name="pwd" value="admin_password" />
<input type="hidden" name="testcookie" value="1" />
<input type="hidden" name="rememberme" value="forever" />
<input type="submit" />
</form>
ну можно генерацию этих кнопок сделать на php
по крайне мере мой вордпресс, на котором я пробовал, не проверяет реферер поста с хостом блога, а значит должно работать.
|
спасибо - попробовал, работает)
|
|
|
15.06.2011, 00:59
|
#10
|
Senior Member
Регистрация: 08.05.2008
Сообщений: 834
Бабло: $258860
ТС -->
|
ТС
аа тут проблема одна..
у меня список доменов и так выводится в виде формы, чтобы были чекбоксы и т.д.
форма в форме запрещена... не работает как надо
как внедрить кнопку красиво в табличку?)
|
|
|
|