Welkom Gast! [Registreer] :: [Login]
Navigatie

Tutorials

Shoutbox
U dient in te loggen om een bericht te plaatsen.

18/05/2012 07:35
gewoon bar en bar slecht, door het gebrek aan animo stoppen ook veel modders en mappers, want ze kunnen niet meer doorschuiven naar andere, nieuwere cod's

18/05/2012 07:34
nou ik denk dat mods voor oude cod's ook beetje dood gaat, door het geheel van te veel mods ervoor, animo per mod is gewoon klein, steeds meer mensen spelen liever vanilla, omdat heel veel mods ge

15/05/2012 10:49
Maar er mag misschien wel eens een 'opflakkering' gebeuren.

15/05/2012 10:48
Hmm, ik en Paulus zijn nogal een grote medieval mod aan het maken. Net beslist om die in codWAW ipv cod2 te doen door gebrek animators cod2.

14/05/2012 23:42
Eens een Mb CoD (UO) match doen fzo


Volg ons voor statusupdates en aankondigingen!
Registreer of log in
Om gebruik te maken van de volledige functionaliteit van Modbase moet je ingelogd zijn.
Na registratie kan je reageren, onderwerpen starten, projecten toevoegen en nog veel meer.

Dit is volkomen gratis en duurt hoogstens een minuut.

Registreer gratis

Laatste Actieve Forumonderwerpen
  Onderwerpen AuteurAntwoorden Laatste bericht
Achtergrond geluid herhalen
CoD 2 Mapping & Modding
apocalypse5736 apocalypse573
18-05-2012 17:28
Compile error
CoD:WaW Mapping & Modding
Fristi4 Fristi
18-05-2012 15:40
Textures met geluid als je erop loopt
CoD Mapping & Modding
codmaster0082 codmaster008
18-05-2012 14:21
Terrain Density verhogen
CoD 2 Mapping & Modding
apocalypse57310 HuRRaCaNe
17-05-2012 16:07
.spd file
CoD 4 Algemeen
cod2editor0 cod2editor
17-05-2012 12:19


Onderwerp bekijken
U bent hier: Forum > Programmeren > [PHP] status
 Onderwerp afdrukken
[PHP] status
Geplaatst op 26-08-2011 11:10
#1  Bericht afdrukken
Avatar van gebruiker

Actief

Posts: 123
Joined: 03.05.09
hey,

ik heb een website en ik heb een stuckje php code nodig die via rcon naar een cod server cmd status opvraagt,

kan iemand me helpen. het rcon paswoord zou dan opgeslagen zijn in bv Rcon1.txt ofzo

het meot geen online rcontool ofzo zijn, gewoon een soort van status checker

alvast bedankt,

Jens
 Top
 
Geplaatst op 26-08-2011 11:18 | Gewijzigd door Stijn op 26-08-2011 11:18
#2  Bericht afdrukken
Avatar van gebruiker

Admin

Posts: 2065
Joined: 17.01.06
Met fsockopen() maak je een UDP verbinding met de server.
Dan maak je bv. gebruik van onderstaande functie om een command op de server uit te voeren:

Broncode downloaden  GeSHi: PHP
  1. function exec_command($cmd){
  2. global $rcon_pass, $connect, $server_extra_wait, $server_buffer_results, $server_extra_footer;
  3. $send = "\xff\xff\xff\xff" . 'rcon "' . $rcon_pass . '" '.$cmd.(($server_extra_footer)?"\n":'');
  4. fwrite($connect, $send);
  5.  
  6. $output = (($server_extra_wait)?(fread($connect, 1)):'');
  7. do {
  8. $status_pre = socket_get_status($connect);
  9. if (($server_extra_wait && $output != '') || (!$server_extra_wait))
  10. $output .= fread($connect, $server_buffer_results);
  11. $status_post = socket_get_status($connect);
  12. } while($status_pre['unread_bytes'] != $status_post['unread_bytes']);
  13.  
  14. return $output;
  15. }


De globals:

$rcon_pass - nogal duidelijk ...
$connect - je socket verbinding die je aangemaakt hebt
$server_extra_wait - zet je op false
$server_buffer_results - zet je op 2048
$server_extra_footer - zet je op true


