Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Получение данных с сайта

, Нужно получить данные с php странцы
Статус пользователя overtime
сообщение 8.2.2016, 22:06
Сообщение #1
Стаж: 10 лет

Сообщений: 37
Благодарностей: 2
Полезность: < 0

Я тут заинтересовался фишечкой, как получить данные с php страницы сайта?
Помогите пожалуйста
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя ChesterField
сообщение 8.2.2016, 22:25
Сообщение #2


Стаж: 11 лет

Сообщений: 145
Благодарностей: 46
Полезность: 198

Пару ссылок для тех кто не умеет пользоваться "Гугольом".
1, 2, 3.


Почему бы и нет?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя overtime
сообщение 8.2.2016, 22:34
Сообщение #3
Стаж: 10 лет

Сообщений: 37
Благодарностей: 2
Полезность: < 0

ChesterField, Я про плагин, а он про php идеал!

AMX Mod X плагин который может узнать информацию с сайта, и передать её, только плагину не motd для конкретного игрока
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 8.2.2016, 22:49
Сообщение #4


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

overtime, curl если правильно понял задачу http://amx-x.ru/viewtopic.php?f=21&t=31672
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя overtime
сообщение 8.2.2016, 22:56
Сообщение #5
Стаж: 10 лет

Сообщений: 37
Благодарностей: 2
Полезность: < 0

Bloo, Скорее всего да, но как тут получить данные, а не прописывать чего то там:
Код:

#include <amxmodx>

#include <curl>



#define PLUGIN "Curl HTTP"

#define AUTHOR "Morning Rainbow"

#define VERSION "0.1"



#define WRITE_BUF_SIZE 512



public plugin_init() {

register_plugin(PLUGIN, VERSION, AUTHOR)



new CURL:curl = curl_easy_init()

curl_easy_setopt(curl, CURLOPT_BUFFERSIZE, WRITE_BUF_SIZE)

curl_easy_setopt(curl, CURLOPT_URL, "http://127.0.0.1/?var1=hello&var2=polly")

curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, "write")

curl_easy_perform(curl, "complite")

}



public write(data[], size, nmemb) {

new buf[WRITE_BUF_SIZE+1]



new real_size = size*nmemb



if(real_size > charsmax(buf)) {

// непонятно как вообще это случилось

return 0

}



// здесь следует производить добавление data в какой-то глобальный буффер



return real_size

}





public complite(CURLcode:code, CURL:curl) {

curl_easy_cleanup(curl)

}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя overtime
сообщение 8.2.2016, 23:09
Сообщение #6
Стаж: 10 лет

Сообщений: 37
Благодарностей: 2
Полезность: < 0

Видимо не оно
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
serfreeman1337
сообщение 9.2.2016, 4:04
Сообщение #7
Стаж: 13 лет

Сообщений: 912
Благодарности: выкл.

Лол.
Useful Tutorials, Guides, Snippets, and References (Data Communication)

Последняя ссылка это если совсем не допер как оно устроено. Просто скачиваешь ответ как файл и дальше через функции f*/read_file читаешь его.

Хотя минуточку.. опять привязки мутим?

Отредактировал: serfreeman1337, - 9.2.2016, 4:06
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя overtime
сообщение 9.2.2016, 8:04
Сообщение #8
Стаж: 10 лет

Сообщений: 37
Благодарностей: 2
Полезность: < 0

serfreeman1337, HTTP не катит, там скачка файла, а если php файл скачать, то там уже не то будет..
А вот второе:
Код:

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2013 ITB CompuPhase, AMX Mod X Team

sco.sma(25) : error 017: undefined symbol "write_web"
sco.sma(26) : error 017: undefined symbol "read_web"
sco.sma(39) : warning 217: loose indentation
sco.sma(39) : error 029: invalid expression, assumed zero
sco.sma(39) : error 017: undefined symbol "read_web"
sco.sma(48) : error 017: undefined symbol "ExplodeString"
sco.sma(61) : error 017: undefined symbol "disconnect_web"
sco.sma(64) : warning 217: loose indentation
sco.sma(64) : error 029: invalid expression, assumed zero
sco.sma(64) : error 017: undefined symbol "write_web"
sco.sma(64) : warning 215: expression has no effect
sco.sma(64) : error 001: expected token: ";", but found "]"
sco.sma(64) : fatal error 107: too many error messages on one line

