AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Konzeptfrage - Internet-Chat als Freeware, wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Konzeptfrage - Internet-Chat als Freeware, wie?

Ein Thema von hincapie · begonnen am 20. Feb 2008 · letzter Beitrag vom 19. Mär 2008
Antwort Antwort
Seite 4 von 4   « Erste     234   
Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#31

Re: Konzeptfrage - Internet-Chat als Freeware, wie?

  Alt 3. Mär 2008, 09:04
Zitat von hincapie:
Also, ich habe das mit CGI am Wochenende mal etwas getestet.
Offensichtlich lässt mich mein Hoster nicht so ohne weiteres Binärdateien auf dem Server ausführen.
Daher scheidet diese Variante für mich leider aus...
Schade. Aber wenigstens weißt du jetzt von der Möglichkeit. Hilfreich ist das allemal. =)

Zitat von hincapie:
Gibt es eine Möglichkeit, mit php eine Funktion auf dem Server einzubauen, mit der man z.b. regelmäßig überprüfen kann, ob ein bestimmter Zeitraum abgelaufen ist, ohne diese Funktion immer wieder manuell neu zu starten?
Ja, das nennt man einen Cronjob.
Dafür ist es wichtig, eine eigene Datei zu haben, die die gewünschten Funktionen ausführt.
Hosteurope bietet so etwas auch an: http://www.hosteurope.de/faq/index.php?cpid=2054.

Solltest du ein Webpaket haben, wo das nicht unterstützt wird, dann kannst du http://www.cronjob.de kostenlos nutzen.
  Mit Zitat antworten Zitat
Benutzerbild von hincapie
hincapie

Registriert seit: 24. Mär 2005
200 Beiträge
 
Delphi 5 Professional
 
#32

Re: Konzeptfrage - Internet-Chat als Freeware, wie?

  Alt 3. Mär 2008, 10:35
Zitat von Xong:
Solltest du ein Webpaket haben, wo das nicht unterstützt wird, dann kannst du http://www.cronjob.de kostenlos nutzen.
Nein, mein Webpaket unterstützt keine Cronjobs, also habe ich mich mal bei www.cronjob.de angemeldet.

So, nun möchte ich mit php alle Server aus der Datenbank löschen, die mehr als einen Tag eingetragen sind:
Code:
<?php
include("../cgi-bin/einlog.php");
include("funk.php");
$timestamp = time();
$connect=@mysql_connect($dbHost, $dbUser, $dbPass) or die("F");
$sql= sprintf("DELETE FROM Chat
        WHERE Login='%s'",
   mysql_real_escape_string($timestamp -1));
If ($res=send_sql($db,$sql)) {echo "OK";}
?>
Kann das so funktionieren?
  Mit Zitat antworten Zitat
Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#33

Re: Konzeptfrage - Internet-Chat als Freeware, wie?

  Alt 3. Mär 2008, 12:18
[quote="hincapie"]
Zitat von Xong:
So, nun möchte ich mit php alle Server aus der Datenbank löschen, die mehr als einen Tag eingetragen sind:
Wieso? Wäre es nicht besser, die Server zu löschen, die seit x Minuten inaktiv sind?