Proud Coder & Founder of Modbase

i.imgur.com/X64ol.gif
 Top http://www.modbase.be
 
Geplaatst op 26-08-2011 11:24 | Gewijzigd door Derix op 26-08-2011 11:40
#3  Bericht afdrukken
Avatar van gebruiker

Actief

Posts: 123
Joined: 03.05.09
zo snap ik er niet veel van=D ben newb in php

maar je kent php fuzion wel daar heb ik een custom page op gemaakt
dus wat meot ik nu bij het tekstvak Page Content: ?

en welke files meot ik nog aanmaken?

ik gebruikte
Download broncode  Code
<?php
function exec_command($cmd){
global $rcon_pass, $connect, $server_extra_wait, $server_buffer_results, $server_extra_footer;
$send = "\xff\xff\xff\xff" . 'rcon "' . $rcon_pass . '" '.$cmd.(($server_extra_footer)?"\n":'');
fwrite($connect, $send);
 
$output = (($server_extra_wait)?(fread($connect, 1)):'');
do {
$status_pre = socket_get_status($connect);
if (($server_extra_wait && $output != '') || (!$server_extra_wait))
$output .= fread($connect, $server_buffer_results);
$status_post = socket_get_status($connect);
} while($status_pre['unread_bytes'] != $status_post['unread_bytes']);
 
return $output;
}

?>



dus wat je zij
in page content maar krijg niets, ook waar moet ik die globals zetten?
 Top
 
Geplaatst op 26-08-2011 11:36 | Gewijzigd door HuRRaCaNe op 26-08-2011 11:41
#4  Bericht afdrukken
Avatar van gebruiker

Actief

Posts: 123
Joined: 03.05.09
srr voor de vele posten maar ik weet niet of je het al zou gelzen hebben,

nu heb ik
Broncode downloaden  GeSHi: PHP
  1. <?php
  2.  
  3. $rcon_pass = "oeps"
  4. $connect = "192.168.1.14:28960"
  5. $server_extra_wait = false
  6. $server_buffer_results = "2048"
  7. $server_extra_footer = true
  8.  
  9. function exec_command($cmd){
  10. global $rcon_pass, $connect, $server_extra_wait, $server_buffer_results, $server_extra_footer;
  11. $send = "\xff\xff\xff\xff" . 'rcon "' . $rcon_pass . '" '.$cmd.(($server_extra_footer)?"\n":'');
  12. fwrite($connect, $send);
  13.  
  14. $output = (($server_extra_wait)?(fread($connect, 1)):'');
  15. do {
  16. $status_pre = socket_get_status($connect);
  17. if (($server_extra_wait && $output != '') || (!$server_extra_wait))
  18. $output .= fread($connect, $server_buffer_results);
  19. $status_post = socket_get_status($connect);
  20. } while($status_pre['unread_bytes'] != $status_post['unread_bytes']);
  21.  
  22. return $output;
  23. }
  24.  
  25. ?>


en krijg op page
Download broncode  Code
Parse error: syntax error, unexpected T_VARIABLE in E:\xampp\xampp\htdocs\tec\administration\custom_pages.php(114) : eval()'d code on line 4




alvast bedankt

Bericht van Moderator:
Je kan gemakkelijk de edit knop gebruiken. Gebruik die in de toekomst :/
~HuRRaCaNe

 Top
 
Geplaatst op 26-08-2011 11:46
#5  Bericht afdrukken
Avatar van gebruiker

Opgewarmd

Posts: 68
Joined: 12.07.11
't zou ook handig zijn als je in plaats van de interne ip (192.168.x.x) je externe IP gebruikt, zodat anderen de server ook kunnen zien.
 Top
 
Geplaatst op 26-08-2011 11:59 | Gewijzigd door jensser op 26-08-2011 12:03
#6  Bericht afdrukken
Avatar van gebruiker

Actief

Posts: 123
Joined: 03.05.09
met het external ip zal het niet gaan want de website en server zijn op zelfde machine dan kun je niet connecten met external ip naar je eigen computer.