Compilation aborted.
10 Errors.




Почему он ошибки выдает?
Код:

#include <amxmodx>
#include <sockets>


new g_sckweb //socket "id"

#define SCRIPT_NAME "/myplugin/parser.php"
#define REMOTE_HOST "myserver.com" //port d.80

public plugin_init()
{
register_plugin("Socket sample", "??" ,"Darksnow")
set_task(5.0,"connect_web")
}

public connect_web()
{
new error = 0
new constring[512]

g_sckweb = socket_open(REMOTE_HOST, 80, SOCKET_TCP, error)
if (g_sckweb > 0)
{
format(constring,511,"GET %s HTTP/1.1^nHost: %s^n^n",SCRIPT_NAME,REMOTE_HOST)
write_web(constring)
read_web()
}
else
{
switch (error)
{
case 1: { server_print("Error creating socket"); }
case 2: { server_print("Error resolving remote hostname"); }
case 3: { server_print("Error connecting socket"); }
}
return PLUGIN_CONTINUE
}

public read_web()
{
const SIZE = 63
new line_variable[SIZE + 1], line_value[SIZE + 1]

if (socket_change(g_sckweb, 100))
{
new buf[512], lines[30][100], count = 0
socket_recv(g_sckweb, buf, 511)
count = ExplodeString(lines, 50, 119, buf, 13)
for(new i=0;i<count;i++)
{
parse(lines[i], line_variable, SIZE, line_value, SIZE)
if (equal(line_variable, "some_value"))
{
server_print("Value is %s", line_value)
}
}

if (g_sckweb != 0)
set_task(0.5, "read_web")
else
disconnect_web()
}

public write_web(text[512])
{
socket_send(g_sckweb, text, 511)
}

public disconnect_web()
{
server_print("Socket disconnected")
}

stock ExplodeString( p_szOutput[][], p_nMax, p_nSize, p_szInput[], p_szDelimiter ) { // Function by xeroblood
new nIdx = 0, l = strlen(p_szInput)
new nLen = (1 + copyc( p_szOutput[nIdx], p_nSize, p_szInput, p_szDelimiter ))
while( (nLen < l) && (++nIdx < p_nMax) )
nLen += (1 + copyc( p_szOutput[nIdx], p_nSize, p_szInput[nLen], p_szDelimiter ))
return nIdx
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя overtime
сообщение 9.2.2016, 8:27
Сообщение #9
Стаж: 10 лет

Сообщений: 37
Благодарностей: 2
Полезность: < 0

Понятно, уже не фига не пашет....
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
serfreeman1337
сообщение 9.2.2016, 15:43
Сообщение #10
Стаж: 13 лет

Сообщений: 912
Благодарности: выкл.

Руки выпрями. Потерял половину скобок при копировании.

Цитата
HTTP не катит, там скачка файла, а если php файл скачать, то там уже не то будет

Сам придумал? Почему бы просто не проверить? Ну да, мы не сможешь через инкюд отправить POST, но нахер оно нам нужно, когда можно в адресе через GET?
Код
HTTP_DownloadFile("http://localhost/script.php?id=1337","result.txt")

И смотришь файл result.txt, и что нас там будет, если мы всё правильно сделали? Правильно! ответ сервера!
Цитата
уже не фига не пашет

Лучше закажи у кого-то тогда, если сам не хочешь разбираться.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя overtime
сообщение 9.2.2016, 17:14
Сообщение #11
Стаж: 10 лет

Сообщений: 37
Благодарностей: 2
Полезность: < 0

serfreeman1337, Файл подменить можно, а страницу нет.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: