Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Erstellten Server online registrieren (https://www.delphipraxis.net/92158-erstellten-server-online-registrieren.html)

.chicken 15. Mai 2007 13:34


Erstellten Server online registrieren
 
Also, ich hatte mir überlegt, wie ich bei meinen selbst erstellten Programmen, die übers Internet funktionieren eine ServerListe anzeigen lassen kann.
Dabei kam mir dann eben die Idee, den Server einfach online auf einer Homepage registrieren zu lassen, wenn er erstellt wird und wenn er wieder geschlossen wird ihn auch online wieder zu löschen.

Ist sowas realisierbar? Und wenn, dann wie?

arbu man 15. Mai 2007 13:36

Re: Erstellten Server online registrieren
 
Also dafür brauchst du eine serverseitige Anwendung. php bietet sich dafür an...

.chicken 15. Mai 2007 13:43

Re: Erstellten Server online registrieren
 
Also ich hab vor Uhrzeiten mal hp gelernt aber nun ziemlich alles vergessen...is sowas schwer zu realisieren oder geht das relativ einfach? Brauch ich dazu mysql?

mkinzler 15. Mai 2007 13:46

Re: Erstellten Server online registrieren
 
das dürfte supereasy sein, Wenn die Anzahl der daten gering ist kann man auch einfache Textdateien verwenden (flat files)

.chicken 15. Mai 2007 13:54

Re: Erstellten Server online registrieren
 
ok, dann such ich mal das internet durch ;-)

Torpedo 15. Mai 2007 14:01

Re: Erstellten Server online registrieren
 
Wie will man aber verhindern, dass jemand zum Spaß einfach so über den Browser neue Server einfügt?

.chicken 15. Mai 2007 14:05

Re: Erstellten Server online registrieren
 
Ja, das habe ich auch shcon überlegt, entweder mim passwort oder man hat halt pech ^^
Aber wüsste nich was jemand davon hätte ;-)

Ne aber was anderes, kann mir wer sagen wonach genau ich suchen soll oder mir n Link geben wo erklaert wird wie sowas geht?

Habe nach Flat File gesucht und da nix brauchbares gefunden. Evtl liegts an meinem Englisch ;-)

SirThornberry 15. Mai 2007 14:07

Re: Erstellten Server online registrieren
 
wenn du nach fopen suchst in der php-referenz solltest du früh oder später ein beispiel finden wie man textdateien liest und schreibt.
[Edit]Man findet sogar in der dp etwas wenn man nach fopen sucht :shock: [/Edit]

inherited 15. Mai 2007 14:17

Re: Erstellten Server online registrieren
 
Ich hab das mal mit Delphi und den Indys realisiert. Das ganze lief über TCP ab. Sobald ein Spiel registriert war, musste der Server alle 30 Sekunden ein "Heartbeat" senden, sonst wurde er aus der Liste gelöscht.

.chicken 15. Mai 2007 14:19

Re: Erstellten Server online registrieren
 
Kannste mir vielleicht ne kurze Erklärung liefern? Ich werd nich gaz schlau daraus, ob ich das nun durch php-Dateien lösen muss oder wie oder was :D

inherited 15. Mai 2007 14:21

Re: Erstellten Server online registrieren
 
Wenn du einen Webserver dafür missbrauchen willst, brauchst du php.
Wenn es auch ein normaler Rechner irgendwo tut, kannst du das mit einer Delphi-Anwendung machen.

.chicken 15. Mai 2007 14:26

Re: Erstellten Server online registrieren
 
Ja, das Problem ist ja, dass ich hinterher den Usern eine Liste von aktiven Servern bieten will. Da ich erstens eine dynamische IP habe und zweitens mein Rechner nicht 24/7 läuft, möchte ich ihnen die Möglichkeit bieten über einen Webserver die ServerListe zu empfangen.

Wie kann ich denn php in Delphi integrieren?

DGL-luke 15. Mai 2007 14:32

Re: Erstellten Server online registrieren
 
hallo, du solltest das so machen:

PHP-skript empfängt online-meldung vom server. schreibt zeit, name und ip in datei.
wenn jetzt jemand ein anderes php-skript auf deiner seite aufruft, liest es die datei aus, und zeigt alle server, deren letzter eintrag vor weniger als x sekunden war.

die server müssen sich dann natürlich periodisch - mindestens alle x sekunden - melden.