ik ga nu nog eens proberen maar met 127.0.0.1

edit

met 127.0.0.1:28960 werkt het ook niet

dit heb ik nu als code

Broncode downloaden  GeSHi: PHP
  1. <?php
  2.  
  3. $rcon_pass = "159357"
  4. $connect = "127.0.0.1:28960"
  5. $server_extra_wait = false
  6. $server_buffer_results = "2048"
  7. $server_extra_footer = true
  8.  
  9. function exec_command($cmd){
  10. global $rcon_pass, $connect, $server_extra_wait, $server_buffer_results, $server_extra_footer;
  11. $send = "\xff\xff\xff\xff" . 'rcon "' . $rcon_pass . '" '.$cmd.(($server_extra_footer)?"\n":'');
  12. fwrite($connect, $send);
  13.  
  14. $output = (($server_extra_wait)?(fread($connect, 1)):'');
  15. do {
  16. $status_pre = socket_get_status($connect);
  17. if (($server_extra_wait && $output != '') || (!$server_extra_wait))
  18. $output .= fread($connect, $server_buffer_results);
  19. $status_post = socket_get_status($connect);
  20. } while($status_pre['unread_bytes'] != $status_post['unread_bytes']);
  21.  
  22. return $output;
  23. }
  24.  
  25. ?>
  26.  

 Top
 
Geplaatst op 26-08-2011 12:02 | Gewijzigd door HuRRaCaNe op 26-08-2011 12:03
#7  Bericht afdrukken
Avatar van gebruiker

Moderator


Donator
Posts: 5129
Joined: 24.08.06
Maar, je verbindt met het server IP. Tenzij het IP van je server "192.168.1.14" is zal je er niet mee kunnen verbinden.
 Top
 
Geplaatst op 26-08-2011 12:17
#8  Bericht afdrukken
Avatar van gebruiker

Admin

Posts: 2065
Joined: 17.01.06
Natuurlijk werkt het nog niet, je hebt bij $connect je ip-adres ingevuld.
$connect stelt de verbinding voor die je via fsockopen() aanmaakt.


Proud Coder & Founder of Modbase

i.imgur.com/X64ol.gif
 Top http://www.modbase.be
 
Geplaatst op 26-08-2011 12:33
#9  Bericht afdrukken
Avatar van gebruiker

Actief

Posts: 123
Joined: 03.05.09
ik ben echt een newb in php,
hoe maak ik een fsockopen() aan dan?

ik zou dus in php fuzion zon custom page met daarop dan de stat4s zoals in de cod console

bedankt dat julie me proberen te helpen =D
 Top
 
Geplaatst op 26-08-2011 12:38
#10  Bericht afdrukken
Avatar van gebruiker

Admin

Posts: 2065
Joined: 17.01.06
Google: 'php fsockopen' doet wonderen.
De PHP manual is erg duidelijk opgesteld: http://php.net/ma...ckopen.php

Er staan zelfs voorbeelden bij Wink
Ik vermeld er alvast nog eens bij: verbind via UDP!


Proud Coder & Founder of Modbase

i.imgur.com/X64ol.gif
 Top http://www.modbase.be
 
Geplaatst op 26-08-2011 12:39
#11  Bericht afdrukken
Avatar van gebruiker

Actief

Posts: 123
Joined: 03.05.09
ok bedankt, ik ga nu naar mijn pc om het te volgen en uit te proberen, ik zal wel iets posten als het werkt of niet

alvast bedankt
 Top
 
Geplaatst op 26-08-2011 12:50
#12  Bericht afdrukken
Avatar van gebruiker

Actief

Posts: 123
Joined: 03.05.09
hmm ik heb het niet helemaal,

