Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][LUA] PHP_SDK
playdewu
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.07.2013

Ostrzeżenie: (0%)
-----


Cześć.
Planuję stawiać serwer gry Multi Theft Auto. Potrzebowałem skryptu do połączenia serwera www z serwerem gry w celu dodawania pieniędzy na konto w grze z poziomu strony www.
Dostałem taki kod na forum MTA:
  1. -- Your PHP Code
  2. <?php
  3. if ( isset ( $_GET['m'] ) && isset ( $_GET['a'] ) ) {
  4.  
  5. $money = $_GET['m'];
  6. $account = $_GET['a'];
  7.  
  8. include "mta/mta_sdk.php";
  9.  
  10. $mta = new mta ( "server ip", port, username, password );
  11. $mta->getResource("PHP_Callback")->call("giveTheMoneyToAccount", $account, $money );
  12. }
  13. ?>

LUA:
  1. -- for PHP_Callback resource
  2. -- make sure to export "giveTheMoneyToAccount" on http also
  3. -- <export function="giveTheMoneyToAccount" http="true" />
  4. function giveTheMoneyToAccount ( account, money )
  5. for i, v in pairs ( getElementsByType ( "player" ) ) do
  6. local a = getPlayerAccount ( v )
  7. if ( not isGuestAccount ( a ) and getAccountName ( a ) == acount ) then
  8. givePlayerMoney ( v, money )
  9. return true
  10. end
  11. end
  12. return false
  13. end


