Что нового

PHP и Autoit

planetasov

Чайник
Сообщения
3
Репутация
0
У меня есть PHP код распознавания капчи и нужно прикрепить его к autoit как мне это сделать? Если это вообще возможно сделать.
Зарание спасибо.
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
963
planetasov [?]
У меня есть PHP код распознавания капчи и нужно прикрепить его к autoit как мне это сделать? Если это вообще возможно сделать.Зарание спасибо.
Нет ничего невозможного!
Есть способ с использованием COM/OLE.
Так же можно ещё через STDIN/STDOUT. Пишите свой скрипт на PHP для работы с CLI (интерфейс командной строки), пакуете его UPX`м и работаете с ним в AutoIt`е как с консольным приложением.
Так что выбирать вам ;)

Чтобы не быть голословным, вот вам пример через STDIN/STDOUT. В нём скрипт на Autoit запускает скрипт на PHP скомпилированный в EXE. Последний передаёт скрипту на Autoit строку "Hello World!" :smile:
 

Castellan

Чайник
Сообщения
32
Репутация
2
А если Atoit.exe коннектится к PHP через интернет (например открывает страничку сайта), что-то меняется?
 

Castellan

Чайник
Сообщения
32
Репутация
2
Какие есть способы взаимодействия autoit.exe с удаленным php-скриптом???
 

inververs

AutoIT Гуру
Сообщения
2 135
Репутация
462
Смотри примеры по get и post запросам
http://autoit-script.ru/index.php/topic,3925.15.html#post_inet_2
 

Castellan

Чайник
Сообщения
32
Репутация
2
Наконец-то меня отправили куда надо! Огромное спс! Целую вас в десны! )))))))))))))
 

Angelus

Чайник
Сообщения
3
Репутация
0
Подскажите пожалуйста, что может делаю не так:
Хочу из Autoit отправить переменные методом Get а PHP скриптом эти переменные принять:
из Autoit отправляю:
Код:
$name = 'popo'
$pass = '007'
InetGet('http://eve/index.php?usernam='&GUICtrlRead($name)&'passwor='&GuiCtrlRead($pass))


в свою очередь в PHP пишу:
Код:
<?php
$username = $_GET['usernam'];
$password = $_GET['passwor'];
echo $username ;
echo $password ;
?>
работаю через апач, в адресной строке ввожу http://eve/index.php
 

running-frag

why me?
Сообщения
441
Репутация
60
Код:
$bData = InetRead('http://localhost/test/get.php?param1=value1&param2=value2', 1)

If Not @error Then
    MsgBox(0, 'Data', BinaryToString($bData))
EndIf

Найди три различия. ;D

PS: Выше же есть ссылка где это описано. http://autoit-script.ru/index.php/topic,3925.15.html#post_inet_2
 

Angelus

Чайник
Сообщения
3
Репутация
0
running-frag если не знаешь не отписывайся, спрашиваю людей, которые смогут помочь и объяснить, как вывести правильно в окне браузера переменные из Autoit! Заранее спасибо
 

running-frag

why me?
Сообщения
441
Репутация
60
Angelus [url_ex=javascript:qq.OpenLink('http://autoit-script.ru/index.php/topic,2541.msg65651.html#msg65651')][?][/url_ex]
running-frag если не знаешь не отписывайся
Ну ок, судя как ты формируешь строку, ты слишком много знаешь для autoit. Да я и php тоже очень хорошо знаю. ;) Принцепы работы $_GET\$_POST тоже. ;)

PS: Слишком много волаешь для юзера с двумя сообщениями. ;)
 

inververs

AutoIT Гуру
Сообщения
2 135
Репутация
462
Angelus
Почитай для начала что такое GUICtrlRead.
Код:
GUICtrlRead


Если ты уже определил переменные $name и $pass то и вставляй их в запрос.
 

running-frag

why me?
Сообщения
441
Репутация
60
Angelus
Для тебя умного слишком и криворукого.
Код:
#include <Inet.au3>
$_ip = "127.0.0.1" 
$_user = "user1"
$_pass = "pass2"
$_url = "http://"& $_ip &"/index.php?user="& $_user &"&pass="& $_pass
$_data = InetRead ($_url, 1)

