Szerző Téma: HTTP használata, scripten belül. Hogyan?  (Megtekintve 1912 alkalommal)

HTTP használata, scripten belül. Hogyan?
« Dátum: 2013. július 31. - 13:31:32 »
0 Show voters
Sziasztok!
Lenne egy kérdésem, ami a következõ .. egy külsõ programból szeretnék megkülönböztetést küldeni a szerverre, és azt a választ haptam h próbáljam meg HTTP ahsználatával .. a gond csak az hogy a rákom se tudja hogy mi ez/hogy kell használni..
Olvasgattam én ezt: http://wiki.sa-mp.com/wiki/HTTP de nem sokat szedtem ki belõle :/
A lényeg igazából, hogy a saját samp szerver laucheremhez szeretnék egy olyat csatolni, hogy ha én azzal fellépek a szerverre akkor csatlakozáskor kapjak az eredetiken felül +500 pénzt ...
Gondolok itt arra, ha nem a programmal csatlakozok akkor
 
SendClientMessage(playerid, -1, \"Üdv a szerveren\");

 
ha a programmal csatlakozok akkor meg
 
SendClientMessage(playerid, -1, \"Üdv a szerveren\");
GivePlayerMoney(playerid, 500);

 
A kérdésem továbbá, hogy a programot mire kell írnom .. hogy egy fájlt töltsön fel egy webhelyre? vagy nem értem én ezt :DD

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
HTTP használata, scripten belül. Hogyan?
« Válasz #1 Dátum: 2013. július 31. - 15:57:39 »
0 Show voters

HTTP használata, scripten belül. Hogyan?
« Válasz #2 Dátum: 2013. július 31. - 16:05:13 »
0 Show voters
Idézetet írta: ZyZu date=1375279059\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"40686\" data-ipsquote-contentclass=\"forums_Topic
http://sampforum.hu/index.php?topic=45196.0
 
Köszi!
Közben eredeti fórumon is segítettek, de nyomtam egy +-t :) 
Még1 kérdés: A lekérdezés akkor \"sikerül\" ha létezik a fájl?
Eredeti fórumon ezt a választ kaptam:
 
Emh.. its a bit hard than you think..
I mean:
 

        static void Main(string[] args)
        {
            string ip = null;
            // Here your code to get the IP
            if (ip != null)
            {
                // now the have the IP
                // send it
                Console.WriteLine(\"Your IP is: \" + ip);
                WebClient wc = new WebClient();
                // i never used UploadString, but its just an example
             //   wc.UploadString(\"your_php_page\", ip);
                // then you are ok.
            }
            else
            {
                Console.WriteLine(\"Unable to get your IP\");
            }
        }

 
This should help you to understand the logic.
Then the PHP should save the string he get, anyway a SQLite code might be better since is better to manage than a plain text.
The PAWN script is a simple HTTP request to a page w/ the IP of the connected player as param something like this:
 

public OnPlayerConnect(playerid)
{
    new str [16 + 5];
    new IP [16];
   
    str = \"d=\";
    GetPlayerIp( playerid , ip , 16 );
    strcat(str, ip, 16+5);
       
    HTTP(playerid, HTTP_GET, \"your_url\", str, \"OhWait\");
    return true;
}
// remember to forward
public OhWait ( ... )
{
    if (response_code == 200 && strval(data) == 1)
    {
        GivePlayerMoney ( playerid , 50 );
    }
    else
    {
        // Here or the WEBSITE is down
        // Or the player is not connected using Your APP
    }
}

 
<b>Important</b>: to get this working, when the player is connected w/ the app, the php page should report a response with \"1\".
[/quote]
A kérdésem az,hogy eltudod-e magyarázni hogy mi-micsoda az elsõ résznél .. (itt)
 

        static void Main(string[] args)
        {
            string ip = null;
            // Here your code to get the IP
            if (ip != null)
            {
                // now the have the IP
                // send it
                Console.WriteLine(\"Your IP is: \" + ip);
                WebClient wc = new WebClient();
                // i never used UploadString, but its just an example
             //   wc.UploadString(\"your_php_page\", ip);
                // then you are ok.
            }
            else
            {
                Console.WriteLine(\"Unable to get your IP\");
            }
        }

 
Elvileg ezt kellene a programomba építeni .. vagy mi?
Mert csak ez nem tiszta .. a pawn részét megoldottam! (így:)
 

public OnPlayerConnect(playerid)
{
    new str [16 + 5];
    new ip [16];
    str = \"d=\";
    GetPlayerIp( playerid , ip , 16 );
    strcat(str, ip, 16+5);
    HTTP(playerid, HTTP_GET, \"www.enwebhelyem.do.am/checkmember.txt\", str, \"CheckFile\");
    return true;
}
forward CheckFile(index, response_code, data[]);
public CheckFile(index, response_code, data[])
{
    if (response_code == 200 && strval(data) == 1)
    {
        GivePlayerMoney ( index , 500 );
    }
    else
    {
        // Here or the WEBSITE is down
        // Or the player is not connected using Your APP
    }
}
« Utoljára szerkesztve: 2013. július 31. - 16:10:16 írta Bloody44 »

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
HTTP használata, scripten belül. Hogyan?
« Válasz #3 Dátum: 2013. július 31. - 16:22:32 »
0 Show voters
Szóval ha jól értelmeztem akkor létre kell hozzál egy fáljt a weboldalod fõmappájában.. és ahoz kell csatalkozni.. HA nem létezik akkor hibás visszatérést hív vissza.. ha létezik akkor elküldi az üzenetet neked.  :hmmm:

HTTP használata, scripten belül. Hogyan?
« Válasz #4 Dátum: 2013. július 31. - 16:32:51 »
0 Show voters
Idézetet írta: ZyZu date=1375280552\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"40686\" data-ipsquote-contentclass=\"forums_Topic
Szóval ha jól értelmeztem akkor létre kell hozzál egy fáljt a weboldalod fõmappájában.. és ahoz kell csatalkozni.. HA nem létezik akkor hibás visszatérést hív vissza.. ha létezik akkor elküldi az üzenetet neked.  :hmmm:
 
NEM!
Itt az a lényeg,hogy a program megkülönböztetést tegyen amit lelehet kérni pwn-ben..
Mert azt szeretném, hogy ha a programmal csatlakoznak a szeróra akkor kapjanak +500 goldot!
Erre, hivatalos fórumon egy php-s megoldást adtak, melyet itt megtekinthetsz: http://forum.sa-mp.com/showthread.php?t=455039
A lényeg az lenne, hogy nemtudom a programomat és a pwn-t kapcsolatba hozni egymással..
Mert az ok hogy a pwn-be lekérjük a fájlt. .. és ha létezik kiíratjuk azt hogy xyz .. vagy nemtudom ez mire jó :DD
Nekem a fõ bajom ez:
Mert azt szeretném, hogy ha a programmal csatlakoznak a szeróra akkor kapjanak +500 goldot!
Erre, hivatalos fórumon egy php-s megoldást adtak, melyet itt megtekinthetsz: http://forum.sa-mp.com/showthread.php?t=455039

Nem elérhető Jippy

  • 618
    • Profil megtekintése
HTTP használata, scripten belül. Hogyan?
« Válasz #5 Dátum: 2013. július 31. - 17:13:43 »
+1 Show voters
MySQL-el össze kell kötni a módot és a launchert.
( Nem biztos )

Nem elérhető Szilard

  • Adminisztrátor
  • 1832
    • Profil megtekintése
HTTP használata, scripten belül. Hogyan?
« Válasz #6 Dátum: 2013. július 31. - 17:19:33 »
0 Show voters
Szerintem csatlakozáskor nyisson meg egy PHP scriptet a webszervereden, ami átírja egy adatbázisban (pl. MySQL-ben) a nevénél/IP címénél, hogy arról csatlakozik, majd csatlakozásnál kérdezze le az adatbázisból név/IP cím alapján, hogy azzal csatlakozik-e. Valamint ha az IP címes megoldást használod (de szerintem inkább neves megoldást használj ha megoldható, bár nem tudom, hogy milyen a launchered), akkor csatlakozás után írja vissza az adatbázisban, hogy nem arról csatlakozik.

HTTP használata, scripten belül. Hogyan?
« Válasz #7 Dátum: 2013. július 31. - 17:21:16 »
0 Show voters
Idézetet írta: Szilard00 date=1375283973\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"40686\" data-ipsquote-contentclass=\"forums_Topic
Szerintem csatlakozáskor nyisson meg egy PHP scriptet a webszervereden, ami átírja egy adatbázisban (pl. MySQL-ben) a nevénél/IP címénél, hogy arról csatlakozik, majd csatlakozásnál kérdezze le az adatbázisból név/IP cím alapján, hogy azzal csatlakozik-e. Valamint ha az IP címes megoldást használod (de szerintem inkább neves megoldást használj ha megoldható, bár nem tudom, hogy milyen a launchered), akkor csatlakozás után írja vissza az adatbázisban, hogy nem arról csatlakozik.
 
Ezt egy VisualBasic es példában letudod írni? És a pawn-ban mit használjak? maradjanak ezek a fuggvények?
Gyakorlatilag akkor azt irtad le amit próbálok kivitelezni :DD Ez eddig sikerült pawn nyelven, csak a programban nem tudom hogy mit kellene hozzárenedlnem .. mert pwn-ben ez van:
 

public OnPlayerConnect(playerid)
{
    new str [16 + 5];
    new ip [16];
    str = \"d=\";
    GetPlayerIp( playerid , ip , 16 );
    strcat(str, ip, 16+5);
    HTTP(playerid, HTTP_GET, \"www.honeysystemac.do.am/checkac\", str, \"Check\");
    return true;
}
forward Check(index, response_code, data[]);
public Check(index, response_code, data[])
{
    if (response_code == 200 && strval(data) == 1)
    {
        GivePlayerMoney ( index , 50 );
    }
    else
    {
        // Here or the WEBSITE is down
        // Or the player is not connected using Your APP
    }
}

 
Csak azt nem tudom,hogy mit kezdjek ezzel :/
Mert ReVo_ -tól egy ilyen elméletet kaptam:
\"When the player open the application, get his IP and send the IP to a PHP page and save it.
When a player w/ the same IP connect to the server, give him the moneys and remove the IP from the list.\"
Ez meg van oldva a pawn terén, úgy ahogy fentebb írtam .. csak a program terén nem tudom megoldani, hogy kérje le és mentse php-ben, valamint a pawn részébõl annyit nem értek hogy mit kér le itt:
 
    HTTP(playerid, HTTP_GET, \"www.honeysystemac.do.am/checkac\", str, \"Check\"); 

 
és késõbb mi az az elágazás .. mert az okés hogy \"sikerült a lekérés\" meg \"nemsikerült\" .. de hogy függ össze ez a lementett ip-vel?
Én úgy értelmeztem,hogy a program egy fájlt tölt fel php-ra és a pawn lekérdezi hogy megvan-e .. ha megvan akkor megkapja a pénzt ha nincs akkor nem ..
Ha így van,akkor a programnak elég csak egy \"ip\" nevû fájlt feltöltenie php-ra és lentebb ezt le is kérdezi .. oké .. akkor .. asszem felfogtam xd
« Utoljára szerkesztve: 2013. július 31. - 17:28:35 írta Bloody44 »

Nem elérhető Szilard

  • Adminisztrátor
  • 1832
    • Profil megtekintése
HTTP használata, scripten belül. Hogyan?
« Válasz #8 Dátum: 2013. július 31. - 17:22:32 »
0 Show voters
A mód MySQL-t használ? Azzal lenne a legegyszerûbb, de természetesen a HTTP-vel is megoldható, viszont szerintem ott is MySQL-t kellene használni.
A launchered kér nevet csatlakozáshoz?

HTTP használata, scripten belül. Hogyan?
« Válasz #9 Dátum: 2013. július 31. - 17:36:04 »
0 Show voters
Idézetet írta: Szilard00 date=1375284152\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"40686\" data-ipsquote-contentclass=\"forums_Topic
A mód MySQL-t használ? Azzal lenne a legegyszerûbb, de természetesen a HTTP-vel is megoldható, viszont szerintem ott is MySQL-t kellene használni.
A launchered kér nevet csatlakozáshoz?
 
Nem .. csak egy egyszerû .. nincs is benne semmi gyakorlatilag csak egy
 

System.Diagnostics.Process.Start(\"samp:/­/\" + Text1.Text + \"\")

 
De hogyha készítesz egyet, vagy megadod a forráskódot akkor megoldható tõlem a mysql-is .. az a géz hogy a php-már megvan :D Csak a vb programban nemtudom hogy hogyan oldható meg hogy feltöltse az ip-t pl ide: www.enveblapon.do.am
Az kellene már csak,hogy egy kattintásra lekérje az ip-t feltöltse a holnapra és csatlakozzon a szerverre!
A script már megvan,amellyel a honlapról lekérdezi a fájlt ..

Nem elérhető Szilard

  • Adminisztrátor
  • 1832
    • Profil megtekintése
HTTP használata, scripten belül. Hogyan?
« Válasz #10 Dátum: 2013. július 31. - 17:42:29 »
0 Show voters
http://msdn.microsoft.com/en-us/library/debx8sh9.aspx
Csak nyisson meg egy PHP fájlt, ami lekéri az IP-jét, és beírja MySQL-be :).

HTTP használata, scripten belül. Hogyan?
« Válasz #11 Dátum: 2013. július 31. - 17:44:09 »
0 Show voters
Idézetet írta: Szilard00 date=1375285349\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"40686\" data-ipsquote-contentclass=\"forums_Topic
http://msdn.microsoft.com/en-us/library/debx8sh9.aspx
Csak nyisson meg egy PHP fájlt, ami lekéri az IP-jét, és beírja MySQL-be :).
 
áááááá értem ..
És a beírt ip-vel mit kezdek majd? Egy pawn scriptben le kell kérdezni .. ugye? :DD És ezt hogyan kérdezhetjük le?

Nem elérhető Szilard

  • Adminisztrátor
  • 1832
    • Profil megtekintése
HTTP használata, scripten belül. Hogyan?
« Válasz #12 Dátum: 2013. július 31. - 17:52:09 »
0 Show voters
PAWN-t pár éve nem használtam, szóval nem tudom már, hogy hogy mûködik a HTTP funkció, de úgy emlékszem, hogy értéket is tud lekérni, úgyhogy ez is megnyit egy PHP fájlt, ami kiír valamit, vagy simán MySQL plugint használsz.

HTTP használata, scripten belül. Hogyan?
« Válasz #13 Dátum: 2013. július 31. - 17:54:43 »
0 Show voters
Idézetet írta: Szilard00 date=1375285929\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"40686\" data-ipsquote-contentclass=\"forums_Topic
PAWN-t pár éve nem használtam, szóval nem tudom már, hogy hogy mûködik a HTTP funkció, de úgy emlékszem, hogy értéket is tud lekérni, úgyhogy ez is megnyit egy PHP fájlt, ami kiír valamit, vagy simán MySQL plugint használsz.
 
A HTTP funkcíó már meg van írva :DD
 

public OnPlayerConnect(playerid)
{
    new str [16 + 5];
    new ip [16];
    str = \"d=\";
    GetPlayerIp( playerid , ip , 16 );
    strcat(str, ip, 16+5);
    HTTP(playerid, HTTP_GET, \"www.enoldalam.com/\", str, \"Check\");
    return true;
}
forward Check(index, response_code, data[]);
public Check(index, response_code, data[])
{
    if (response_code == 200 && strval(data) == 1)
    {
        GivePlayerMoney ( index , 50 );
    }
    else
    {
        // Here or the WEBSITE is down
        // Or the player is not connected using Your APP
    }
}

 
De akkor legyen a mysql-es megoldás .. vagy nekem tökmind1 csak mûködjön valahogy a dolog..

HTTP használata, scripten belül. Hogyan?
« Válasz #14 Dátum: 2013. július 31. - 18:04:30 »
0 Show voters
Idézetet írta: ZyZu date=1375286350\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"40686\" data-ipsquote-contentclass=\"forums_Topic


PAWN-t pár éve nem használtam, szóval nem tudom már, hogy hogy mûködik a HTTP funkció, de úgy emlékszem, hogy értéket is tud lekérni, úgyhogy ez is megnyit egy PHP fájlt, ami kiír valamit, vagy simán MySQL plugint használsz.
 
így van ezt probáltam elmagyarázni neked :D
 
[/quote]
a te php-s megoldásodra is kíváncsi vagyok .. az is ugyan ez gyakorlatilag,csak nem mysql-be menti hanem feltölti phpra és a pawn-ban lekérdezi?

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal