hubisoft
Goto Top

Manuelle Server Status Abfrage.

Hallo liebe Administrator Community.
Ich habe mich Heute Regestriert da ich Hilfe brauche in sachen PhP.
Möchte etwas mehr in PhP machen und mir wurde dieses Forum Empfohlen.
In einigen Foren konnte mir nicht grade geholfen werden.
Deswegen Frage ich nun euch.
Also zu meiner Frage.
Ich möchte eine Status Abfrage machen die jedoch von Hand gecheckt werden muss.
Heisst also man gibt IP + Port ein und man bekommt einen Status.
Die Automatische Abfrage ist ja nicht sehr Schwer.
Habe mal Test weise ein Script gemacht das auch Funktioniert. (Fast)
Jedoch möchte ich nicht das man Port und IP einzeln eingibt sondern alles in 1. Feld.
Zu dem möchte ich noch eine Funktion hinzufügen die das ganze etwas schöner macht.
Und zwar mit AJAX bzw Javascript.
Wenn man auf den Check Button klickt möchte ich das eine .gif Grafik für 3-5 Sekunden angezeigt wird.
Danach wird der Status angezeigt.
Nur habe ich mit AJAX und Javascript noch nie was gemacht.
Eher was mit HTML und CSS.
Noch ein mängel gibt es bei meinem Script.
Ich habe es mit iFrame eingebunden was nicht schön aussieht.
Ich weiss man kanns mit CSS wegmachen aber warum schwer machen wenns auch leichter geht ;)
Ich füge einfach mal ein Bild hinzu.
9a08fbeb1c7a6d507d16cc15287ab6cb
PS: Das Bild habe ich Schwarz gemacht damit niemand Werbung oder sonst was bekommt face-smile

Grüße Goldencreeper

Content-ID: 213771

Url: https://administrator.de/contentid/213771

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

110135
110135 09.08.2013 um 08:45:25 Uhr
Goto Top
Hallo und willkommen,

für den ersten Punkt (alles im 1. Feld eingeben) kann ich dir folgende Funktion an die Hand geben:
http://www.php.net/manual/de/function.split.php

angenommen das Feld heißt $server und du trennst den Servernamen / IP und den Port durch einen Doppelpunkt. (z.B. example.com:80)

dann kannst du folgendermaßen damit arbeiten:

<?php
$server = $_POST['server'];  

$server = split(":",$server);  

$serverName = $server;
$serverPort = $server[1];

?>

In der Variable $serverName hättest du dann den Servernamen, in der Variable $serverPort den Port.

Um das nun mit Ajax zu machen bzw. mit jQuery hilft dir folgende Docu:
http://api.jquery.com/jQuery.post/

Relativ weit unten ist eine Demo und auch der dazugehörige Quellcode. Damit solltest du in der Lage sein, etwas zu basteln.

Gruß,
Florian.
colinardo
Lösung colinardo 09.08.2013, aktualisiert am 18.01.2014 um 19:55:38 Uhr
Goto Top
Hallo Goldencreeper, Willkommen im Forum.
hier ein Beispiel:

HTML-Datei
(Hinweis: Der "Check" Button erscheint wenn die IP im richtigen Format eingegeben wurde)
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>  
<script type="text/javascript">  
function checkIPSyntax(){
  var regex = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,5}$/;
  if (regex.test($('#txtIP').val())){  
   	$('#txtIP').css('background-color', 'green');   
   	$('#txtIP').css('color', 'white');   
	$('#btnCheck').show();  
  }else{
  	$('#txtIP').css('background-color', 'red');   
   	$('#txtIP').css('color', 'white');   
	$('#btnCheck').hide();  
  }
}

function checkServer(){
	$('#meldung').html('<img src="http://de.d3rawr.com/images/waiting.gif" width=32 height=32 />');  
	var request = $.post("check.php",{ip : $('#txtIP').val()});  
	request.done(function(data){
		$('#meldung').html(data);	  
	});
	
}
</script>
</head>

<body>
<div>Bitte IP und Port in folgendem Format eingeben (10.10.20.1:80)</div>
<input type="text" id="txtIP" onKeyUp="checkIPSyntax();"/>  
<input type="button" id="btnCheck" onClick="checkServer();" style="display:none" value="Check">  
<div id="meldung"></div>  
</body>
</html>