das php solltest du nicht in delphi integrieren. der server stellt einfach eine verbindung mit dem php-skript her und sendet seine statusinformation.

z.B. indem er einfach ein php-skript aufruft und ihm die daten übergibt:

"script.php?mode=update&server=servername&password =xyz"

Das geht zum bespiel mit der IdHTTP-Komponente.

.chicken 15. Mai 2007 14:37

Re: Erstellten Server online registrieren
 
Hm...ok danke erstmal an alle.
Die grobe Vorgehensweise habe ich nun verstanden, nur wie ichs genau umsetzen soll hab ich keine Ahnung, dafür sind meine phpKentnisse zu eingerostet...
Naja dann muss ihc ma google bemühen, und wenn wer von euch weiss wo ich mich speziell hierueber informieren kann -> bidde melden ;-)

gmc616 15. Mai 2007 14:42

Re: Erstellten Server online registrieren
 
Zitat:

Zitat von .chicken
Wie kann ich denn php in Delphi integrieren?

Meines Wissens garnicht, lass mich da aber gern belehren.

Was du brauchst:
1. einen Web-Server der permanent erreichbar ist. Wie sollen sonst deine User an die Serverliste kommen.
2. PHP-Unterstützung auf dem Webserver
3. www.php.net


Alles was du tun mußt, ist eigentlich nur ein PHP-Script auf deinem WebServer zu rufen, die $_SERVER['REMOTE_ADDR'] auswerten und in eine Datei schreiben. Evtl. noch ein paar Infos dazu, die du als Parameter an das PHP-Script übergeben kannst.

Deinen Useren bietest du auf dem WebServer ein weiters PHP-Script an, welches die ServerList-Datei auswertet und in eine HTML einbaut.

Da wars eigentlich schon.

//Edit: Zu langsam ...

.chicken 15. Mai 2007 20:31

Re: Erstellten Server online registrieren
 
Habe nun folgenden Code um etwas zur Datei hinzuzufügen, aber es funktioniert nicht so wie ich will, er fügt nur die Sekunden von $timestamp hinzu....

Was muss ich nu fuer tags benutzen? o.O
Code:
<?php
  $datei = fopen("ServerListe.txt", "r+");
  $timestamp = time();
  $dateiarray = file("ServerListe.txt");
  $ip = $_POST["ip"];
  $name = $_POST["name"];
  $isin = 0;
  for ($i = 0; i < count($dateiarray); $i++) {
    $buffer = explode(";", $dateiarray[$i]);
    if ($buffer == $name) {
      $dateiarray[$i] == $name + ";" + $ip + ";" +  $timestamp + ";";
      $isin = 1;
      }
    }
  rewind($datei);
  if ($isin == 0) {
    fwrite($datei, $dateiarray + "/n" + $name + ";" + $ip + ";" +  $timestamp + ";");
  } else {
    fwrite($datei, $dateiarray);
  } 
  fclose($datei);
?>
Also mein Problem liegt darin, zu überprüfen ob ein Server schon in der Liste ist und ihn dann zu überschreiben, ich glaueb ansonsten würde ich das wohl hinkriegen....

[edit=SirThornberry]Code-Tags gesetzt - Mfg, SirThornberry[/edit]

mkinzler 15. Mai 2007 20:40

Re: Erstellten Server online registrieren
 
Schau die mal strftime() an

.chicken 15. Mai 2007 20:43

Re: Erstellten Server online registrieren
 
Höh, mein Problem liegt doch nicht in der falschen Formatierung des Timestamp...!?

.chicken 16. Mai 2007 13:58

Re: Erstellten Server online registrieren
 
Kann keiner sonst mehr was dazu sagen? :lol:

<?php
$datei = fopen("ServerListe.txt", "a+");
$Name = $_GET["name"];
$Ip = $_GET["ip"];
$timestamp = time();
fwrite($datei, "$Name;$Ip;$timestamp\n");
fclose($datei);
?>

Also damit hab ichs nun hinbekommen ganz normal Eingaben zur Datei hinzuzufügen, aber ich hab nun keine Ahnung wie ich die anderen überschreiben soll!

SirThornberry 16. Mai 2007 16:23

Re: Erstellten Server online registrieren
 
könntest du bitte die code-tags verwenden :-D

.chicken 16. Mai 2007 23:22

Re: Erstellten Server online registrieren
 