Potrzebuję dodatkowego pola w które wprowadzałbym login (AccountName) i dopiero wysyłał przyciskiem "Wyślij".
Próbowałem samemu ale średnio znam się na PHP:
  1. <?php if(!isset($_POST['submit'])) { ?>
  2.  
  3. <form action="" method="post">
  4. Login: <input type="text" name="a"><br>
  5. <input type="submit" name="submit">
  6. </form>
  7.  
  8. <?php
  9. if ( isset ( $_GET['m'] ) && isset ( $_GET['a'] ) ) {
  10.  
  11. $login = $_POST['a'];
  12.  
  13. $money = $_GET['m'];
  14. $account = $_GET['a'];
  15.  
  16. include "mta/mta_sdk.php";
  17.  
  18. $mta = new mta ( "server ip", port, username, password );
  19. $mta->getResource("PHP_Callback")->call("giveTheMoneyToAccount", $account, $money );
  20. }
  21. ?>


Wywala błąd w przeglądarce:
Kod
Parse error: syntax error, unexpected $end in /home/dewu/domains/ddesign.webt.pl/public_html/mta/addmoney.php on line 21


Mógłby ktoś mi ten skrypcik poprawić? (IMG:style_emoticons/default/wink.gif)
Będę bardzo, bardzo wdzięczny!

Ten post edytował playdewu 16.08.2014, 15:56:51
Go to the top of the page
+Quote Post
Beniooo
post
Post #2





Grupa: Zarejestrowani
Postów: 260
Pomógł: 26
Dołączył: 26.01.2012
Skąd: Ci to przyszło do głowy?

Ostrzeżenie: (0%)
-----


Masz niezamkniętego ifa.
  1. <?php if(!isset($_POST['submit'])) { ?>
Go to the top of the page
+Quote Post
playdewu
post
Post #3





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.07.2013

Ostrzeżenie: (0%)
-----


Faktoza (IMG:style_emoticons/default/biggrin.gif) Dziękóweczka! Ale pojawia się kolejny błąd:
Kod
Fatal error: Uncaught exception 'Exception' with message 'Not Found' in D:\WebServ\httpd\mm\sdk\mta_sdk.php:203 Stack trace: #0 D:\WebServ\httpd\mm\sdk\mta_sdk.php(79): mta->do_post_request('192.168.137.2', 22005, '/PHP_Callback/c...', '["dewu","1000"]') #1 D:\WebServ\httpd\mm\sdk\mta_sdk.php(257): mta->callFunction('PHP_Callback', 'giveTheMoneyToA...', Array) #2 D:\WebServ\httpd\mm\addmoney.php(19): Resource->call('giveTheMoneyToA...', 'dewu', '1000') #3 {main} thrown in D:\WebServ\httpd\mm\sdk\mta_sdk.php on line 203


Proszę, niech ktoś się przyjrzy temu skryptowi, może ja coś skopałem w nim ;/

Ten post edytował playdewu 16.08.2014, 16:13:41
Go to the top of the page
+Quote Post
Beniooo
post
Post #4





Grupa: Zarejestrowani
Postów: 260
Pomógł: 26
Dołączył: 26.01.2012
Skąd: Ci to przyszło do głowy?

Ostrzeżenie: (0%)
-----


Na początek sprawdź, czy masz w ogóle połączenie, zmień:
  1. $mta = new mta ( "server ip", port, username, password );
na
  1. $mta = new mta ( "server ip", port, username, password ) or die("Polaczenie");
Go to the top of the page
+Quote Post
playdewu
post
Post #5





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.07.2013

Ostrzeżenie: (0%)
-----


Połączenie jest, zapomniałem dodać.
Serwer WWW postawiłem na Webservie, serwer MTA lokalnie odpaliłem, w okienku wyświetla:
Kod
[2014-08-16 13:51:55] HTTP: 'dewu' entered correct password from 192.168.137.2

co oznacza jest jest połączenie (chyba) (IMG:style_emoticons/default/tongue.gif)

Mi się zdaje, że skopałem coś ze składnią tego skryptu.
Pierwotnie (taki jaki otrzymałem) działał on na zasadzie ręcznej edycji wartości danego linku tzn.: http://yourwebsite/money.php?a=accountName&m=1000
ja chcąc dodać to "pole" do wprowadzania loginu dodałem:
  1. <?php if(!isset($_POST['submit'])) { ?>
  2.  
  3. <form action="" method="post">
  4. Login: <input type="text" name="a"><br>
  5. <input type="submit" name="submit">
  6. </form>

oraz
  1. $login = $_POST['a'];


I znając życie coś skopałem. Już się gubię, od rana nad tym siedzę ^^

Ten post edytował playdewu 16.08.2014, 16:35:33
Go to the top of the page
+Quote Post
Beniooo
post
Post #6





Grupa: Zarejestrowani
Postów: 260
Pomógł: 26
Dołączył: 26.01.2012
Skąd: Ci to przyszło do głowy?

Ostrzeżenie: (0%)
-----


var_dump($_GET) i co tam masz?
Go to the top of the page
+Quote Post
playdewu
post
Post #7





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.07.2013

Ostrzeżenie: (0%)
-----


Cytat(Beniooo @ 16.08.2014, 17:53:29 ) *
var_dump($_GET) i co tam masz?

Czy wspominałem, że jestem zielony? (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
Beniooo
post
Post #8





Grupa: Zarejestrowani
Postów: 260
Pomógł: 26
Dołączył: 26.01.2012
Skąd: Ci to przyszło do głowy?

Ostrzeżenie: (0%)
-----


Czekaj czekaj, jak Ty w ogóle ten skrypt wywołujesz? Bo widzę, że rozpierdziel, najpierw formularz z postem a później używasz geta do zapytania.
Go to the top of the page
+Quote Post
playdewu
post
Post #9





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.07.2013

Ostrzeżenie: (0%)
-----


To znaczy.. przy użyciu http://localhost/mm/addmoney.php pojawia mi się formularz, po wpisaniu czegokolwiek znika i pojawia się białe tło.
Natomiast przy użyciu:http://localhost/mm/addmoney.php?a=dewu&m=1000 formularz też się pojawia, tyle że z błędem:
Kod
Fatal error: Uncaught exception 'Exception' with message 'Not Found' in D:\WebServ\httpd\mm\sdk\mta_sdk.php:203 Stack trace: #0 D:\WebServ\httpd\mm\sdk\mta_sdk.php(79): mta->do_post_request('192.168.137.2', 22005, '/PHP_Callback/c...', '["dewu","1000"]') #1 D:\WebServ\httpd\mm\sdk\mta_sdk.php(257): mta->callFunction('PHP_Callback', 'giveTheMoneyToA...', Array) #2 D:\WebServ\httpd\mm\addmoney.php(16): Resource->call('giveTheMoneyToA...', 'dewu', '1000') #3 {main} thrown in D:\WebServ\httpd\mm\sdk\mta_sdk.php on line 203


Że rozpierdziel wiem, mógłbyś jakoś to ułożyć? (IMG:style_emoticons/default/wink.gif)

Ten post edytował playdewu 16.08.2014, 17:03:57
Go to the top of the page
+Quote Post
Beniooo
post
Post #10





Grupa: Zarejestrowani
Postów: 260
Pomógł: 26
Dołączył: 26.01.2012
Skąd: Ci to przyszło do głowy?

Ostrzeżenie: (0%)
-----


  1. <?php if(!isset($_POST['submit'])) { ?>
  2.  
  3. <form action="" method="post">
  4. Login: <input type="text" name="a"><br>
  5. Coś jeszcze: <input type="text" name="m"><br>
  6.  
  7. <input type="submit" name="submit">
  8. </form>
  9.  
  10. <?php
  11. if ( isset ( $_POST['m'] ) || isset ( $_POST['a'] ) ) {
  12.  
  13. $login = $_POST['a']; // Po co to?
  14.  
  15. $money = $_POST['m'];
  16. $account = $_POST['a'];
  17.  
  18. include "mta/mta_sdk.php";
  19.  
  20. $mta = new mta ( "server ip", port, username, password ) or die("Err1");
  21. $mta->getResource("PHP_Callback")->call("giveTheMoneyToAccount", $account, $money ) or die("Err2");
  22. }
  23. ?>

No, pisane tak z palca. Spróbuj. Wejdź po prostu na stronę, uzupełnij formularz i powiedz co rzuciło.
Go to the top of the page
+Quote Post
playdewu
post
Post #11





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.07.2013

Ostrzeżenie: (0%)
-----


Kod
Parse error: syntax error, unexpected $end in D:\WebServ\httpd\mm\addmoney.php on line 23

Ale to już wiem, że chodzi o niezamkniętego ifa (IMG:style_emoticons/default/tongue.gif)
Zamknąłem, w obu linkach pojawiają się tylko dwa pola, po wpisaniu białe tło. Zauważyłem też, że po tym jak zamieniłeś GETy na POSTy nie ma połączenia z serwerem.

Cytat("Beniooo")
$login = $_POST['a']; // Po co to?

Nie wiem, nie myślę.

Napiszę o co mi chodzi raz jeszcze, bo może źle się wyraziłem.
Chcę aby ten skrypt po wpisaniu w pole loginu dodawał jakąś tam sumę pieniędzy na dane konto gracza.
Sumę tą (z tego co mi wiadomo) można zmienić w pliku LUA:
  1. givePlayerMoney ( v, money )

zamieniając na:
  1. givePlayerMoney ( v, 9999999999)

Próbowałem obie wersje, bez skutku.

Ręcę mi już opadają, mózg mi się wyłączył, pomóżcie ;/

Ten post edytował playdewu 18.08.2014, 10:05:12
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 07:52