Zitat von hincapie:
Kann das so funktionieren?
Nein.
Du musst schon überprüfen, welcher Server älter als einen Tag ist.
Code:
<?php
include('../cgi-bin/einlog.php');
include('funk.php');
$connect=@mysql_connect($dbHost, $dbUser, $dbPass) or die('F');
If ($res=send_sql($db,'DELETE FROM Chat
        WHERE to_days(Login) < to_days(NOW())')) {echo 'OK';}
?>
Übrigens: Die Funktion timestamp() gibt dir immer einen Wert in Sekunden zurück.

LG,
Xong
  Mit Zitat antworten Zitat
Benutzerbild von hincapie
hincapie

Registriert seit: 24. Mär 2005
200 Beiträge
 
Delphi 5 Professional
 
#34

Re: Konzeptfrage - Internet-Chat als Freeware, wie?

  Alt 4. Mär 2008, 07:10
Zitat von Xong:
Wieso? Wäre es nicht besser, die Server zu löschen, die seit x Minuten inaktiv sind?
Mal sehen, war erst mal nur ein Anhaltspunkt, um zu sehen wie es funktioniert...
Zitat von Xong:
Übrigens: Die Funktion timestamp() gibt dir immer einen Wert in Sekunden zurück.
Man lernt halt nie aus..., ansonsten natürlich vielen Dank für Deine Hilfe!
Sollte ich noch Fragen habn, werde ich sie hier stellen...
  Mit Zitat antworten Zitat
Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#35

Re: Konzeptfrage - Internet-Chat als Freeware, wie?

  Alt 4. Mär 2008, 08:24
Zitat von hincapie:
Zitat von Xong:
Wieso? Wäre es nicht besser, die Server zu löschen, die seit x Minuten inaktiv sind?
Mal sehen, war erst mal nur ein Anhaltspunkt, um zu sehen wie es funktioniert...
Ich habe mir noch einmal Gedanken darüber gemacht. Am besten wäre, wenn du die Server alle 5-10 Minuten das Anmeldeskript aufrufen lässt. Ist der Server noch nicht eingetragen, so schreibt das Skript ihn in die Liste, ansonsten wird der betreffende Eintrage (wichtig ist hier ein Zeitstempel) geupdatet.

Mit dem Cronjob fragst du schließlich alle 10-15 Minuten ab, welche Einträge älter als eben diese 10-15 Minuten sind und löschst sie aus der Liste der aktiven Server.

Zusätzlich kann sich ein Server natürlich auch regulär abmelden.


Zitat von hincapie:
Man lernt halt nie aus..., ansonsten natürlich vielen Dank für Deine Hilfe!
Sollte ich noch Fragen habn, werde ich sie hier stellen...
Gern. =)
  Mit Zitat antworten Zitat
Benutzerbild von hincapie
hincapie

Registriert seit: 24. Mär 2005
200 Beiträge
 
Delphi 5 Professional
 
#36

Re: Konzeptfrage - Internet-Chat als Freeware, wie?

  Alt 12. Mär 2008, 12:33
@ Xong:
Hhhmm, Deine Vorschläge scheinen mir ziemlich schlüssig zu sein...

Im Moment habe ich in der Datenbank ein Login-Feld im Date-Format, demnach müsste ich das in ein DateTime umwandeln oder ein zusätzliches Time-Feld einfügen...

Was ist wohl besser?

Werde mir auch nochmal die Syntax für das UPDATE-Statement in MySQL zu Gemüte führen...
  Mit Zitat antworten Zitat
Benutzerbild von hincapie
hincapie

Registriert seit: 24. Mär 2005
200 Beiträge
 
Delphi 5 Professional
 
#37

Re: Konzeptfrage - Internet-Chat als Freeware, wie?

  Alt 19. Mär 2008, 15:29
Ok, ich konnte mich erst jetzt wieder mit dem Thema näher befassen...

Ich habe jetzt noch ein Feld 'LogTime' vom Typ TIME eingefügt, in diesem wird von den Servern die jeweilige Login-Zeit eingetragen.

Demnach müsste ein Script zum Löschen aller Server, die länger als 10 Minuten eingeloggt sind, wohl so aussehen?
Code:
<?php
include('../cgi-bin/einlog.php');
include('funk.php');
$connect=@mysql_connect($dbHost, $dbUser, $dbPass) or die('F');
If ($res=send_sql($db,'DELETE FROM Chat
        WHERE time_to_sec(LogTime) < time_to_sec(TIME()-600)')) {echo 'OK';} 
?>
Könnte man da nicht auch etwas mit TIMEDIFF machen?
Evtl. so:
Code:
...
If ($res=send_sql($db,'DELETE FROM Chat
        WHERE TIMEDIFF(LogTime, TIME()) < '00:10:00'')) {echo 'OK';} 
?>
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:30 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