ik heb nu
Broncode downloaden  GeSHi: PHP
  1. <?php
  2.  
  3. $fp = fsockopen("udp://127.0.0.1", 28960, $errno, $errstr);
  4. if (!$fp) {
  5. echo "ERROR: $errno - $errstr<br />\n";
  6. } else {
  7. fwrite($fp, "\n");
  8. echo fread($fp, 26);
  9. fclose($fp);
  10. }
  11.  
  12. $rcon_pass = "159357"
  13. $connect = "udp://127.0.0.1"
  14. $server_extra_wait = false
  15. $server_buffer_results = "2048"
  16. $server_extra_footer = true
  17.  
  18. function exec_command($cmd){
  19. global $rcon_pass, $connect, $server_extra_wait, $server_buffer_results, $server_extra_footer;
  20. $send = "\xff\xff\xff\xff" . 'rcon "' . $rcon_pass . '" '.$cmd.(($server_extra_footer)?"\n":'');
  21. fwrite($connect, $send);
  22.  
  23. $output = (($server_extra_wait)?(fread($connect, 1)):'');
  24. do {
  25. $status_pre = socket_get_status($connect);
  26. if (($server_extra_wait && $output != '') || (!$server_extra_wait))
  27. $output .= fread($connect, $server_buffer_results);
  28. $status_post = socket_get_status($connect);
  29. } while($status_pre['unread_bytes'] != $status_post['unread_bytes']);
  30.  
  31. return $output;
  32. }
  33.  
  34. ?>


en nogaltijd
Download broncode  Code
Parse error: syntax error, unexpected T_VARIABLE in E:\xampp\xampp\htdocs\tec\administration\custom_pages.php(114) : eval()'d code on line 13




hoe kan ik de fsocket dan verbinden met connect?
 Top
 
Geplaatst op 26-08-2011 12:54
#13  Bericht afdrukken
Avatar van gebruiker

Admin

Posts: 2065
Joined: 17.01.06
3 fouten:

1. Je eindigt nergens een declaratie/codefragment met een ; -> verplicht in PHP
2. Je moet fsockopen koppelen aan $connect, niet aan $fp
3. Gebruik de exec_command() functie, en begin niet zo random fread en fwrite te doen (wat blijkbaar letterlijk het voorbeeld van de manual is)


Proud Coder & Founder of Modbase

i.imgur.com/X64ol.gif
 Top http://www.modbase.be
 
Geplaatst op 26-08-2011 13:03
#14  Bericht afdrukken
Avatar van gebruiker

Actief

Posts: 123
Joined: 03.05.09
ok ik snap er totaal niets van maar heb iets gebrobeert,

Broncode downloaden  GeSHi: PHP
  1. <?php
  2.  
  3. $connect = fsockopen("udp://192.168.1.14", 28960, $errno, $errstr);
  4. if (!$connect) {
  5. echo "ERROR: $errno - $errstr<br />\n";
  6. } else {
  7. fwrite($connect, "\n");
  8. echo fread($connect, 26);
  9. fclose($connect);
  10. }
  11.  
  12. $rcon_pass = "159357";
  13. $server_extra_wait = false;
  14. $server_buffer_results = "2048";
  15. $server_extra_footer = true;
  16.  
  17. function exec_command($cmd){
  18. global $rcon_pass, $connect, $server_extra_wait, $server_buffer_results, $server_extra_footer;
  19. $send = "\xff\xff\xff\xff" . 'rcon "' . $rcon_pass . '" '.$cmd.(($server_extra_footer)?"\n":'');
  20. fwrite($connect, $send);
  21.  
  22. $output = (($server_extra_wait)?(fread($connect, 1)):'');
  23. do {
  24. $status_pre = socket_get_status($connect);
  25. if (($server_extra_wait && $output != '') || (!$server_extra_wait))
  26. $output .= fread($connect, $server_buffer_results);
  27. $status_post = socket_get_status($connect);
  28. } while($status_pre['unread_bytes'] != $status_post['unread_bytes']);
  29.  
  30. return $output;
  31. }
  32.  
  33. ?>


maar nu als ik de pagina laadt, blijft hij oneindig laden, de gameserver staat aan
kun je me nog helpen?
bedankt
 Top
 
Geplaatst op 26-08-2011 13:06
#15  Bericht afdrukken
Avatar van gebruiker

Admin

Posts: 2065
Joined: 17.01.06
Eventjes met de paplepel erin geven dan :p