und das passende Beispiel PHP-Script (zum testen check.php nennen) das den Server "überprüft" und eine Rückmeldung schickt.(Als Demo gibt es nur eine feste Meldung aus, die Prüf-Funktion musst du selber implementieren)

PHP-Script
<?php
if (isset($_POST['ip']) && $_POST['ip'] != ""){  
	sleep(2);
	$arIP = split(":",$_POST["ip"]);  
	echo '<p style="color:green">IP: ' . $arIP . ' mit Port: ' . $arIP[1] . ' is UP</p>';  
} else {
	echo "No valid IP specified";  
}
?>

Grüße Uwe
HubiSoft
HubiSoft 09.08.2013 um 15:06:09 Uhr
Goto Top
Danke für eure schnelle Hilfe.
Das Script funktioniert Super.
Aber ich hötte noch ne Frage.
Wenn ich den Port 25565 (Minecraft Standart Port) eingebe wird das Feld Rot angezeigt.
Kann man die Ports irgentwie Freischalten bzw allgemein irgentwo einstellen?
Würde mich über eure Hilfe Freuen ;)

Grüße Goldencreeper
colinardo
Lösung colinardo 09.08.2013, aktualisiert am 18.01.2014 um 19:55:42 Uhr
Goto Top
Sorry da war noch ein Fehler im RegEx(Zeile 6), ist korrigiert.
HubiSoft
HubiSoft 09.08.2013 um 15:44:37 Uhr
Goto Top
Danke das du es Korrigiert hast aber irgentwie gehts immer noch nicht.
9e637ec852ac5f6f36c7706b7c283e24
Habe die IP Zensiert.

Grüße Goldencreeper.
colinardo
Lösung colinardo 09.08.2013, aktualisiert am 18.01.2014 um 19:55:44 Uhr
Goto Top
korrigiere Zeile 6 im HTML-File so:
var regex = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,5}$/; 
HubiSoft
HubiSoft 09.08.2013 um 17:49:02 Uhr
Goto Top
Ok vielen Dank für eure Hilfe.
Das Script funktioniert zwar aber habe noch ne Frage.
Ich würde den Check button gerne die ganze zeit eingeblendet haben.
Nun frage ich wo ist der Code in der Php datei (Schätze mal das es in der php datei drin ist. Html kann ja nur darstellen)

Würde mich Freuen wenn mir jemand die letzte Frage beantworten kann ;)
HubiSoft
HubiSoft 09.08.2013 aktualisiert um 18:12:50 Uhr
Goto Top
Zitat von @HubiSoft:
Ok vielen Dank für eure Hilfe.
Das Script funktioniert zwar aber habe noch ne Frage.
Ich würde den Check button gerne die ganze zeit eingeblendet haben.
Würde mich Freuen wenn mir jemand die letzte Frage beantworten kann ;)

Hötte dazu noch ne Frage.
Kann ich das auch einfach für Teamspeak nutzen? Teamspeak benutzt ja udp.

Danke im Voraus.

Liebe Grüße Goldencreeper
colinardo
Lösung colinardo 09.08.2013, aktualisiert am 18.01.2014 um 19:55:47 Uhr
Goto Top
Zitat von @HubiSoft:
Ok vielen Dank für eure Hilfe.
Das Script funktioniert zwar aber habe noch ne Frage.
Ich würde den Check button gerne die ganze zeit eingeblendet haben.

Zeile 32 in der HTML-Datei so ändern:
<input type="button" id="btnCheck" onClick="checkServer();" value="Check">   
und Zeile 10 und Zeile 14 löschen

Nun frage ich wo ist der Code in der Php datei (Schätze mal das es in der php datei drin ist. Html kann ja nur darstellen)
Quatsch .. mit Sauce

Grüße Uwe
HubiSoft
HubiSoft 09.08.2013 um 22:48:04 Uhr
Goto Top
Okay vielen Dank für deine Hilfe habe noch ein paar sachen verändert ;)
Jetz funktioniert es so wie ich es mir vorgestellt habe.
Danke.
Echt nettes Forum :D
colinardo
colinardo 10.08.2013 um 08:04:16 Uhr
Goto Top
Bitte den Beitrag noch als gelöst markieren. Danke.
HubiSoft
HubiSoft 10.08.2013 um 13:17:55 Uhr
Goto Top
Ah stimmt da war noch was habe immer vergessen was das war ^^
Danke

Grüße Goldencreeper