SA-MP Forums Archive
HTTP (Tutorial)? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: HTTP (Tutorial)? (/showthread.php?tid=171109)



HTTP (Tutorial)? - Johnny_Xayc - 25.08.2010

В общем хочется сделать восстановление пароля у игрока на сервере через автоматическую отправку пароля на его email,но цеплять плагин (mailer) ради этого не в понт,а вот благодаря HTTP и PHP куда бы было лучше,дак вот хочу спросить как работает HTTP и прочие,на сколько я понял то делаем так:

format(sss,78,"varlando.ru/mail.php?user=%s",getPlayerName(playerid));
HTTP(playerid, HTTP_POST,sss, "", "HTTPMailPassword");

это мы отправили запрос к странице http://varlando.ru/mail.php?user=lalala (страницы такой не существует,,это просто пример)...

а тем временем скрипт в mail.php вытаскивает чему равно user из адресной строки делает запрос в БД по этому нику тем самым генерируя рандомный пароль и записывает этому игроку новый пароль и одновременно с этим отправляет его на емаил опять же указанный в БД(делали запрос по нику игрока,от туда вытащили)...

правильно ли я использую функцию HTTP...просто написать скрипт PHP который должен выполнять главное действие у меня труда не составит,а вот с HTTP я ещё не понел как работать,если не трудно можете написать туториал или что-нибудь вроде этого?
заранее спасибо)


Re: HTTP (Tutorial)? - Romanius - 25.08.2010

помоему нужно использовать HTTP_GET и если у тя все отправилось в пхп принтом пищи ОК и потом проверяй в паблике


Re: HTTP (Tutorial)? - Winston - 25.08.2010

Code:
format(sss,78,"varlando.ru/mail.php?user=%s",getPlayerName(playerid));
HTTP(playerid, HTTP_POST,sss, "", "HTTPMailPassword");
указываешь post, а делаешь get)


Re: HTTP (Tutorial)? - Johnny_Xayc - 25.08.2010

Winston обясни по подробнее плез.


Re: HTTP (Tutorial)? - Winston - 25.08.2010

format(sss,78,"user=%s",getPlayerName(playerid));
HTTP(playerid, HTTP_POST,"varlando.ru/mail.php", sss, "MyHttpResponse");
думаю как то так
edit
или так
format(sss,78,"%s",getPlayerName(playerid));
HTTP(playerid, HTTP_POST,"varlando.ru/mail.php", sss, "MyHttpResponse");

экспериментируй)


Re: HTTP (Tutorial)? - Johnny_Xayc - 25.08.2010

спс,буду пробывать щас...


Re: HTTP (Tutorial)? - Johnny_Xayc - 25.08.2010

не канает(


Re: HTTP (Tutorial)? - Winston - 25.08.2010

Code:
new name[MAX_PLAYER_NAME], string[44];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string),"nick=%s",name);
HTTP(playerid, HTTP_POST,"sa-mp.ws/old/nick.php", string,"");
работает.
http://sa-mp.ws/old/nicks.txt
ответ не забудь добавить


Re: HTTP (Tutorial)? - Johnny_Xayc - 25.08.2010

а мне это уже не надо,ну как,я разобрался,мне лижь бы отправить запрос к странице,а она уже автоматически выполняется...


Re: HTTP (Tutorial)? - Walk_M4n - 29.08.2010

Сам запрос:
pawn Code:
format(query, sizeof(query), "user=%s", GetPlayerName(playerid));
HTTP(playerid, HTTP_POST, "varlando.ru/mail.php", query, "HttpResponse");
mail.php
PHP Code:
define('SERVER_IP'127.0.0.1);
if(
$_SERVER['REMOTE_ADDR'] != SERVER_IP) die('Hacking attempt');
// здесь сам mail()
echo 'Successfully sent to '.$_POST['user']; 
Обработка ответа:
pawn Code:
public HttpResponse(index, response_code, data[])
{
    if(IsPlayerConnected(index) && index != INVALID_PLAYER_ID && response_code == 200) SendClientMessage(index, 0xFFFFFF00, data);
    else printf("Error in response data");
}

На работоспособность не проверял