ja aber welche denn fuer php? ^^

kann mir denn nich bitte wer helfen? :(

.chicken 17. Mai 2007 11:37

Re: Erstellten Server online registrieren
 
Es klappt einfach nicht, die Daten aus dem Array einem Text hinzuzufügen, damit hinterher nicht alles überschrieben wird!!!!

Edit: Nach laaaaaangem hin und her hats nun geklappt...
SQL-Code:
<?php
  $dateiarray = file("ServerListe.txt");
  $datei = fopen("ServerListe.txt", "w+");
  $name = $_GET["name"];
  $ip = $_GET["ip"];
  $timestamp = time();
  foreach ($dateiarray as $line) {
    $text = explode(';', $line);
    if ($text[0] != $name or $text[1] != $ip) {
      fwrite($datei, $line);
    }
  }
  fwrite($datei, $name.';'.$ip.';'.$timestamp."\n");
  fclose($datei);
?>
habs einfach ma mit den sql tags versucht...

DGL-luke 17. Mai 2007 15:50

Re: Erstellten Server online registrieren
 
Hallo,

am besten funktionieren wohl die [c ]-tags ;-)

Code:
  $dateiarray = file("ServerListe.txt");
  $datei = fopen("ServerListe.txt", "w+");
  $name = $_GET["name"];
  $ip = $_GET["ip"];
  $timestamp = time();
  foreach ($dateiarray as $line) {
    $text = explode(';', $line);
    if ($text[0] != $name or $text[1] != $ip) {
      fwrite($datei, $line);
    }
  }
  fwrite($datei, $name.';'.$ip.';'.$timestamp."\n");
  fclose($datei);

.chicken 17. Mai 2007 16:16

Re: Erstellten Server online registrieren
 
Merk ich mir fürs nächte mal ;-)
Danke ^^

Torpedo 17. Mai 2007 17:41

Re: Erstellten Server online registrieren
 
Die IP zu übergeben ist sinnlos, da man an die IP so oder so mit $_SERVER['REMOTE_ADDR'] rankommt. ;)
Es wäre auch besser, wenn man aus dem Namen alle ";" herausfiltert, damit man später beim Auslesen keine Probleme kriegt.
Zum Beispiel so:
Code:
$dateiarray = file("ServerListe.txt");
  $datei = fopen("ServerListe.txt", "w+");
  $name= str_replace(";", "", $_GET["name"]);
  $ip = $_SERVER['REMOTE_ADDR'];
  $timestamp = time();
  foreach ($dateiarray as $line) {
    $text = explode(';', $line);
    if ($text[0] != $name or $text[1] != $ip) {
      fwrite($datei, $line);
    }
  }
  fwrite($datei, $name.';'.$ip.';'.$timestamp."\n");
  fclose($datei);

.chicken 17. Mai 2007 18:10

Re: Erstellten Server online registrieren
 
Das stimmt natürlich...wusste ich auch eigentlich weil ich mir n Script geschrieben habe um die IP anzeigen zu lassen :wall:

Danke für den Hinweis ^^

Edit: Und das herausfiltern habe ich schon in Dephi erledigt ;-)

Torpedo 17. Mai 2007 19:10

Re: Erstellten Server online registrieren
 
Zitat:

Zitat von .chicken
Edit: Und das herausfiltern habe ich schon in Dephi erledigt ;-)

Und was, wenn jemand das Script selbst über den Browser aufruft? ;)

Real_Thunder 17. Mai 2007 19:50

Re: Erstellten Server online registrieren
 
Hier ein Tipp für PHP:
SelfPHP

Dise seite hat mir sehr geholfen wieder in PHP reinzukommen.

Mfg Real Thunder

.chicken 17. Mai 2007 21:59

Re: Erstellten Server online registrieren
 
Hmm...wenn ers ueber den Webbrowser aufruft, daaaaaaaannn.............is das bloed :P

Wird geändert :D

Edit: Danke übrigens für die Seite, die hat mich damals schon oft weitergebracht aber hatte sich irgendwie aus meinem Gedächtnis gestrichen :P
Dafür hats sie nun nen Platz in den Favoriten :) ;-)

DGL-luke 18. Mai 2007 07:08

Re: Erstellten Server online registrieren
 
Hmm... alles was auf selfphp steht, gibts auf php.net auch ;-)

php.net/funktionsname beamt einen auch sofort zur doku.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz