Dora: Fehler im Script?

Hallo Leute,

ich habe mir ein Gästebuch mit PHP programmiert!
Aber das Script zeigt Fehler an.
Kann mir da jemand helfen?
Hier die Adresse zu den zwei Dateien: http://www.albertfilm.de/alex-home/gaestebuch/gaestebuch.php
http://www.albertfilm.de/alex-home/gaestebuch/neuer_beitrag.php

Da gibt es noch eine .txt-Datei wo ja später die Einträge reinkommen.
Wenn sie euch beim suchen des Fehlers helfen sollte, hier die Adresse zu ihr: http://www.albertfilm.de/alex-home/gaestebuch/gaestebuch.txt

Weiß da jemand was ich falsch gemacht habe?

Schönen Tag noch.
Dora

  1. hallo,

    ich habe mir ein Gästebuch mit PHP programmiert!

    Schön für dich.

    Aber das Script zeigt Fehler an.

    Weniger schön.

    Kann mir da jemand helfen?

    Na klar, dein Browser kann das:
     "Fatal error: Only variables can be passed by reference in /home/www/htdocs/albertfilm.de/alex-home/gaestebuch/gaestebuch.php on line 26"

    Aber solange hier im Forum niemand sehen kann, was da nun grade in Zeile 26 steht, kann man dir auch nix Genaueres sagen.

    Grüße aus Berlin

    Christoph S.

    1. So hab es nun geschafft, das Gästebuch zum laufen zu bringen: http://www.albertfilm.de/alex-home/gaestebuch/gaestebuch.php

      Hat jemand noch Vorschläghe was ich ins Gästebuch einbauen könnte, oder hat jemand Scripte?
      Dann schreibt sie mir bitte ins Gästebuch rein!

      Ich bedanke mich für eure Hilfe!

      Gruß.
      Dora.

      1. hallo,

        Hat jemand noch Vorschläghe was ich ins Gästebuch einbauen könnte

        Nein, aber was du ausbauen solltest: du verlangst zwingend die Angabe eines Namens, und du speicherst den Namen dann mit einem "mailto:"-Verweis. Wenn nun jemand keine mail-Adresse angegeben hat, wird es trotzdem ein link. Das ist ziemlich doof.
        Ein kleines bißchen mehr grafische Sorgfalt wäre auch angebracht, aber das kommt ja immer erst dann, wenn das ganze Kostrukt funktioniert, und das tuts offenbar jetzt.

        Grüße aus Berlin

        Christoph S.

      2. Weiß jemand von euch wie man ein Kommentar ins Gästebuch schreiben kann?
        Gibts dafür auch ein PHP Script?
        Wo finde ich es?

        Gruß.
        Dora.

        1. hallo Dora,

          Weiß jemand von euch wie man ein Kommentar ins Gästebuch schreiben kann?

          Vermutlich wissen das alle außer dir. Bloß: welche Art von "Kommentaren" meinst du? Willst du zu Einträgen, die die Besucher deines Gästebuchs schreiben, noch etwas kommentieren, was dann auch auf deiner Gästebuchseite lesbar erscheint, oder willst du bloß in deinen Code irgendwelche unsichtbaren Kommentare einbauen?

          Gibts dafür auch ein PHP Script?

          Unzählige. Am besten aber schreibst du dir selber eins. Wie du mit PHP zurechtkommen kannst, liest du bitte mal in http://www.php.net/manual/de/index.php nach.

          Grüße aus Berlin

          Christoph S.

          1. Ich meine, dass ich den Besuchern antworten kann bei den Beiträgen?
            Wie ich Einträge löschen kann, dass weiß ich, aber wie ich die Konmmentieren kann, des net!

            Gruß.
            Dora.

  2. Hallo Dora,

    Hier die Adresse zu den zwei Dateien: http://www.albertfilm.de/alex-home/gaestebuch/gaestebuch.php

    wie sieht der Code um die Zeile 26 herum aus?

    http://www.albertfilm.de/alex-home/gaestebuch/neuer_beitrag.php

    wie sieht der Code um die Zeile 15 herum aus?

    Weiß da jemand was ich falsch gemacht habe?

    das ist ohne den Code zu kennen etwas schwer zu sagen ...

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. Hier mal die ganzen Codes!
      Also der Code von der gaestebuch.php:

      Wollen Sie einen neuen Beitrag hinzufügen?<br><br>

      <form action="neuer_beitrag.php" Method="post">

      Ihr Name:<br>
      <input name="Name" size="40"><br><br>

      E-Mail:<br>
      <input name="EMail" size="40"><br>
      <br><br>

      Inhalt:<br>

      <textarea name="inhalt" cols="40" rows="12"
      wrap="physical"></textarea><br>
      <input type="submit" value="Absenden">
      </form>
      <hr>

      <?php
      $beitrag = file("gaestebuch.txt");
      ?>

      <?php
      $beitrag = file("gaestebuch.txt");
      krsort(beitrag);

      foreach($beitrag as $ausgabe)
      {
      $ausgabe = stripslashes($ausgabe);
      $zerlegen = "explode("|", $ ausgabe);

      echo "
      <table algin=\center" border="1" cellspacing="0"
      cellpadding="5" bordercolorlight="black"
      bordercolordark="black" width="50%">
      <tr>
      <td>
      Von <a href="mailto:$zerlegen[0]">$zerlegen[1]</a>
      am $zerlegen[2]
      </td>
      </tr>

      <tr>
      <td>
      $zerlegen[3]
      </td>
      </tr>
      </table><br>
      ";
      }
      ?>

      Und der Code der neuer_beitrag.php:

      <html>
      <head>
      <title>Gästebuch - Speichere Beitrag</title>
      </head>
      <body>

      <?php
      $user = $HTTP_POST_VARS["Name"];
      $user = htmlentities($user);

      $inhalt = $HTTP_POST_VARS["inhalt"];
      $inhalt = htmlentities($inhalt);
      $inhalt = str_replace("n", "<br>, $inhalt);

      $email = $HTTP_POST_VARS["EMail"];
      $email = htmlentities($email);

      if ($inhalt == "" or $user == "")
      {
      echo "Sie müssen das Feld "Namen"
      und "Inhalt" ausfüllen";

      else
      {
      $datum= date("d.m.Y H:i:s");

      $eintrag="$email|$user|$datum|$inhalt";

      $datei = fopen("gaestebuch.txt", "a");
      fwrite($datei, "\n".$eintrag);
      fclose($datei);

      echo "Ihr Eintrag wurde erfolgreich gespeichert";
      }
      ?>

      <br>
      <a href="gaestebuch.php">Zurück zum Gästebuch</a>
      </body>
      </html>

      1. Moin,

        krsort(beitrag);

        Das da wird Zeile 26 sein. Nun schau sie dir mal ganz genau an. Was ist falsch?

        --
        Henryk Plötz
        Grüße aus Berlin
        ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
        ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~
        1. Ich kenne mich mit PHP net bersonders gut aus!
          Vielleicht muss der Code so aussehen: krsort (beitrag); ???

          Gruß.
          Dora.

          1. Moin,

            Ich kenne mich mit PHP net bersonders gut aus!
            Vielleicht muss der Code so aussehen: krsort (beitrag); ???

            Nein. Du willst eine Variable an die Funktion krsort übergeben. Was fällt dir auf was alle Variablen gemeinsam haben, du an dieser einen Stelle aber nicht hast?

            Tipp: gnurhäw ehcsinakirema eid rüf nehciez sad

            --
            Henryk Plötz
            Grüße aus Berlin
            ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
            ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~
            1. Hab des ausgebessert mit dem Dollar-Zeichen,
              aber jetzt ist ein Fehler in Zeile 38!
              Was ist da der Fehler, hab gar keinen Plan von!

              Gruß.
              Dora.

            2. hallo Henryk,

              Tipp: gnurhäw ehcsinakirema eid rüf nehciez sad

              Merkwürdigerweise ergibt "man gnurhäw" bei mir zwar keine Fehlermeldung  a la "not found", aber es passiert gar nix. Das heißt, es müßte eine manpage für "gnurhäw" geben, ich hab sie bloß nicht installiert. Kannst du mal genauer werden, wo ich die herbekomme?

              ;-)

              Grüße aus Berlin

              Christoph S.

          2. hallo,

            Ich kenne mich mit PHP net bersonders gut aus!

            Dann solltest du dich entweder vierzehn Tage lang intensiv damit beschäftigen oder ganz darauf verzichten.

            Vielleicht muss der Code so aussehen: krsort (beitrag); ?

            Nein. Was Henryk meinte, ist folgendes:

            $beitrag = file("gaestebuch.txt");

            Hier hats du eine Variable definiert.

            krsort(beitrag);

            Und hier willst du die Variable verarbeiten  -  fällt dir jetzt auf, daß da was fehlt?

            Grüße aus Berlin

            Christoph S.

      2. Hallo Dora,

        krsort(beitrag);

        dass das falsch ist hat dir Henryk ja schon geschrieben (auch wenn ich nicht weiß, ob es für den Fehler verantwortlich ist).

        $zerlegen = "explode("|", $ ausgabe);

        das dürfte eher das Problem sein - zum einen hast du ein " zu viel und zum anderen stört sich php vmtl an dem Leerzeichen zwischen '$' und 'ausgabe'.

        $inhalt = str_replace("n", "<br>, $inhalt);

        du solltest dir einen Editor mit Syntax-Highlighting zulegen - damit siehst du nämlich schnell, dass hier noch ein " fehlt.

        echo "Sie müssen das Feld "Namen"
        und "Inhalt" ausfüllen";

        wenn du als Stringbegrenzer einfache Anführungszeichen nimmst, kannst du dir das maskieren der doppelten im String schenken.

        Grüße aus Nürnberg
        Tobias

        --
        Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|