Basteln eines Webinterface's, externe scripts ausführen
Re: Basteln eines Webinterface's, externe scripts ausführen
den namen des screens übergeben?
Re: Basteln eines Webinterface's, externe scripts ausführen
2853.pts-1.linux ist der name des screens :)
Re: Basteln eines Webinterface's, externe scripts ausführen
perfect ich hab eine andere lösung gefunden: ein perl script, siehe hier:
http://sourceforge.net/projects/kkrcon/
http://sourceforge.net/projects/kkrcon/
Re: Basteln eines Webinterface's, externe scripts ausführen
eine frage zu php:
der befehl zu passthru ist 100% richtig. Mein problem ist dass ich die ausgabe weiterverarbeiten will und NICHT ausgen möchte. Nun gibt er mit das immer aus, es sollte aber nur in der variabel gespeichert werden..
bitte schnell antworten :P danke!
Code: Select all
<?php
$text = passthru("sudo -u root ./kkrcon.pl -a localhost -p 1338 -t old 1234 status");
?>
bitte schnell antworten :P danke!
Re: Basteln eines Webinterface's, externe scripts ausführen
Du willst dir den Backtick-Operator und/oder proc_open und Konsorten ansehen. Zum Beispiel von hier an: http://www.php.net/manual/de/ref.exec.php
Re: Basteln eines Webinterface's, externe scripts ausführen
ähm sry, nein will ich glaub ich nicht^^ mein problem ist einfach dass ich dass passthru() in einer variable speichern will ohne es auszugeben... er macht immer eine ausgabe.
Re: Basteln eines Webinterface's, externe scripts ausführen
ach sry ich hab nicht gescheit gelesen, du hast recht wirsing, danke!!
Re: Basteln eines Webinterface's, externe scripts ausführen
print map: oasis num score ping name lastmsg address qport rate --- ----- ---- --------------- ------- --------------------- ----- -----
dies ist eine ausgabe, die ich in php zerlegen möchte um sie anschliesend an ein locales bash script weiterzugeben.
Ich will die "map" herausfinden, sprich dass was nach der zeichenfolge "map[leerzeichen]" steht bis zum nächsten leerzeichen. Wie stelle ich dass am besten an? ich hab mir überlegt mit strpos(); einfach festzustellen an welcher stelle "map" liegt, von dort aus 4 zeichen weitergehen und dann eben alle zeichen bis zum nächsten leerzeichen festzustellen und in eine variable zu speichern. Ich komm damit allerdings gar nicht klar. Wär cool wenn mir jemand weiterhelfen könnte. Danke
mfg dee
dies ist eine ausgabe, die ich in php zerlegen möchte um sie anschliesend an ein locales bash script weiterzugeben.
Ich will die "map" herausfinden, sprich dass was nach der zeichenfolge "map[leerzeichen]" steht bis zum nächsten leerzeichen. Wie stelle ich dass am besten an? ich hab mir überlegt mit strpos(); einfach festzustellen an welcher stelle "map" liegt, von dort aus 4 zeichen weitergehen und dann eben alle zeichen bis zum nächsten leerzeichen festzustellen und in eine variable zu speichern. Ich komm damit allerdings gar nicht klar. Wär cool wenn mir jemand weiterhelfen könnte. Danke
mfg dee
Re: Basteln eines Webinterface's, externe scripts ausführen
achso, meine idee bis jetzt:
ergiebt folgende ausgabe auf der seite:
Also er liest schon einmal nur ab "map:" soll aber NUR bis zu dem leerzeichen nach oasis lesen. Und ich kann auch $var = substr($text, $num); nicht so schreiben:
$var = substr($text, $num, 10);
weil die ausgaben nach map: immer verschieden sein kann.[/code]
Code: Select all
$text = `sudo -u root ./kkrcon.pl -a localhost -p 1338 -t old 12345 status`;
echo $text;
echo "<br><br>";
$map = "map";
$num = strpos($text,$map)+1;
echo $num;
echo "<br><br>";
$num = $num -1;
$var = substr($text, $num);
echo $var;
ergiebt folgende ausgabe auf der seite:
Code: Select all
print map: oasis num score ping name lastmsg address qport rate --- ----- ---- --------------- ------- --------------------- ----- -----
7
map: oasis num score ping name lastmsg address qport rate --- ----- ---- --------------- ------- --------------------- ----- -----
$var = substr($text, $num, 10);
weil die ausgaben nach map: immer verschieden sein kann.[/code]
-
Roger Wilco
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Basteln eines Webinterface's, externe scripts ausführen
http://de.php.net/preg_splitd3nation wrote:Ich will die "map" herausfinden, sprich dass was nach der zeichenfolge "map[leerzeichen]" steht bis zum nächsten leerzeichen. Wie stelle ich dass am besten an?
Re: Basteln eines Webinterface's, externe scripts ausführen
ich habs nun folgendermaßen gelöst:
ok nächste frage (sry ich komm heute gar nicht zurecht)
wie kann ich aus einer externen datei (z.b. test.txt) auslesen wie viele zeilen sie hat? mit count() irgendwie oder? plz help
thx, dee
Code: Select all
<?php
echo "<h1>1n1 Server Status:</h1>";
$text = `sudo -u root ./kkrcon.pl -a localhost -p 1338 -t old 12345 status`;
$map = "map";
echo "<br>";
$num = strpos($text,$map)+6;
echo "<br>";
$num = $num -1;
$var = substr($text, $num);
function strrrchr($haystack,$needle)
{
return substr($haystack,0,strpos($haystack,$needle)-1);
}
$map = strrrchr($var,"nu");
echo "Aktuelle map: $map";
echo "<br><br>";
if(file_exists("$map.jpg")) {
echo "<img src="$map.jpg">";
} else {
echo "<img src="no.jpg">";
}
?>
ok nächste frage (sry ich komm heute gar nicht zurecht)
wie kann ich aus einer externen datei (z.b. test.txt) auslesen wie viele zeilen sie hat? mit count() irgendwie oder? plz help
thx, dee
Re: Basteln eines Webinterface's, externe scripts ausführen
Code: Select all
man wcGruß Christian
BofH excuses: YOU HAVE AN I/O ERROR -> Incompetent Operator error
BofH excuses: YOU HAVE AN I/O ERROR -> Incompetent Operator error
-
Roger Wilco
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Basteln eines Webinterface's, externe scripts ausführen
Oder in PHP:
Code: Select all
count(file("/pfad/zur/datei"));Re: Basteln eines Webinterface's, externe scripts ausführen
ohja "wc" ist die perfecte lösung.. vielen dank an beide! ich bin gerade an dem teil des webinterfaces der erkennt welche map geladen ist, ein dazugehöriges pic anzeigt und auch die belegten slot und max. slot anzeigt usw. nur zur info :) ich versuch heute noch fertig zu werden, viel. presentiere ich nacher noch das ergebnis! danke
Re: Basteln eines Webinterface's, externe scripts ausführen
sooo, nun mal weiter im text. Für ein webinterface ist es wichtig den server status abzurufen, ob er läuft und dass man ihn neustarten kann haben wir ja schon erledigt ;)
nun hab ich was gebasteld und dokomentiert dass ich auch als open source zur verfügung stellen möchte: eine auf qstat basierende status abfrage von servern. die ersten zeilen des scripts (beschreibung):
Nun ladet euch dass teil einfach hier runter:
http://wserver2.ath.cx/status.tar
Wenn ihrs entpackt habt werdet ihr eine menge datei sehen. aufgerufen wird dass ganze über die status.php
Doch davor am besten die status.php editieren, und die ersten zeilen wie dort beschrieben anpassen. Das designen überlasse ich euch, ihr habt ja alle variabeln zur verfügung. Theoretisch kann man natürlich auch alle variabeln über hidden felder zu einer neuen seite weitergeben wenn man damit gar nicht zurecht kommt. Anschauen könnt ihr euch das ganze unter
http://wserver2.ath.cx/WI/et/status/status.php
wo jedoch nichts vom design her gemacht ist...
Wie unschwer zu erkennnen ist gibt es folgende variabeln:
# $player |gibt zahl der player aus, z.b. 10/20
# $map |gibt aktuelle map aus, z.b. goldrush
# $map_pic |gibt map_pics aus, muss "name_der_map.jpg" haben, wenn nicht vorhanden wird "no.jpg" angezeigt
# $server_name |gibt server name aus, z.b. "r0f judgement day"
# $ip_disp |gibt server ip aus, z.b. "213.239.210.98:27778"
die jeweils über echo $player; z.b. ausgegeben werden können oder eben über hidden felder an eine andere seite weitergeleitet wird. Momentan funktioniert es nur für ET server, da ich mit denen des meiste teste. Die player werde am ende der seite ausgegeben, aber auf der testseite (url oben) sind sie nicht includiert sondern mit folgendem java script per link aufrufbar:
Ich hoffe es bringt ein paar leuten was wenn nicht isses auch egal, ich brauch es ja selber fürs endgültige webinterface. Ich wollte es nur als open source zur vefügung stellen weil ich seh dass der thread hier gut besucht ist :) und viel. doch ein paar leute danach suchen. Ein praktisches beispiel der anwendung poste ich bald, da ich mit einem webmaster einer clan-page gesprochen habe der das script einfach einbauen wird.
Nun werde ich mich damit beschäftigen ein formular zu erstellen um per mausklick vom server zu kicken oder vielleicht sogar ins andere team zu moven. Man wird sehen. Feedback erwünscht :)
Mfg
dee
nun hab ich was gebasteld und dokomentiert dass ich auch als open source zur verfügung stellen möchte: eine auf qstat basierende status abfrage von servern. die ersten zeilen des scripts (beschreibung):
Code: Select all
#################################################
##### PHP Server Status Tool for ET Servers #####
# #
# (c) by www.fragland.org #
# #
# PHP Server Status Tool #
# #
# Feedback to josef@werbinek.net #
# #
################# - R0F - #######################
#################################################
# 1. Folgende Variabeln Anpassen:
$ip = "213.239.207.195:27771"; # IP des servers von dem der Status angezeigt werden soll
$server_art = "etpro"; # Art des servers: "etpro" oder "etmain"
$map_s_heigh = ""; # Gibt die _soll_ hoehe des map pics an
$map_s_width = ""; # Gibt die _soll_ breite des maps pics an
$map_var = ""; # Hier koennen zusaetzliche tag-erweiterungen fuer dass map pic angegeben werden
# wie z.b. align=right usw.
$map_link = ""; # Hier kann eine webseite angegeben werden auf die man gelangt wenn man auf dass
# map_pic klickt.
# 2. Zum ausgeben des status folgende Variabeln verwenden: (NICHT VERAENDERN!)
# $player |gibt zahl der player aus, z.b. 10/20
# $map |gibt aktuelle map aus, z.b. goldrush
# $map_pic |gibt map_pics aus, muss "name_der_map.jpg" haben, wenn nicht vorhanden wird "no.jpg" angezeigt
# $server_name |gibt server name aus, z.b. "r0f judgement day"
# $ip_disp |gibt server ip aus, z.b. "213.239.210.98:27778"
# 3. Zum ausgeben des status einfach ans ende dieses files die variabeln beliebig ausgeben z.b. (echo $player;)
# 4. Zum ausgeben der spieler namen die letze zeile am ende dieses files auskommentieren (# entfernen) (include(player.php);
Nun ladet euch dass teil einfach hier runter:
http://wserver2.ath.cx/status.tar
Wenn ihrs entpackt habt werdet ihr eine menge datei sehen. aufgerufen wird dass ganze über die status.php
Doch davor am besten die status.php editieren, und die ersten zeilen wie dort beschrieben anpassen. Das designen überlasse ich euch, ihr habt ja alle variabeln zur verfügung. Theoretisch kann man natürlich auch alle variabeln über hidden felder zu einer neuen seite weitergeben wenn man damit gar nicht zurecht kommt. Anschauen könnt ihr euch das ganze unter
http://wserver2.ath.cx/WI/et/status/status.php
wo jedoch nichts vom design her gemacht ist...
Wie unschwer zu erkennnen ist gibt es folgende variabeln:
# $player |gibt zahl der player aus, z.b. 10/20
# $map |gibt aktuelle map aus, z.b. goldrush
# $map_pic |gibt map_pics aus, muss "name_der_map.jpg" haben, wenn nicht vorhanden wird "no.jpg" angezeigt
# $server_name |gibt server name aus, z.b. "r0f judgement day"
# $ip_disp |gibt server ip aus, z.b. "213.239.210.98:27778"
die jeweils über echo $player; z.b. ausgegeben werden können oder eben über hidden felder an eine andere seite weitergeleitet wird. Momentan funktioniert es nur für ET server, da ich mit denen des meiste teste. Die player werde am ende der seite ausgegeben, aber auf der testseite (url oben) sind sie nicht includiert sondern mit folgendem java script per link aufrufbar:
Code: Select all
<script type="text/javascript">
function klick() {
open("./player.php", "FORMULAR", "toolbar=no, menubar=no, width=250, height=425")
}
</script>
<a href="javascript:klick()">Player</a>
Ich hoffe es bringt ein paar leuten was wenn nicht isses auch egal, ich brauch es ja selber fürs endgültige webinterface. Ich wollte es nur als open source zur vefügung stellen weil ich seh dass der thread hier gut besucht ist :) und viel. doch ein paar leute danach suchen. Ein praktisches beispiel der anwendung poste ich bald, da ich mit einem webmaster einer clan-page gesprochen habe der das script einfach einbauen wird.
Nun werde ich mich damit beschäftigen ein formular zu erstellen um per mausklick vom server zu kicken oder vielleicht sogar ins andere team zu moven. Man wird sehen. Feedback erwünscht :)
Mfg
dee
Re: Basteln eines Webinterface's, externe scripts ausführen
ach ja noch kurz was zum "mappic" dem eigentlich genialsten teil des scripts:
es wird ein pic angezeigt das für jede map anders sein kann. Ihr müsst dazu bloß das pic genauso nennen wie die map, wenn die map oasis heist muss auch dass bild oasis.jpg heissen. (auf .jpg achten!)
Auch wenn man eine map laufen hat wo kein bild gefunden wird (php sucht ob es das pic im SELBEN ordner gibt) wird ein pic angezeigt, und zwar "no.jpg" was auch im selben ordner ist.
mfg :)
es wird ein pic angezeigt das für jede map anders sein kann. Ihr müsst dazu bloß das pic genauso nennen wie die map, wenn die map oasis heist muss auch dass bild oasis.jpg heissen. (auf .jpg achten!)
Auch wenn man eine map laufen hat wo kein bild gefunden wird (php sucht ob es das pic im SELBEN ordner gibt) wird ein pic angezeigt, und zwar "no.jpg" was auch im selben ordner ist.
mfg :)
Re: Basteln eines Webinterface's, externe scripts ausführen
moin!
hm schade dass wenig bzw. kein feedback kommt, nächstes mal eben QT nicht mehr open source machen und beschreiben.
Naja egal..
So nun hab ich die hauptsächlichen sachen für dass webinterface schon gut wie fertig, hab aber nun ein problem: der kunde oder benutzer soll von seinem webinterface aus verschiedene config datein bearbeiten. Nun liegen aber theoretisch gesehen nicht alle dateien auf dem localen server wo des WI läuft, sondern aus welchen gründen auch immer auf einem anderen server. Um diese datein nun zu bearbeiten ist mir als erstes eingefallen die aufgabe (schreib in config X auf server Y) in eine sql tabelle zu schreiben und dann von jedem server per cronej. oder so abzufragen. Aber dass ganze soll realtime geschehen. Deshalb wollte ich eure meinung hören wie dass am besten zu erledigen ist. Ich dachte entweder ein php-ftp zugriff basteln oder irgendeine art ssh tunnel oder so, kann ja auch ein script sein, muss nicht zwingend php sein! Im grunde ist alles möglich, aber ich wollte auf keinen externen programme zurückgreifen, sondern etwas programmieren was unabhängig von externen tools ist. Hat jemand eine idee wie man des am besten lösen könnte? Würde mich freun wenn jeder seine meinung dazu abgibt.
Danke!
mfg
dee
hm schade dass wenig bzw. kein feedback kommt, nächstes mal eben QT nicht mehr open source machen und beschreiben.
Naja egal..
So nun hab ich die hauptsächlichen sachen für dass webinterface schon gut wie fertig, hab aber nun ein problem: der kunde oder benutzer soll von seinem webinterface aus verschiedene config datein bearbeiten. Nun liegen aber theoretisch gesehen nicht alle dateien auf dem localen server wo des WI läuft, sondern aus welchen gründen auch immer auf einem anderen server. Um diese datein nun zu bearbeiten ist mir als erstes eingefallen die aufgabe (schreib in config X auf server Y) in eine sql tabelle zu schreiben und dann von jedem server per cronej. oder so abzufragen. Aber dass ganze soll realtime geschehen. Deshalb wollte ich eure meinung hören wie dass am besten zu erledigen ist. Ich dachte entweder ein php-ftp zugriff basteln oder irgendeine art ssh tunnel oder so, kann ja auch ein script sein, muss nicht zwingend php sein! Im grunde ist alles möglich, aber ich wollte auf keinen externen programme zurückgreifen, sondern etwas programmieren was unabhängig von externen tools ist. Hat jemand eine idee wie man des am besten lösen könnte? Würde mich freun wenn jeder seine meinung dazu abgibt.
Danke!
mfg
dee
Re: Basteln eines Webinterface's, externe scripts ausführen
manchmal ist eben mal was anderes wichtiger als pc ;)
möglichkeiten, die ich sehe
1.) Partitionen der anderen Server, auf denen die Configs sind, mounten und in das System einbinden
2.) FTP Zugriff.
Datei vom FTP laden
editieren
Auf FTP schieben
möglichkeiten, die ich sehe
1.) Partitionen der anderen Server, auf denen die Configs sind, mounten und in das System einbinden
2.) FTP Zugriff.
Datei vom FTP laden
editieren
Auf FTP schieben
Re: Basteln eines Webinterface's, externe scripts ausführen
Gibts das auch als paket ?