Andreas: Konzept für Auktionsmaschine

Hallo!

ich überlege zur Zeit, wie sich eine Auktionsmaschine mit PHP/MySQL am besten realisieren läßt.
Das soll so funktionieren, dass die Bieter sich gegenseitig unterbieten(mit Angeboten).

Das Bieten stelle ich mir so vor:
Die zu versteigernden Artikel werden in eine Tabelle "Artikel" geschrieben, mit ID.
Dann könne sich die Bieter in eine Tabelle "Bieter" eintragen, auch mit ID. Wenn die Versteigerung startet, wird in die Tabelle "Auktionen" der Endzeitpunkt und die ArtikelID sowie Startpreis geschrieben.

Das wird dann angezeigt als aktuelle Auktion, die Bieter können bieten, indem sie einen geringeren Preis eingeben, und das Formular abschicken, dadurch wird der Datensatz mit der entsprechenden ID in der Tabelle "Auktionen" aktualisiert, d.h. neuer Preis und neuer Bieter.
Das heißt beim nächsten öffnen steht der neue Preis da.

So hatte ich mir das vorgestellt, ist dagegen was einzuwenden?

Probleme bereitet mir z.B., wenn ich hinterher eine Liste aller Gebote haben will, müßte ich dann bei jedem neuen Gebot nicht die Tabelle "Auktionen" aktualisieren, sondern einfach einen neuen Datensatz einfügen, und dann immer nach dem mit dem geringsten Preis mit gleicher ID suchen?
Oder erstellt man für sowas besser temporäre Tabellen? Kann mir nicht vorstellen, dass ebay das so macht, das wäre doch etwas viel für eine Tabelle!

Außerem würde die Auktion nur recht kurz laufen, sagen wir mal wenige Stunden oder gar 1 Stunde. Deshalb suche ich noch nach einer Möglichkeit, wir man die aktuellen Stände beser zeigen kann, ich könnte je immer per meta-variable das Dokument selbst aktualisieren, Aber das ist auch nicht das ware, da die Seite ja dann immer aufgebaut wird, und wenn man gerde was eingegeben hat..... Gibt es da wohl eine Möglichkeit mit einem Header vom Server aus, der gesendet wird sobald sich was ändert?

Vergleichbar das Problem mit einem echten Countdown, d.h. so richtig 10 - 9 - 8 - 7...... runterzählend, sekundengenau. Das ist ja erstmal nicht möglich mit html oder Javascript, oder? Problem dabei auch, wenn sollte die Zeit auch sekundengenau mit der Serverzeit übereinstimmen. Gibt es da wohl irgendwelche Tricks, das zu umgehen?

Bin für jeden Tipp sehr dankbar! Ist noch nicht ganz Konkret, es geht mir erstmal ums Theoretische. Die Umsetzung ist dann kein Problem mehr!