Broncode downloaden  GeSHi: PHP
  1. <?php
  2.  
  3. $connect = fsockopen("udp://127.0.0.1", 28960, $errno, $errstr, 4);
  4.  
  5. if(!$connect) die('Kan niet verbinden met de server');
  6.  
  7. $rcon_pass = "159357";
  8. $server_extra_wait = false;
  9. $server_buffer_results = 2048;
  10. $server_extra_footer = true;
  11.  
  12. function exec_command($cmd){
  13. global $rcon_pass, $connect, $server_extra_wait, $server_buffer_results, $server_extra_footer;
  14.  
  15. $send = "\xff\xff\xff\xff" . 'rcon "' . $rcon_pass . '" '.$cmd.(($server_extra_footer) ? "\n" : '');
  16. fwrite($connect, $send);
  17.  
  18. $output = (($server_extra_wait) ? (fread($connect, 1)) : '');
  19. do {
  20. $status_pre = socket_get_status($connect);
  21. if (($server_extra_wait && $output != '') || (!$server_extra_wait))
  22. $output .= fread($connect, $server_buffer_results);
  23. $status_post = socket_get_status($connect);
  24. } while($status_pre['unread_bytes'] != $status_post['unread_bytes']);
  25.  
  26. return $output;
  27. }
  28.  
  29. echo exec_command('status');
  30.  
  31. ?>



Proud Coder & Founder of Modbase

i.imgur.com/X64ol.gif
 Top http://www.modbase.be
 
Geplaatst op 26-08-2011 13:06
#16  Bericht afdrukken
Avatar van gebruiker

Master

Posts: 875
Joined: 14.10.10
Probeer je dit vanaf je lokale servertje te doen, of vanaf een internetserver?
Indien vanaf een internetserver: fix het ip


LMGTFY!
 Top
 
Geplaatst op 26-08-2011 13:10
#17  Bericht afdrukken
Avatar van gebruiker

Actief

Posts: 123
Joined: 03.05.09
het is op de same machine heb mijn local ip 192.168.1.14 en 127.0.0.1 al geprobeert.
 Top
 
Geplaatst op 26-08-2011 13:14
#18  Bericht afdrukken
Avatar van gebruiker

Actief

Posts: 123
Joined: 03.05.09
@stijn hij heeft verbinding

maar nu heb ik dit
Download broncode  Code
ÿÿÿÿprint map: mp_array num score ping guid name lastmsg address qport rate --- ----- ---- ---------- --------------- ------- --------------------- ------ -----




er is niemand in dus dat klopt maar de

ÿÿÿÿprint


en de layout is niet zoals het meot zijn, wat kan ik daar aan doeN?

ÿÿÿÿprint is nog niet zo erg
 Top
 
Geplaatst op 26-08-2011 13:16
#19  Bericht afdrukken
Avatar van gebruiker

Admin

Posts: 2065
Joined: 17.01.06
Die output lijkt te kloppen, net hetzelfde als je in de console zou krijgen.

Om die 'ÿÿÿÿprint' weg te hebben kun je gewoon een substring nemen vanaf positie 11.


Proud Coder & Founder of Modbase

i.imgur.com/X64ol.gif
 Top http://www.modbase.be
 
Geplaatst op 26-08-2011 13:18
#20  Bericht afdrukken
Avatar van gebruiker

Actief

Posts: 123
Joined: 03.05.09
ok erg bedankt, ik ben niet zo snel in php

erg bedankt allemaal om me te helpen.
 Top
Spring naar forum:

Gelijkaardige onderwerpen
Onderwerpen Forum Antwoorden Laatste bericht
c# Klein status programaatje Programmeren 3 16-05-2012 13:21
php: Update als naam als bestaat , anders insert Programmeren 9 22-03-2012 17:29
connecten met mysql database w/out php Programmeren 18 22-02-2012 14:43
PHP daemon Programmeren 8 09-02-2012 15:08
B3 status.xml zelfgemaakte statusviewer Programmeren 15 29-01-2012 20:35


Naar Boven

© 2006-2012 Modbase. Alle rechten voorbehouden. Disclaimer | Gedragscode

Custom coding by Stijn, Image fixing by Derix