KD-one: Gästebuchscript überarbeitet.

Hi ihr alle,

Ich habe nun mal mein Gästebuchscript überarbeitet, um die lästigen 'Notices' endlich wegzubekommen.
Ist mir scheinbar auch gelungen, allerdings würde ich mich freuen, wenn ein paar von euch Cracks drüberschauen könnten, um mir vielleicht die eine oder andere syntaktische Ungereimtheit aufzuzeigen, da ich noch nicht allzu fit bin in Sachen PHP.
Das ursprüngliche Script stammte nicht von mir und war ziemlich fehlerbehaftet, abgesehen davon, dass es, wenn die Fehlermeldungen abgeschaltet waren, funktioniert hat.

Ach ja, hier die Url zum Script: http://faq.united-web.at/guestbook/gaestebuch.phps

Gruß

Kurt

--
Nein, ich beantworte keine Anfragen per e-mail.
ss:( zu:) ls:[ fo:) de:] va:| ch:| sh:( n4:° rl:( br:? js:| ie:% fl:( mo:?
"Mut ist eine Tugend, doch Angst beweist Vernunft, Bewusstsein und Phantasie. Die Kunst ist es abzuwaegen."  (Moriartes, gr. Philosoph, 314-244 v. Chr.)
http://elektro-dunzinger.at
http://shop.elektro-dunzinger.at
  1. grmpf ...

    Ach ja, hier die Url zum Script: http://faq.united-web.at/guestbook/gaestebuch.phps

    Nö, das ist nicht das Script selbst, sondern es ist das Ergebnis, wenns bereits auf dem Server herumrennt. Verwandle es mal bitte in eine downloadbare oder anschaubare Textdatei, damit man sieht, was man kritisieren soll.

    Grüße aus Berlin

    Christoph S.

    1. Hallo Christoph!

      Ach ja, hier die Url zum Script: http://faq.united-web.at/guestbook/gaestebuch.phps
      Nö, das ist nicht das Script selbst, sondern es ist das Ergebnis, wenns bereits auf dem Server herumrennt. Verwandle es mal bitte in eine downloadbare oder anschaubare Textdatei, damit man sieht, was man kritisieren soll.

      Ähm, Du hast dir die verlinkte Seite aber schon angeschaut?
      Denn, ich wüßte nicht, was an einer Textdatei anders sein sollte ... (phps-Dateien sind ja meist so schön bunt, aber nichtmal das ists in diesem Fall, ich kann mir also nicht vorstellen, was Dich an der verlinkten Datei stören könnte).

      MfG
      Götz

      --
      Losung für Donnerstag, 18. März 2004
      Ich rief zu dem Herrn in meiner Angst, und er antwortete mir. (Jona 2,3)
      Jesus sprach zu Jairus: Fürchte dich nicht, glaube nur! (Markus 5,36)
      (http://www.losungen.de/heute.php3)
    2. Hi Christoph,

      Nö, das ist nicht das Script selbst, sondern es ist das Ergebnis, wenns bereits auf dem Server herumrennt. Verwandle es mal bitte in eine downloadbare oder anschaubare Textdatei, damit man sieht, was man kritisieren soll.

      Öhm ja, das _ist_ eine anschaubare Textdatei...
      *.phps sagt ja imho aus, dass die Datei nicht geparst, sondern text/plain ausgeliefert wird, oder ist das bei dir nicht der Fall?

      Gruß

      Kurt

      --
      Nein, ich beantworte keine Anfragen per e-mail.
      ss:( zu:) ls:[ fo:) de:] va:| ch:| sh:( n4:° rl:( br:? js:| ie:% fl:( mo:?
      "Keine Kunst ist es, alt zu werden, es ist eine Kunst, es zu ertragen."  (Johann Wolfgang von Goethe; dt. Dichter, Jurist u. Staatsminister; 1749-1832)
      http://elektro-dunzinger.at
      http://shop.elektro-dunzinger.at
      1. hi,

        Öhm ja, das _ist_ eine anschaubare Textdatei...
        *.phps sagt ja imho aus, dass die Datei nicht geparst, sondern text/plain ausgeliefert wird, oder ist das bei dir nicht der Fall?

        doch, das ist der fall.

        allerdings zeigt der blöde IE, der sich um mime types einen dreck schert, auch innerhalb einer solchen seite die formularelemente immer noch als HTML dar - man sieht also eine seite, die aus einem mix aus inut-buttons und php-code besteht - wobei letzterer auch nicht mehr anständig formatiert ist, sondern aller whitespace zu deinem blank zusammengedampft wird (wie es in _html_ halt vorgesehen ist).

        also, entweder vernünftigen browser benutzen, oder im IE den _quelltext_ dieser "seite" ansehen, dann sieht's auch wie ein ordnetliches PHP-script aus ;-)

        gruss,
        wahsaga

        1. Moin moin,

          [...] man sieht also eine seite, die aus einem mix aus inut-buttons und php-code besteht - wobei letzterer auch nicht mehr anständig formatiert ist, sondern aller whitespace zu deinem blank zusammengedampft wird (wie es in _html_ halt vorgesehen ist).

          genau dieses Verhalten zeigen mein Opera 7.20 und IE5 auch.

          Als Workaround könnte man doch das ganze Script mit <pre></pre> darstellen und die spitzen Klammern durch < und > ersetzen.
          Dann könnte man (im Browser) den angezeigten Bereich markieren und in die Zwischenablage kopieren.
          Aus den < und > sollten afaik dann wieder < und > werden.

          Gruß
          Patrick

          1. Hi Patrick,

            genau dieses Verhalten zeigen mein Opera 7.20 und IE5 auch.

            Opera auch? Naja, hätte mich auch gewundert, wenn Christoph mit dem IE unterwegs wäre. ;-)

            Als Workaround könnte man doch das ganze Script mit <pre></pre> darstellen und die spitzen Klammern durch < und > ersetzen.
            Dann könnte man (im Browser) den angezeigten Bereich markieren und in die Zwischenablage kopieren.
            Aus den < und > sollten afaik dann wieder < und > werden.

            Nuja, da ist es aber einfacher, das Ganze als *.txt abzuspeichern, was ich auch gemacht habe.
            http://faq.united-web.at/guestbook/gaestebuch.txt

            Gruß

            Kurt

            --
            Nein, ich beantworte keine Anfragen per e-mail.
            ss:( zu:) ls:[ fo:) de:] va:| ch:| sh:( n4:° rl:( br:? js:| ie:% fl:( mo:?
            "Schoene Tage - nicht weinen, dass sie vergangen, sondern laecheln, dass sie gewesen."  (Rabindranath Tagore; ind. Philosoph, Dichter u. Maler; 1861-1941)
            http://elektro-dunzinger.at
            http://shop.elektro-dunzinger.at
            1. Moin moin,

              Nuja, da ist es aber einfacher, das Ganze als *.txt abzuspeichern, was ich auch gemacht habe.

              argl, du hast ja sooo Recht. Vielleicht war mir das zu einfach :-))

              Gruß
              Patrick

          2. hi,

            genau dieses Verhalten zeigen mein Opera 7.20 und IE5 auch.

            echt?
            dann stimmt wohl auf dem server irgendwas nicht, denn normalerweise sollten seiten mit der endung .phps als textdateien ausgeliefert werden.

            obwohl, http://www.schroepl.net/cgi-bin/http_trace.pl?url=http%3A%2F%2Ffaq.united-web.at%2Fguestbook%2Fgaestebuch.phps&method=HEAD&version=HTTP%2F1.0 sagt mir, dass die ressource als text/plain ausgeliefert wird ... sollte also alles i.O. sein.

            gruss,
            wahsaga

        2. Hi wahsaga,

          allerdings zeigt der blöde IE, der sich um mime types einen dreck schert, auch innerhalb einer solchen seite die formularelemente immer noch als HTML dar - man sieht also eine seite, die aus einem mix aus inut-buttons und php-code besteht - wobei letzterer auch nicht mehr anständig formatiert ist, sondern aller whitespace zu deinem blank zusammengedampft wird (wie es in _html_ halt vorgesehen ist).

          also, entweder vernünftigen browser benutzen, oder im IE den _quelltext_ dieser "seite" ansehen, dann sieht's auch wie ein ordnetliches PHP-script aus ;-)

          Uups, Sch****, das wusste ich nicht. Also hier nochmal, für IE-Nutzer: http://faq.united-web.at/guestbook/gaestebuch.txt
          Gruß

          Kurt

          --
          Nein, ich beantworte keine Anfragen per e-mail.
          ss:( zu:) ls:[ fo:) de:] va:| ch:| sh:( n4:° rl:( br:? js:| ie:% fl:( mo:?
          "Staunen ist der erste Grund der Philosphie"  (Aristoteles; gr. Philosoph; 384-322 v. Chr.)
          http://elektro-dunzinger.at
          http://shop.elektro-dunzinger.at
          1. hallo ;-)

            also, entweder vernünftigen browser benutzen, oder im IE den _quelltext_ dieser "seite" ansehen, dann sieht's auch wie ein ordnetliches PHP-script aus ;-)
            Uups, Sch****, das wusste ich nicht

            Haha, Unwissen schützt vor Strafe nicht ;-)
            wahsaga hat völlig recht. Ich gebe zu, daß ich mich ganz doof gestellt und genau das geantwortet habe, was ein unbedarfter IE-Benutzer antworten müßte.

            Also hier nochmal, für IE-Nutzer: http://faq.united-web.at/guestbook/gaestebuch.txt

            Das hilft nix. Dem IE ist es wurscht, ob eine plain-text-Datei "txt" ode "phps" oder "self" heißt. Wenn da irgendwo HTML-tags drinstehen, macht er eine HTML-Ansicht draus und stellt bei <input ...> eben einen grau unterlegten Klick-button dar.

            Nichts für ungut. Ich hab dich nen bißchen aufs Glatteis geführt, weil ich ahnte, daß du solche Reaktionen noch nicht kennst  -  und wahsaga hat mir nen bissel die Show gestohlen und mir vermasselt, daß ich rechtzeitig "April, April" rufen und alles aufklären konnte, grmpf ... :-(

            Leider ist das aber (wie so oft) gar nicht die Diskussion, die du haben wolltest, und ich bin mir nicht sicher, ob dir der restliche Thread zu deinem PHP-Problem bereits genügend Aufschlüsse und Hilfestellungen geliefert hat. Also frag bitte weiter zm Thema, wenn noch irgendwas nicht geklärt ist, und ich werde solche hinterlistigen Anmerkungen in diesem Thread hier sein lassen.

            Grüße aus Berlin

            Christoph S.

            1. Hi Christoph,

              also, entweder vernünftigen browser benutzen, oder im IE den _quelltext_ dieser "seite" ansehen, dann sieht's auch wie ein ordnetliches PHP-script aus ;-)
              Uups, Sch****, das wusste ich nicht

              Haha, Unwissen schützt vor Strafe nicht ;-)
              wahsaga hat völlig recht. Ich gebe zu, daß ich mich ganz doof gestellt und genau das geantwortet habe, was ein unbedarfter IE-Benutzer antworten müßte.

              Dachte mir sowas. Wäre schon ungewöhnlich, wenn du mit dem IE surfen würdest. ;-)

              Also hier nochmal, für IE-Nutzer: http://faq.united-web.at/guestbook/gaestebuch.txt

              Das hilft nix. Dem IE ist es wurscht, ob eine plain-text-Datei "txt" ode "phps" oder "self" heißt. Wenn da irgendwo HTML-tags drinstehen, macht er eine HTML-Ansicht draus und stellt bei <input ...> eben einen grau unterlegten Klick-button dar.

              Ja, hab ich auch schon gemerkt. Der Browser ist ja noch kaputter, als ich je geglaubt habe.

              Nichts für ungut. Ich hab dich nen bißchen aufs Glatteis geführt, weil ich ahnte, daß du solche Reaktionen noch nicht kennst  -  und wahsaga hat mir nen bissel die Show gestohlen und mir vermasselt, daß ich rechtzeitig "April, April" rufen und alles aufklären konnte, grmpf ... :-(

              Naja, stimmt so nicht ganz. Natürlich kenne ich solche Reaktionen, hab ich ab und an auch selbst schon gesetzt, aber das fehlende Bewusstsein in Bezug auf die Darstellungsproblematik hat verhindert, dass ich dahintergestiegen bin, worauf du abzielst. ;-)

              Leider ist das aber (wie so oft) gar nicht die Diskussion, die du haben wolltest, und ich bin mir nicht sicher, ob dir der restliche Thread zu deinem PHP-Problem bereits genügend Aufschlüsse und Hilfestellungen geliefert hat. Also frag bitte weiter zm Thema, wenn noch irgendwas nicht geklärt ist, und ich werde solche hinterlistigen Anmerkungen in diesem Thread hier sein lassen.

              Nun ja, ich denke, ich werde das Script einfach nur noch zu Übungszwecken optimieren und dann wegschmeissen, um ein völlig neues zu schreiben.
              Oder aber ich schaffe es im Laufe der Zeit, das Script dorthin zu trimmen, wo ich es haben möchte. ;-)
              Irgendwo möchte ich eine Funktion einbauen, dass das Script das einlesen nach einer bestimmten Anzahl Postings abbricht und eine neue Seite beginnt. Dazu sollte ich aber in des Textfile Marker einbauen, um zählen zu können...
              Naja, noch viel Arbeit für jemanden, der noch in der PHP-Krabbelstube  ist. ;-)

              Gruß

              Kurt

              --
              Nein, ich beantworte keine Anfragen per e-mail.
              ss:( zu:) ls:[ fo:) de:] va:| ch:| sh:( n4:° rl:( br:? js:| ie:% fl:( mo:?
              "Was noch zu leisten ist, das bedenke, was du schon geleistet hast, das vergiss."  (Marie von Ebner-Eschenbach; oest. Schriftstellerin; 1830-1916)
              http://elektro-dunzinger.at
              http://shop.elektro-dunzinger.at
  2. hi,

    Ist mir scheinbar auch gelungen, allerdings würde ich mich freuen, wenn ein paar von euch Cracks drüberschauen könnten, um mir vielleicht die eine oder andere syntaktische Ungereimtheit aufzuzeigen, da ich noch nicht allzu fit bin in Sachen PHP.

    ohne mich als crack bezeichnen zu wollen, ein paar kleine anmerkungen von mir:

    • zu oberst hast du das formular stehen, ausserhalb des php-bereiches, als reinen HTML-code.
      dann eröffnest du den php-bereich wieder, setzt display_errors und error_reporting - und gibst dann einen weiteren HTML-abschnitt per echo aus. dieser enthält nicht eine einzige php-variable, also warum überhaupt ausgabe mit echo? das würde ich umdrehen, also die ausgabe noch oben in den html-bereich mit reinpacken, und ini_set/error_reporting danach aufrufen. ist aber eher eine strukturelle angelegenheit, vermutlich sogar "ansichtssache".

    • if ((isset($_POST['name']) && $_POST['name'] == "") || (isset($_POST['nachricht']) && $_POST['nachricht'] == ""))

    das lässt sich eigentlich gleich mit einer anweisung erschlagen, nämlich empty(). diese liefert false, wenn die als argument übergebene variable gar nicht existent, false oder leer ist.
    btw, warum prüfst du überhaupt diesen beiden felder, nur um zu schauen, ob du die bisherigen einträge ausgeben solltest?
    ich würde dabei einfach nur abfragen, ob der name des submit-buttons _nicht_ übermittelt wurde.

    • for ($i=0; $i<2; $i++) {
      sleep(1);
      flush();
      }
      was bezweckt das?

    • ähnlicher fall wie oben, beim abprüfen, ob das formular abgesendet wurde:
      isset($_POST['send_status']) && $_POST['send_status'] == "ok"
      $_POST['send_status'] wird nur übermittelt, wenn auf den button geklickt wurde. ob dabei jetzt der wert "ok" übermittelt wurde, wäre _mir persönlich_ an dieser stelle vollkommen wurscht.
      klar _könnte_ jemand das formular manipuliert und statt "ok" den wert "kuckuck" übermittelt haben - aber welche auswirkungen sollte dies auf mein script haben, so lange $_POST['send_status'] überhaupt existiert?

    -  $filesize = filesize("guestbook/speicher.txt");
     $file = fopen("guestbook/speicher.txt","r");
     $buffer = fread($file,$filesize);
     echo "$buffer";
     fclose($file);
    dieser teil steht _fast_ gleich sowohl im if- als auch im else-zweig drin, ist also grösstenteils redundant. lediglich das echo "$buffer"; fehlt im else-zweig.
    warum packst du also öffnen der datei und einlesen in $buffer nicht _vor_ die if-abfrage, und nur noch das echo $buffer in den if-zweig?

    • $heute = getdate();
       $month = $heute['month'];
       $mday = $heute['mday'];
       $year = $heute['year'];
       $datum = "$mday. $month $year";
      verwendung von date() mit entsprechender formatierung des datums würde ich hier vorziehen.

    -  if (!empty($_POST['url'])) {
      if(substr($url, 0, 7) == "http://") {
       $homepage = "<a href="$url">$url</a>";
      } else {
       $homepage = "<a href="http://$url">http://$url</a>";
    das mache ich immer leicht anders:
    zuerst ersetze ich mit str_replace "http://" durch nichts - _wenn_ es drin stand, ist es jetzt weg, wenn's nicht drin stand, ist der string so wie vorher. danach brauche ich nur noch _ein_ echo ohne jegliche abfragen, bei dem "http://" automatisch davorgesetzt wird.

    • $text = stripslashes($text);
      das sollte nicht einfach auf verdacht gemacht werden, sondern nur dann, wenn formulareingaben auch mit slashes versehen werden. wenn dies - auf anderem webspace, oder nach einem update der php-version nämlich mal nicht mehr der fall ist, werden "normale" \ ebenfalls rausgekegelt - aus der eingabe 3/4 wird 34.
      deshalb besser vorher mit get_magic_quotes_gpc() überprüfen, ob diese option überhaupt aktiviert ist.

    • und unten $_POST['view_guestbook'] schon wieder das einlesen der datei in $buffer - wie gesagt, redundant, pack's ganz nach vorne.

    • was ein wenig unangenehm auffällt, ist die fehlende fehlerbehandlung bei den dateioperationen. wenn das öffnen oder schreiben mal schief geht, wie reagierst du darauf? wenn du es gar nicht tust, werden dem nutzer dann wieder die unschönen fehlermeldungen von PHP präsentiert.

    gruss,
    wahsaga

    1. Hi wahsaga,
      Öhm ja, wie gesagt, das Script stammt nicht von mir, ich habe zur Zeit nur versucht, die Notices wegzubringen.

      • zu oberst hast du das formular stehen, ausserhalb des php-bereiches, als reinen HTML-code.
        dann eröffnest du den php-bereich wieder, setzt display_errors und error_reporting - und gibst dann einen weiteren HTML-abschnitt per echo aus. dieser enthält nicht eine einzige php-variable, also warum überhaupt ausgabe mit echo? das würde ich umdrehen, also die ausgabe noch oben in den html-bereich mit reinpacken, und ini_set/error_reporting danach aufrufen. ist aber eher eine strukturelle angelegenheit, vermutlich sogar "ansichtssache".

      Nuja, standardmässig setze ich ja Error-reporting auf E_NONE. Das ist jetzt nur zum debuggen so gemacht.

      • if ((isset($_POST['name']) && $_POST['name'] == "") || (isset($_POST['nachricht']) && $_POST['nachricht'] == ""))

      das lässt sich eigentlich gleich mit einer anweisung erschlagen, nämlich empty(). diese liefert false, wenn die als argument übergebene variable gar nicht existent, false oder leer ist.

      Uups, das wusste ich nicht. Also genügt hier
      if (empty($_POST['name'] || $_POST['nachricht')

      btw, warum prüfst du überhaupt diesen beiden felder, nur um zu schauen, ob du die bisherigen einträge ausgeben solltest?
      ich würde dabei einfach nur abfragen, ob der name des submit-buttons _nicht_ übermittelt wurde.

      Nein, diese beiden Felder sind Pflichtfelder, bei nichtausfüllen wird  nachfolgende Anweisung ausgeführt.

      • for ($i=0; $i<2; $i++) {
        sleep(1);
        flush();
        }
        was bezweckt das?

      Dieser Teil stammt nicht von mir, aber imho sollte damit $buffer eingelesen und angezeigt werden. Im ursprünglichen Gästebuch wurden ja die bestehenden Einträge sofort angezeigt und sollten wohl mit diesen Zeilen bei einem Fehlposting wieder eingelesen und angezeigt werden.
      Dieser Teil wird wahrscheinlich in weiterer Folge durch eine Fehlermeldung ersetzt werden.

      • ähnlicher fall wie oben, beim abprüfen, ob das formular abgesendet wurde:
        isset($_POST['send_status']) && $_POST['send_status'] == "ok"
        $_POST['send_status'] wird nur übermittelt, wenn auf den button geklickt wurde. ob dabei jetzt der wert "ok" übermittelt wurde, wäre _mir persönlich_ an dieser stelle vollkommen wurscht.
        klar _könnte_ jemand das formular manipuliert und statt "ok" den wert "kuckuck" übermittelt haben - aber welche auswirkungen sollte dies auf mein script haben, so lange $_POST['send_status'] überhaupt existiert?

      Ja, ist eine Überlegung, die nicht von der Hand zu weisen ist.

      -  $filesize = filesize("guestbook/speicher.txt");
      $file = fopen("guestbook/speicher.txt","r");
      $buffer = fread($file,$filesize);
      echo "$buffer";
      fclose($file);
      dieser teil steht _fast_ gleich sowohl im if- als auch im else-zweig drin, ist also grösstenteils redundant. lediglich das echo "$buffer"; fehlt im else-zweig.
      warum packst du also öffnen der datei und einlesen in $buffer nicht _vor_ die if-abfrage, und nur noch das echo $buffer in den if-zweig?

      • $heute = getdate();
        $month = $heute['month'];
        $mday = $heute['mday'];
        $year = $heute['year'];
        $datum = "$mday. $month $year";
        verwendung von date() mit entsprechender formatierung des datums würde ich hier vorziehen.

      Dieser Teil stammt ebenfalls nicht von mir, ich habe ihn nur Überarbeitet, um die, diesen Teil betreffenden; Notices wegzubekommen.
      In diesem Zusammenhang gibt es sowieso noch weiter unten eine Redundanz bzw. offensichtlich nicht gebrauchte Anweisung, deshalb werde ich mir diesen Teil auch gesondert vornehmen, sobald ich mich in date() eingelesen habe.

      -  if (!empty($_POST['url'])) {
        if(substr($url, 0, 7) == "http://") {
         $homepage = "<a href="$url">$url</a>";
        } else {
         $homepage = "<a href="http://$url">http://$url</a>";
      das mache ich immer leicht anders:
      zuerst ersetze ich mit str_replace "http://" durch nichts - _wenn_ es drin stand, ist es jetzt weg, wenn's nicht drin stand, ist der string so wie vorher. danach brauche ich nur noch _ein_ echo ohne jegliche abfragen, bei dem "http://" automatisch davorgesetzt wird.

      Stimmt, das würde das Script deutlich verkürzen.

      • $text = stripslashes($text);
        das sollte nicht einfach auf verdacht gemacht werden, sondern nur dann, wenn formulareingaben auch mit slashes versehen werden. wenn dies - auf anderem webspace, oder nach einem update der php-version nämlich mal nicht mehr der fall ist, werden "normale" \ ebenfalls rausgekegelt - aus der eingabe 3/4 wird 34.
        deshalb besser vorher mit get_magic_quotes_gpc() überprüfen, ob diese option überhaupt aktiviert ist.

      Stimmt. Da diese Option bei mir aktiviert ist, habe ich diesen Teil eingefügt und nicht bedacht, das es besser wäre, das Ganze mit einer Abfrage zu koppeln.

      • und unten $_POST['view_guestbook'] schon wieder das einlesen der datei in $buffer - wie gesagt, redundant, pack's ganz nach vorne.

      Ja, werde ich machen. ;-)

      • was ein wenig unangenehm auffällt, ist die fehlende fehlerbehandlung bei den dateioperationen. wenn das öffnen oder schreiben mal schief geht, wie reagierst du darauf? wenn du es gar nicht tust, werden dem nutzer dann wieder die unschönen fehlermeldungen von PHP präsentiert.

      Mit error_reporting (E_NONE) ?
      Aber prinzipiell gebe ich dir recht, da sollte man  wohl mit or die was machen.
      *grmpf* ich hätte mich doch wohl nicht dazu hinreissen lassen sollen, das Script zu reparieren, sondern besser gleich ein neues schreiben...
      Danke dir für deine Tips.

      Gruß

      Kurt

      --
      Nein, ich beantworte keine Anfragen per e-mail.
      ss:( zu:) ls:[ fo:) de:] va:| ch:| sh:( n4:° rl:( br:? js:| ie:% fl:( mo:?
      "Tadele nicht den Fluss, wenn du ins Wasser faellst."  (ind. Sprichwort)
      http://elektro-dunzinger.at
      http://shop.elektro-dunzinger.at
      1. hi,

        Uups, das wusste ich nicht. Also genügt hier
        if (empty($_POST['name'] || $_POST['nachricht')

        nicht ganz, musst du schon einzeln machen:

        if (empty($_POST['name']) || empty($_POST['nachricht'))

        • for ($i=0; $i<2; $i++) {
          sleep(1);
          flush();
          Dieser Teil stammt nicht von mir, aber imho sollte damit $buffer eingelesen und angezeigt werden. Im ursprünglichen Gästebuch wurden ja die bestehenden Einträge sofort angezeigt und sollten wohl mit diesen Zeilen bei einem Fehlposting wieder eingelesen und angezeigt werden.

        nein, das einlesen fand ja schon darüber statt.
        diese sleep() bewirkt nur, dass das script für eine gewisse zeit angehalten wird - aber was das an dieser stelle bezwecken soll, ist mir unklar.

        • was ein wenig unangenehm auffällt, ist die fehlende fehlerbehandlung bei den dateioperationen. wenn das öffnen oder schreiben mal schief geht, wie reagierst du darauf? wenn du es gar nicht tust, werden dem nutzer dann wieder die unschönen fehlermeldungen von PHP präsentiert.

        Mit error_reporting (E_NONE) ?

        na schön, dann sieht der benutzer halt keinen fehler - aber es passiert auch nichts. auch nicht ideal, oder?

        Aber prinzipiell gebe ich dir recht, da sollte man  wohl mit or die was machen.

        jepp, so viel fehlerbehandlung sollte schon drin sein.
        klar ist es unschön, dem benutzer die fehlermeldungen von PHP zu präsentieren - manchmal sogar riskant, weil er dadurch pfadnamen etc. zu gesicht bekommt, die ihn gar nichts angehen.
        aber eine schöne, selbst gestaltete fehlermeldung sollte schon sein.

        gruss,
        wahsaga

  3. Hi ihr alle,

    Nachdem ich nun überprüft habe, dass der IE selbst *.txt-Dateien als HTML darstellt, habe ich es nun auch als Archiv hochgeladen:
    http://faq.united-web.at/guestbook/gaestebuch.rar
    Tststs, Sachen gibt's, die gibt's gar nicht...

    Gruß

    Kurt

    --
    Nein, ich beantworte keine Anfragen per e-mail.
    ss:( zu:) ls:[ fo:) de:] va:| ch:| sh:( n4:° rl:( br:? js:| ie:% fl:( mo:?
    "Die meisten Menschen verdunsten einem, wie ein Wassertropfen in der flachen Hand."  (Christian Morgenstern; dt. Dichter; 1871-1914)
    http://elektro-dunzinger.at
    http://shop.elektro-dunzinger.at
    1. Hi ihr alle,

      Nachdem ich nun überprüft habe, dass der IE selbst *.txt-Dateien als HTML darstellt, habe ich es nun auch als Archiv hochgeladen:
      http://faq.united-web.at/guestbook/gaestebuch.rar
      Tststs, Sachen gibt's, die gibt's gar nicht...

      Man sollte halt den Betreff auch ändern, wenn man möchte, dass wer reinschaut...

      Gruß

      Kurt

      --
      Nein, ich beantworte keine Anfragen per e-mail.
      ss:( zu:) ls:[ fo:) de:] va:| ch:| sh:( n4:° rl:( br:? js:| ie:% fl:( mo:?
      "Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher."  (Albert Einstein; dt.-am. Physiker; 1879-1955)
      http://elektro-dunzinger.at
      http://shop.elektro-dunzinger.at