Viele Grüsse
 Andreas

  1. ich überlege zur Zeit, wie sich eine Auktionsmaschine mit PHP/MySQL am besten realisieren läßt.

    Das Bieten stelle ich mir so vor:
    Die zu versteigernden Artikel werden in eine Tabelle "Artikel" geschrieben, mit ID.
    Dann könne sich die Bieter in eine Tabelle "Bieter" eintragen, auch mit ID. Wenn die Versteigerung startet, wird in die Tabelle "Auktionen" der Endzeitpunkt und die ArtikelID sowie Startpreis geschrieben.

    Das wird dann angezeigt als aktuelle Auktion, die Bieter können bieten, indem sie einen geringeren Preis eingeben, und das Formular abschicken, dadurch wird der Datensatz mit der entsprechenden ID in der Tabelle "Auktionen" aktualisiert, d.h. neuer Preis und neuer Bieter.
    Das heißt beim nächsten öffnen steht der neue Preis da.

    So hatte ich mir das vorgestellt, ist dagegen was einzuwenden?

    Prinzipiell nicht, du mußt nur aufpassen, daß du die Passage "Ist eingereichtes Gebot besser als aktuelles Bestgebot? Wenn ja, Bestgebot und Bieter entsprechend ändern." ununterbrechbar in einem Rutsch machst und nicht etwa erstmal SELECT bestesGebot, dann im Skript prüfen, ob das gut ist und falls ja, dann erst die Daten mit UPDATE in die Datenbank zurückzuschreiben. Zwischen dem SELECT und dem UPDATE könnte nämlich noch ein zweites Gebot reinkommen, das noch besser ist. Und vor allen Dingen könnte es auch -vollständig- bearbeitet werden.

    Probleme bereitet mir z.B., wenn ich hinterher eine Liste aller Gebote haben will, müßte ich dann bei jedem neuen Gebot nicht die Tabelle "Auktionen" aktualisieren, sondern einfach einen neuen Datensatz einfügen, und dann immer nach dem mit dem geringsten Preis mit gleicher ID suchen?

    Also wenn du die Gebote eh sammeln willst, dann solltest du gleich drei Tabellen machen: eine für die Bieterdaten, eine für die Artikeldaten und eine, in der sämtliche Gebote gesammelt werden (à la "bieterid,artikelid,zeit,gebot").
    Damit hast du dann auch das Problem von oben beseitigt. Um das aktuelle Bestgebot rauszufinden, brauchst du nur aus der Gebotetabelle eine Zeile nach entsprechender Sortierung auszulesen.

    Deshalb suche ich noch nach einer Möglichkeit, wir man die aktuellen Stände beser zeigen kann, ich könnte je immer per meta-variable das Dokument selbst aktualisieren, Aber das ist auch nicht das ware, da die Seite ja dann immer aufgebaut wird, und wenn man gerde was eingegeben hat..... Gibt es da wohl eine Möglichkeit mit einem Header vom Server aus, der gesendet wird sobald sich was ändert?

    Nein, das geht schon prinzipiell nicht. Eine HTTP-Verbindung sieht so aus, das der Browser eine Verbindung zum Server herstellt, einen Befehl an den Server übermittelt und der Server darauf (hoffentlich:) antwortet. Abschließend wird  die Verbindung wieder gekappt.

    Es ist nicht vorgesehen, daß der Server von sich aus Daten an den Browser sendet. Und das ist auch schon technisch nicht möglich, weil ja keine dauerhafte Verbindung zwischen Server und Browser besteht.

    Es gab mal was ganz tolles namens PUSH. Das war die Sensation des Jahrhunderts, ist aber, wie alle anderen Sensationen des Jahrhunderts, wieder eingegangen, bevor es überhaupt richtig eingesetzt wurde.
    Mit dieser Technik kenne ich mich nicht aus, frag' mal Google (irgendwas mit "push netscape http server" oder so).

    Die einzige praktikable Lösung, die ich vorschlagen würde, wäre ein Java-Applet. Damit hast du die Möglichkeit, eine dauerhafte Verbindung zur Servermaschine aufzubauen - allerdings bräuchtest du dafür auch auf der Gegenseite ein Serverprogramm. Webserver eignen sich für dauerhafte Verbindungen aus eben genannten Gründen eher weniger.

    Ich glaube allerdings nicht, daß sich der Aufwand lohnen würde. Mach es wie bei eBay, mit Maximalgeboten (bzw. Minimalgeboten) und automatischen Schritten. Ich finde das System sehr gut, man bietet nie zu viel, braucht aber andererseits auch nicht ständig nachzuschauen, ob man schon überboten wurde.

    Problem dabei auch, wenn sollte die Zeit auch sekundengenau mit der Serverzeit übereinstimmen. Gibt es da wohl irgendwelche Tricks, das zu umgehen?

    Du kannst höchstens vom Server die aktuelle Zeit in einen Javascript-Bereich der gesendeten Seite schreiben und dann hoffen, daß die Seite gaaaanz schnell beim Browser ist, wo diese Javascript-Uhr (über timeout) dann mit eben der reingeschriebenen Zeit als Basis gestartet wird. Dürfte gut funktionieren, aber einen Quarzwecker würde ich danach nicht stellen :)

    Gruß,
      soenk.e

    1. Hi Sönke,

      du mußt nur aufpassen, daß du die Passage "Ist eingereichtes Gebot
      besser als aktuelles Bestgebot? Wenn ja, Bestgebot und Bieter
      entsprechend ändern." ununterbrechbar in einem Rutsch machst

      Yep.

      und nicht etwa erstmal SELECT bestesGebot, dann im Skript prüfen,
      ob das gut ist und falls ja, dann erst die Daten mit UPDATE in die
      Datenbank zurückzuschreiben.

      Das würde ich aus anderen Gründen nicht so machen (Performance), nicht aber wegen der erforderlichen Unteilbarkeit.

      Zwischen dem SELECT und dem UPDATE könnte nämlich noch ein zweites
      Gebot reinkommen, das noch besser ist. Und vor allen Dingen könnte
      es auch -vollständig- bearbeitet werden.

      Eben. Aber das verhinderst Du nicht dadurch, daß Du andere SQL-Statements verwendest (auch ein einzelnes SQL-Statement ist nicht per Definition unteilbar - der Server kann jederzeit Kontextwechsel haben oder mehrere CPUs besitzen oder was auch immer), sondern dadurch, daß Du eine transaktionssichere Datenbank nimmst. Innerhalb einer Transaktion dürfen dann beliebig viele Anweisungen ausgeführt werden, bis sie mit COMMIT abgeschlossen oder mit ROLLBACK verworfen wird.

      Deshalb suche ich noch nach einer Möglichkeit, wir man die aktuellen
      Stände beser zeigen kann, ich könnte je immer per meta-variable das
      Dokument selbst aktualisieren,
      Nein, das geht schon prinzipiell nicht.

      Server Push? (Natürlich würde ich eine solche Anzeige-Seite nicht mit einem Eingabeformular versehen.)

      Eine HTTP-Verbindung sieht so aus, das der Browser eine Verbindung zum Server herstellt, einen Befehl an den Server übermittelt und der Server darauf (hoffentlich:) antwortet. Abschließend wird die Verbindung wieder gekappt.

      Aber da es kein definiertes Ende dieser Verbindung gibt (HTTP-Pakete haben keine Klammerstruktur, unvollständige HTML-Dokumente werden vom Browser inkrementell angezeigt), kann sich der Server aussuchen, wie lange er weitere Ausgaben nachliefert. Damit könnte er die Anzeige durchaus unendlich oft erneuern. Die Ausgabe sollte dann möglichst etwas bewirken, das den vorherigen Inhalt der Anzeige überschreiben kann - nur unten anhängen kann's ja wohl nicht sein.
      Die ursprünglich genannte Idee mit META REFRESH (mit einem Timer im Minuten-Bereich) finde ich in diesem speziellen Fall nicht so verkehrt. (Ich habe selbst eine Anwendung, welche so arbeitet: Per HTTP-Request startet der Anwender eine Verarbeitung auf dem Server; als Antwort erhält er einen Frameset, der im unteren Frame eine alle 10 Sekunden selbst-refreshende Quasi-Statuszeile enthält und nach dem Ende der Verarbeitung im oberen Frame eine Liste von Links auf die erzeugten Dateien.)

      Es ist nicht vorgesehen, daß der Server von sich aus Daten an den
      Browser sendet. Und das ist auch schon technisch nicht möglich,
      weil ja keine dauerhafte Verbindung zwischen Server und Browser besteht.

      Ich finde HTTP als Protokoll für 'Standleitungen' auch nicht ästhetisch, aber dann gleich 'nicht möglich' zu schreiben, das kann ich auch wieder nicht unterstützen. Zumal es in diesem Falle ja nicht darum geht, daß der Server 'von sich aus' etwas tut, sondern diese Aktion würde ursprünglich ja vom Client aus angestoßen - es ist lediglich die Frage, wie lange sie andauert.

      Webserver eignen sich für dauerhafte Verbindungen aus eben genannten Gründen eher weniger.

      Mit dieser Formulierung kann ich mich anfreunden. ;-)

      man bietet nie zu viel, braucht aber andererseits auch nicht ständig
      nachzuschauen, ob man schon überboten wurde.

      Wenn der Server einen überbotenen Teilnehmer von dieser Tatsache informieren will, dann gibt es dafür ja noch andere Protokolle (z. B. Mail).

      Viele Grüße
            Michael

      P.S.: Das Hauptproblem bei der genannten Anwendung sehe ich gar nicht auf technischer Seite, sondern darin, zu verhindern, daß 'Spaßvögel' durch eingestreute Gebote den gesamten Betrieb unterlaufen. Um dies zu verhindern, müßte also irgend eine Maßnahme her, einen Störenfried belangen zu können (Authentifizierung etc.). Ich benutze eBay nicht, aber ich glaube, dort muß man sich erst mal irgendwie anmelden und ein Konto einrichten?

      1. Hallo Ihr beiden!
        Danke für Eure Erklärungen und Verbesserungsvorschläge!

        du mußt nur aufpassen, daß du die Passage "Ist eingereichtes Gebot
        besser als aktuelles Bestgebot? Wenn ja, Bestgebot und Bieter
        entsprechend ändern." ununterbrechbar in einem Rutsch machst
        und nicht etwa erstmal SELECT bestesGebot, dann im Skript prüfen,
        ob das gut ist und falls ja, dann erst die Daten mit UPDATE in die
        Datenbank zurückzuschreiben.

        Ja, wie meinst Du das denn? Wie soll ich denn sonst prüfen, ob es das beste Gebot ist? Ich hab ja anscheinend das Problem, dass ich die Seite nicht wirklich aktuell halten kann, jedenfalls ist die Zeitspanne in der 2 Abfragen nacheinander ausgeführt werden wohl _deutlich_ geringer, als wenn ich die Seite alle paar Sekunden aktualisiere, oder? Denn so ist ja nicht wirklich sicher gestellt, dass es sich um das beste Gebot handelt!

        Das würde ich aus anderen Gründen nicht so machen (Performance), nicht aber wegen der erforderlichen Unteilbarkeit.

        Wie denn sonst???

        Wie _ich_ das jetzt sehe, habe ich nur die Möglichkeit eine extra Tabelle für Gebote einzurichten. Also nichts mit update, einfach insert!  Da ein gleiches älteres oder besseres Gebot ja nicht überschrieben wird, kann ich danach ja noch abfragen, ob es das beste Gebot ist, und entsprechende Rückmeldung geben. Auf der Seite wird dann immer das beste, oder bei 2 gleichen das ältere angezeigt!

        Wenn der Server einen überbotenen Teilnehmer von dieser Tatsache informieren will, dann gibt es dafür ja noch andere Protokolle (z. B. Mail).

        Ja, die Idee hatte ich gerade auch. Nur hätte ich gerne, dass das über diese Seite läuft. Evtl wäre auch sowas wie eine PM interessant, einfach noch eine Tabelle "Massages", mit User_ID, Zeitpunkt und Inhalt. Sobald ein Bieter überboten wurde, wird diesem halt eine entsprechende Nachricht in die Tabelle geschrieben dann könnte ich z.B. bei jedem refresh der Datei überprüfen, ob da was neues vorliegt und ggfs irgendwo anzeigen.

        Nur was ich eigentlich suchte, war sowas wie ICQ, da öffnet sich ja automatisch in Echtzeit ein Fenster, wenn man eine neue Nachricht erhält, und ich dachte die benutzen auch http? Und anstatt dieses Fenster zu öffnen, dachte ich daran, man könnte einfach eine Nachricht in den Browser schreiben.

        Und noch was zu der Uhr, da die Versteigerungen wie gesagt sehr kurz sein sollen, sollen da Sekunden angezeigt werden. Nur wie? Man kann ja mit allen Sprachen außer Java nur eine statische Seite erzeugen(ihr wißt was ich meine), die entweder kpl. oder in einem Frame aktualisiert werden müßte, oder?
        Oder geht das doch irgendwie mit Javascript? Oder sonst, Java kann ich leider überhaupt nicht, ist sowas da kompliziert?

        P.S.: Das Hauptproblem bei der genannten Anwendung sehe ich gar nicht auf technischer Seite, sondern darin, zu verhindern, daß 'Spaßvögel' durch eingestreute Gebote den gesamten Betrieb unterlaufen. Um dies zu verhindern, müßte also irgend eine Maßnahme her, einen Störenfried belangen zu können (Authentifizierung etc.). Ich benutze eBay nicht, aber ich glaube, dort muß man sich erst mal irgendwie anmelden und ein Konto einrichten?

        Ja genau, man muß sich anmelden, geht sogar nicht mit anonymer email-Adresse wie web.de:-) da brauchst Du für die Anmeldung sogar eine Kreditkarten-Nummer!
        Bei meiner Anwendung handelt es sich um eine Lösung für eine Firma, mit wohl weißlich ausgesuchten Bietern, die sich alle anmelden, und vor der Auktion ausgewählt werden können!

        Also Danke nochmal für Eure Tipps, haben mir schon sehr geholfen!

        Grüsse
          Andreas

        1. Ja genau, man muß sich anmelden, geht sogar nicht mit anonymer email-Adresse wie web.de:-) da brauchst Du für die Anmeldung sogar eine Kreditkarten-Nummer!

          Was ich reichlich sinnlos finde. Web.de prüft die Adreßdaten der Mitglieder, man muß seinen Account aktivieren, nachdem man Papierpost erhalten hat. GMX macht das nicht.

          Ich konnte mir aber eine beliebige Mailadresse unter meiner Domain erzeugen und mich damit dann anmelden. Toll, da ist noch weniger geprüft. Schließlich könnte ich irgendein anonymer Maildienst sein. ;)

          Diese Anmeldekontrolle ist nicht ausgereift.

          - Sven Rautenberg

          1. Hi Sven!

            Aber bei web.de konnte man sich jedenfalls auch einfach anmelden, wenn man auf die ganzen anderen Features wie Faxen, SMS(was inzwischen 30 Pf pro SMS kostet!!!) verzichtet. Nur die wurden so freigeschaltet!(war vor kurzem jedenfalls noch so!)
            Aber sobald man eine für ebay unbekannte Domain als Namen hat, geht alles wieder, und ebay kann definitiv nicht alle "schwarzen Schafe" kennen! Aber fürs erste werden bestimmt 99% der Bieter daher i.O. sein! Außerdem bekommt ja jeder Trottel ne passende Kreditkartennummer, wenn er mal richtig sucht - 100%-ige Sicherheit kann es nicht geben!!
            Aber da bei meiner Auktion die Firma definitiv sagen kann, "du darfst, du nicht..." und das vor jeder Auktion auch machen wird, mal schaun wie man das hinterher am besten macht, deshalb besteht diese Problematik _nicht_!
            Meine einzigen Probleme sind noch, die optimale und aktuellste Benachrichtigung(wenn überboten) zu finden, möglichst über den Browser, einen Sekundengenauen Countdown anzuzeigen und den aktuellen Stand möglichst aktuell anzuzeigen.
            Wenn ich einen kleinen Frame jede Sekunde reloade, ist das doch auch Mist!

            Grüsse
              Andreas

            1. Meine einzigen Probleme sind noch, die optimale und aktuellste Benachrichtigung(wenn überboten) zu finden, möglichst über den Browser,

              An Benachrichtigungen stehen dir nur vier Möglichkeiten zur Verfügung:

              1. Auktionsseite neu laden. Von einer Automatik würde ich abraten, stell dir vor, jemand möchte nur einen Überblick über die Auktion, lädt die Seite und legt dann auf. Nach ein paar Sekunden sieht er dann statt der Auktionsseite etwas in der Richtung "Seite nicht gefunden" oder "DFÜ-Verbindung unterbrochen"..

              2. Mail

              3. Auktion von HTML/HTTP abkoppeln und über z.B. ein Javaapplet einen eigenen Server ansprechen. Damit hättest du eine brauchbare Verbindung, bei der auch der Server den Client benachrichtigen kann.

              4. ICQ. Da es eine ganze Reihe Messenger-Clones gibt, muß wohl auch das Protokoll offenliegen. Mit PHP sollte sich sowas simulieren lassen.

              Aber wie bereits gesagt, das automatische Bietsystem von eBay spart bei dem Bieter eine Menge Stress. Und damit würde sich auch auf deiner Seite der Zwang erübrigen, ständig über den aktuellen Stand informieren zu müssen.

              einen Sekundengenauen Countdown anzuzeigen und den aktuellen Stand möglichst aktuell anzuzeigen.

              Den Countdown kannst du über DOM erzeugen, schau mal unter <file:///C:/http/selfhtml/javascript/objekte/node.htm#node_value>. Eine Uhr ist also kein Problem, Übernahme der Serverzeit wie vorher schon beschrieben.

              Gruß,
                soenk.e

              1. Hi soenk.e!

                1. Auktionsseite neu laden. Von einer Automatik würde ich abraten, stell dir vor, jemand möchte nur einen Überblick über die Auktion, lädt die Seite und legt dann auf. Nach ein paar Sekunden sieht er dann statt der Auktionsseite etwas in der Richtung "Seite nicht gefunden" oder "DFÜ-Verbindung unterbrochen"..

                Ja, aber ich könnte ja auch vorher den user wählen lassen, wie oft aktualisiert wird, , wenn jemand das aktuell haben will, dann halt alle paar Sekunden, oder von mir aus einen Wert eingeben, der dann einfach als Refresh-Wert eingetragen wird!

                1. Mail

                Aber das könnt ich ja nicht irgendwie einbinden, geht nur über einen externen Client, und der kann auch nur alle paar Minuten prüfen, oder? Und gerade solche Sachen, oder Browser oder was auch immer sollen _nicht_ vorgeschrieben werden, höchtesn wenn sich so der Nutzen deutlich verbessern ließe!

                1. Auktion von HTML/HTTP abkoppeln und über z.B. ein Javaapplet einen eigenen Server ansprechen. Damit hättest du eine brauchbare Verbindung, bei der auch der Server den Client benachrichtigen kann.

                Ich kann kein Java, außerdem habe ich keien entspechenden Server zur Verfügung.

                1. ICQ. Da es eine ganze Reihe Messenger-Clones gibt, muß wohl auch das Protokoll offenliegen. Mit PHP sollte sich sowas simulieren lassen.

                Aber wie soll man denn eine Benachrichtigung implementieren? Das Problem bleibt dasselbe, die Seite die der Browser bekommt ist nunmal statisch, und kann höchstens bach vorher definiierter zeit aktualisiert werden...
                Oder meinst Du einen ICQ Client nehmen, und von dem php-Script aus ansprechen?
                Ich habe mal ein bisschen gesucht, bin aber nicht wirklich weiter gekommen, das einzige war, dass es eine ICQ Version gibt, die mit Java läuft, jedenfalls habe ich das so verstanden http://lite.icq.com/icqlite/help-starting/0,,,00.html#system
                Ich weiß zur Zeit gar nicht, wie ich wohl aus PHP so eine Massage abschicken könnte. Vielleicht sollte ich mal einen Thread eröffnen und explizit danach fragen?(oder lieber ich:-)?

                Aber wie bereits gesagt, das automatische Bietsystem von eBay spart bei dem Bieter eine Menge Stress. Und damit würde sich auch auf deiner Seite der Zwang erübrigen, ständig über den aktuellen Stand informieren zu müssen.

                Ja, das werde ich vielleich auch benutzen, aber eigentlich nicht, denn da die Auktion so kurz ist, und die Leute in Echtzeit reagieren sollen.

                Den Countdown kannst du über DOM erzeugen, schau mal unter <file:///C:/http/selfhtml/javascript/objekte/node.htm#node_value>. Eine Uhr ist also kein Problem, Übernahme der Serverzeit wie vorher schon beschrieben.

                Also mit NODE verstehe ich nicht wirklich(und hat auch hohe Anforderungen an die Browser, was soll das bringen?). Ich kann doch lieber über php die Server-Zeit vorgeben. Hab da ein nettes Countdown-Script gefunden, aber leider werden die Zahlen in Formularfeldern angezeigt, das müßte doch auch als einfacher Text gehen, oder? Leider bin ich mit Javascript nicht sehr bewandert, habe das bis jetzt kaum gebraucht. Wenn Du mal einen Blick drauf werfen willst:
                http://www.ferienhaeuser-holland.de/temp/test.htm

                Grüsse
                  Andreas

                1. Hallo nochmal!
                  Also das mit der Uhr hat sich erledigt, hab doch tatsächlich in Selfhtml was wunderbare gefunden ;-)

                  http://selfhtml.teamone.de/dhtml/beispiele/datumuhr.htm

                  Das muß ich nur noch ein wenig ummodeln, halt über php den Anfangszeitpunkt angeben, und umdrehen wür einen Countdown, wobei ich glaub ich zusätzlich diese schöne Uhr einbaue!

                  Wirklich super da für beide Browser ab 4.0er Version.
                  Nur kurz noch, wenn ich so eine Stunde von einem Wert ausgehend runterzähle, wie genau ist das dann noch?

                  Ich hab mir das so überlegt, dass ich erst den Anfangszeitpunkt per php mit übergebe, dann die Differenz zur Systemzeit ausrechne, und dann immer von der Systemzeit + Differenz ausgehe, sollte doch so am besten funktionieren, oder?

                  Vielleicht habt Ihr je noch Ideen bzgl. der Implementierung von ICQ, siehe vorheriges Posting!

                  Grüsse
                   Andreas

                  1. Also das mit der Uhr hat sich erledigt, hab doch tatsächlich in Selfhtml was wunderbare gefunden ;-)

                    http://selfhtml.teamone.de/dhtml/beispiele/datumuhr.htm

                    Suchet, und ihr werdet finden :)

                    Nur kurz noch, wenn ich so eine Stunde von einem Wert ausgehend runterzähle, wie genau ist das dann noch?

                    Ich hab mir das so überlegt, dass ich erst den Anfangszeitpunkt per php mit übergebe, dann die Differenz zur Systemzeit ausrechne, und dann immer von der Systemzeit + Differenz ausgehe, sollte doch so am besten funktionieren, oder?

                    Kann man machen, aber ich glaube nicht, daß das nötig ist. Du hast bei dieser Art der Zeitmessung zwei Ungenauigkeiten:

                    a) Die Dauer, die die Seite zur Übertragung braucht, also vom Zeitpunkt, wo der Server die Startzeit in die Datei schreibt bis zu dem Zeitpunkt, wo der Browser anfängt, das Skript laufen zu lassen.

                    b) Ungenauigkeiten in der Systemzeit selber.

                    Gegenüber a) ist b) vernachlässigbar klein. a) dürfte sich im Zeitraum von ein oder zwei Sekunden bewegen. Ich glaube nicht, daß das von Beland ist.

                    1. ICQ. Da es eine ganze Reihe Messenger-Clones gibt, muß wohl auch das Protokoll offenliegen. Mit PHP sollte sich sowas simulieren lassen.

                    Oder meinst Du einen ICQ Client nehmen, und von dem php-Script aus ansprechen?

                    Genau. Aber da du nichtmal Mail als Gegeben akzeptieren möchtest, fällt ein externer ICQ-Client flach (den Java-Client konnte ich mir momentan nicht anschauen).

                    Ich weiß zur Zeit gar nicht, wie ich wohl aus PHP so eine Massage abschicken könnte. Vielleicht sollte ich mal einen Thread eröffnen und explizit danach fragen?(oder lieber ich:-)?

                    Siehe http://www.google.de/search?q=icq+protokoll. Alle nötigen Netzwerkfunktionen findest du in der PHP-Anleitung. Dazu brauchst du dann nur noch eine Art Datenbank (oder eine einfache Datei), in der alle über Gebotänderungen zu benachrichtigenden Leute verzeichnet sind. Sobald ein neues Gebot reinkommt, schickt die Bestätigungsseite für dieses Gebot auch eine ICQ-Nachricht.

                    Aber vielleicht ist ein einfaches Neuladen der Seite besser :)

                    Gruß,
                      soenk.e

                    1. Hi Soenke!

                      Also soll ich das jetzt so machen oder nicht mit der Systemzeit???
                      1. Kann ich nicht nur einmal von der aktuellen Zeit ausgehen, wenn es Aussetzer oder sowas gibt, stimmt das alles nicht mehr.
                      2. Kann ich nicht von der Systemzeit ausgehen, denn die kann durchaus 5 Minuten und mehr variieren, und bei einer Auktion die eine Stunde dauert kann man das wohl vergessen, gerade am Ende kommt es auf genaues Timing an! Wenn das jetzt 1-2 Sekunden abweicht, OK, aber mehr nicht!
                      Oder hast Du eine besser Idee als meine Variante mit der PHP-Vorgabezeit und der Differenz?

                      Zum ICQ-Protokoll - nach Protokoll hatte ich noch nicht gesucht, naja, da finde ich auf jeden Fall genug!

                      Aber auf den ersten Blick - ich glaub nicht dass sich der Aufwand dafür lohnt.
                      Per mail, das bringt ja im Prinzip auch nichts, da wie gesagt der Client auch alle paar Minuten nur prüft! Die beste Variante wird ein kleiner Frame sein, der sich alle paar Sekunden aktualisiert! und am besten wie mit den PM schon angedacht, irgendwie über die Datenbank.

                      Jedenfalls nochmal vielen Dank für deine Hilfe! Hat mir viel gebracht! Mit dem Countdown bin ich zwar noch nicht fertig, aber ich weiß ja, dass es gehen _muß_! Leider bin ich kein Javascript Experte(vielleicht werde ich gerade dank SELFHTML zu einem...:)
                      Wenn ich irgendwann nicht mehr weiter komme, frage ich hier nochmal nach!

                      Viele Grüsse
                        Andreas