ConsoleWrite ($_url)
MsgBox(4096, "", "Bytes read: " & @extended & @CRLF & @CRLF & BinaryToString($_data))


Код:
<?php
print $_GET["user"];
print $_GET["pass"];
?>
Работает как часы, отдаёт всё что прочитала с InetRead (). Тебе сначало поучится читать нужно. (и это не стёб) 8)



Добавлено:
Сообщение автоматически объединено:

[off title=OffTopic]Кстати я придумал как можно логинку сделать.... :scratch: Пойду как я в свой топик... [/off]


Добавлено:
Сообщение автоматически объединено:

Код:
InetGet('http://eve/index.php?usernam='&GUICtrlRead($name)&'passwor='&GuiCtrlRead($pass))

Тебе и на пыхе мануалы почитать. У тебя получится строка (даже если не учитывать косяк с GUICtrlRead(), но опустим это может у тебя там с GUI читает, это логично)
Код:
http://eve/index.php?username=somepasswor=some
Видишь пропущенный "&"? А он есть... ;)
 

Angelus

Чайник
Сообщения
3
Репутация
0
Слушай, извини не хотел никого тут оскорблять, только сегодня взялся за autoit!
Я как-то мимо MsgBox прошел. Действительно все работает, переменные читает, все супер!
Спасибо, если бы ты сразу написал такой ответ, то и вопросов бы не возникло!

Подскажи пожалуйста как мне теперь переменные из ПхП достать и передать их Autoit!
 

running-frag

why me?
Сообщения
441
Репутация
60
Ам ну если по простому. Расписывать под ооп\методы не буду. Давай прикинем вот как. Возьмём пример выше за основу....

Как запустить нужную функцию. Умея это (простая вещь) можно выводить всё что угодно. Логично? Итак... Меняем URL на...

Код:
Opt ('MustDeclareVars',		1)	
#include <Inet.au3>

Local $_ip = "127.0.0.1"
Local $_user = "user1"
Local $_pass = "pass2"
Local $_action = "some_action"

Local $_url = "http://"& $_ip &"/index.php?action="& $_action &"&user="& $_user &"&pass="& $_pass
Local $_data = InetRead ($_url, 1)
ConsoleWrite ($_url)

MsgBox(4096, "", "Bytes read: " & @extended & @CRLF & @CRLF & BinaryToString($_data))

таким образом получим URL
Код:
http://127.0.0.1/index.php?action=some_action&user=user1&pass=pass2
который выполнится пхп как
Код:
<?php
if ($_GET["action"] == "some_action")
{
	print "It's you private function. You entered as {$_GET["user"]} with pass '{$_GET["pass"]}'";
}
?>
Если у нас action не будет равна "some_action" тогда ничего и не выолнится - скрипт автоит ничего не получит (ну или пустое что то там получит кто его знает).




Добавлено:
Сообщение автоматически объединено:

Можно там же прикрутить проверки всякие и прочее. Но суть думаю ясна. Ещё пример с банальными проверками.

Код:
<?php
if ($_GET["action"] == "some_action")
{
	if (!empty($_GET["user"]))
	{
		$_user = $_GET["user"];
	}
	else
	{
		$user = "default user";
	}
	
	if (!empty($_GET["pass"]))
	{
		$_pass = "'".$_GET["pass"]."'";
	}
	else
	{
		$_pass = "not used";
	}
	
	print "It's you private function. You entered as $_user with pass $_pass";
}

?>


Добавлено:
Сообщение автоматически объединено:

Angelus [url_ex=javascript:qq.OpenLink('http://autoit-script.ru/index.php/topic,2541.msg65663.html#msg65663')][?][/url_ex]
Спасибо, если бы ты сразу написал такой ответ, то и вопросов бы не возникло!
running-frag [url_ex=javascript:qq.OpenLink('http://autoit-script.ru/index.php/topic,2541.msg65650.html#msg65650')][?][/url_ex]
PS: Выше же есть ссылка где это описано. НЕофициальный FAQ AutoIt

 
Верх