azok: file wird nicht angelegt...

hi!

also ich bin gerad fleißig am programmieren, was mein gästebuch angeht. als ich es nun einem testlauf unterziehen wollte, musste ich mit erschrecken feststellen, dass mir das gb keine .txt file anlegt... tja, nun bin ich echt ratlos, denn ich finde den fehler nicht. - hier der ausschnitt aus dem code, welcher mir die .txt anlegt

if($name AND $titel AND $text) { //Formular wurde korrekt ausgefüllt!
       $text = str_replace($t1, '<br />', $text); #trennzeichen nach <br /> umwandeln
    $text = str_replace($t2, '<br />', $text); #trennzeichen nach <br /> umwandeln
    if(file_exists("gbentr.txt")) { //wenn gbentr.txt existiert, \n ausgeben (parameter)
      echo $output;
    }
    else {
      $comment = fopen("gbentr.txt", "a+"); //einträge hinten dranhängen
      $output .= $name."~".$email."~".$titel."~".$icq."~".$hp."~".$text."~".$date."~".$time."~".$id;
      fputs($comment, $output);
      fclose($comment);
    }

...mit dem chmod des verzeichnisses sollte es nichts zu tun haben, denn bis dato hat alles einwandfrei funktioniert... (außer mein provider hat allg. die verzeichnissrechte geändert...)

danke im voraus für eure antworten!

lg
azok(=freak)

--
http://www.cssweb.at.tt wird teil einer privaten (meiner!) webseite.
------------------
Murphys Law: "Alles Schöne im Leben ist entweder illegal, ungesetzlich oder es macht dick."
  1. Hi,

    ...mit dem chmod des verzeichnisses sollte es nichts zu tun haben, denn bis dato hat alles einwandfrei funktioniert... (außer mein provider hat allg. die verzeichnissrechte geändert...)

    erhälst du denn eine Fehlermeldung? Schreib auf jeden Fall mal an den Anfang des Scripts

    error_reporting(E_ALL);

    damit alle Fehler und Warnungen ausgegeben werden.

    Gruß,
    Andreas.

    1. hi!

      erhälst du denn eine Fehlermeldung? Schreib auf jeden Fall mal an den Anfang des Scripts

      error_reporting(E_ALL);

      hab ich schon längst gemacht;-) es wird lediglich eine kleine warnung ausgegeben:

      Notice: undefined variable name in ... on line 106

      zeile 106:

      if($name AND $titel AND $text)

      das könnte schon was damit zu tun haben, nur verstehe ich php jetzt nicht ganz, weil besagte variable $name doch schon viel weiter oben über $name = $_POST['name'] aus den formular feldern geholt

      lg
      azok(=freak)

      --
      http://www.cssweb.at.tt wird teil einer privaten (meiner!) webseite.
      ------------------
      Murphys Law: "Alles Schöne im Leben ist entweder illegal, ungesetzlich oder es macht dick."
      1. Hi!

        hab ich schon längst gemacht;-) es wird lediglich eine kleine warnung ausgegeben:

        Notice: undefined variable name in ... on line 106

        zeile 106:

        if($name AND $titel AND $text)

        das könnte schon was damit zu tun haben, nur verstehe ich php jetzt nicht ganz, weil besagte variable $name doch schon viel weiter oben über $name = $_POST['name'] aus den formular feldern geholt

        Hast du es schon so probiert:

        if(isset($_POST['name']) && isset($_POST['titel']) && isset($_POST['text']))
        {
          /*weiiter Code*/
        }

        Was gibt er dann aus?
        Grüße,
        Fabian St.

        --
        Endlich online: http://fabis-site.net
        --> XHTML, CSS, PHP-Formmailer, Linux
        Selfcode: ie:% fl:|  br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)
        1. hi

          if(isset($_POST['name']) && isset($_POST['titel']) && isset($_POST['text']))
          {
            /*weiiter Code*/
          }

          tja... - an isset() hatte ich noch gar nicht gedacht. - nun kommt diese meldung nicht mehr, es wird mir aber keine datei angelegt...

          lg
          azok(=freak)

          --
          http://www.cssweb.at.tt wird teil einer privaten (meiner!) webseite.
          ------------------
          Murphys Law: "Alles Schöne im Leben ist entweder illegal, ungesetzlich oder es macht dick."
      2. Hi,

        hab ich schon längst gemacht;-) es wird lediglich eine kleine warnung ausgegeben:

        Notice: undefined variable name in ... on line 106

        naja - "lediglich" ist gut ;-) Immerhin führt dies dazu, dass deine Abfrage:

        if($name AND $titel AND $text)

        nicht true ergeben kann (wenn $name nicht definiert ist, gibt if ($name AND ...) immer false zurück) und somit der komplette Codeteil, in dem auch die Datei angelegt wird, nicht ausgeführt wird.

        das könnte schon was damit zu tun haben, nur verstehe ich php jetzt nicht ganz, weil besagte variable $name doch schon viel weiter oben über $name = $_POST['name'] aus den formular feldern geholt

        vor der Zuweisung überprüfen, was vom Formular übergeben wurde:

        echo '<pre>';
        print_r($_POST);
        echo '</pre>';
        exit;

        da du die Zuweisung $name = $_POST['name'] durchführst, kann $_POST['name'] eigentlich nicht definiert sein, ansonsten wäre es auch $name. Schau dir dein Formular nochmal an, ob da nicht doch irgendein Fehler drinsteckt.

        Gruß,
        Andreas.

        1. hi!

          echo '<pre>';
          print_r($_POST);
          echo '</pre>';
          exit;

          nun ja... - es wird mir folgendes zurückgegeben

          [name] => name
          [titel] => titel
          [text] => text

          also mit den werten mit denen ich die felder ausgefüllt habe.

          da du die Zuweisung $name = $_POST['name'] durchführst, kann $_POST['name'] eigentlich nicht definiert sein, ansonsten wäre es auch $name. Schau dir dein Formular nochmal an, ob da nicht doch irgendein Fehler drinsteckt.

          das ist schon klar. - wie soll ich mir sonst die daten aus dem formular holen? - oder soll ich den variablen andere namen verpassen?

          lg
          azok(=freak)

          --
          http://www.cssweb.at.tt wird teil einer privaten (meiner!) webseite.
          ------------------
          Murphys Law: "Alles Schöne im Leben ist entweder illegal, ungesetzlich oder es macht dick."
          1. Hi,

            da du die Zuweisung $name = $_POST['name'] durchführst, kann $_POST['name'] eigentlich nicht definiert sein, ansonsten wäre es auch $name. Schau dir dein Formular nochmal an, ob da nicht doch irgendein Fehler drinsteckt.

            das ist schon klar. - wie soll ich mir sonst die daten aus dem formular holen? - oder soll ich den variablen andere namen verpassen?

            nein - ich hatte eigentlich vermutet, dass der Fehler im Formular stecken muss, da die Fehlermeldung darauf hindeutete. Denn, wenn du oben eine Zuweisung $name = $_POST['name'] durchgeführt hast, dann kann $name eigentlich nur dann undefiniert sein (das sagte ja die Fehlermeldung), wenn $_POST['name'] ebenfalls undefiniert ist. Diesen Fehler kann man aber wegen des Tests durch print_r() ausschließen.

            Fakt ist, dass die Variable $name in der if-Abfrage _nicht_ definiert ist, d.h. der Fehler muss bereits vorher passiert sein. Da $_POST['name'] definiert ist, vermute ich den Fehler an der Stelle, an der du die Variablenzuweisung durchführst (evtl. steckt sie auch in einem if-Block, der nicht ausgeführt wird?!). Naja - das in der Klammer war schon wilde Raterei - ohne relevanten Code kann man dir kaum weiterhelfen.

            Gruß,
            Andreas.