[Variablen] Gästebuch- Einige Fehler

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Variablen] Gästebuch- Einige Fehler

    Ich hab jetzt 2/3 aller fehler wegbekommen!
    Damit ich den Rest auch nocht wegbekomme, hab ich ein paar fragen!
    1):
    Code:
           ///jetzt wird die txt datei geöffnet
           $fp=fopen('gaestebuch.txt', 'r');
           ///in die txt datei eintragen
           $input .= "$datum | $name | $mail | $text\n";
    Hier bekomme ich folgende Fehlermeldung:
    Code:
    Notice: Undefined variable: input in Z:\Homepage\Woifi\beta\gbbackup.php on line 39
    Aber $input kann man ja nicht anders definieren, oder? Ich habe gelernt, dass das halt der Beferhl fürs schreiben in eine TXT Datei ist!

    2)
    Code:
    $mail=(isset($_POST['mail']));
       $fp = fopen('gaestebuch.txt', 'r');
          while (!feof($fp)) {
               $zeile = fgets($fp, 500);
               $daten = explode(" | ", $zeile);
               $datum = $daten[0];
               $name = $daten[1];
               $mail = $daten[2];
               $text = $daten[3];
    Hier bekomme ich folgende Fehlermeldungen:
    Code:
    Notice: Undefined offset: 1 in Z:\Homepage\Woifi\beta\gbbackup.php on line 67
    
    Notice: Undefined offset: 2 in Z:\Homepage\Woifi\beta\gbbackup.php on line 68
    
    Notice: Undefined offset: 3 in Z:\Homepage\Woifi\beta\gbbackup.php on line 69
    Wie soll ich die sonst definieren?

    Und zu guter letzt! Ich habe eine if schleife, die nur in Kraft treten sol, wennn der Benutzer alle Felder ausfüllt! Aber die Schleife ritt immer in kraft!
    Hier der FOLLTÄNDIGE CODE:
    Code:
    <html>
    <head>
    <title>GB</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="../Index.css" rel="stylesheet" type="text/css">
    </head>
    
    <body>
    <?php
    echo "<form name=\"beitrag_eintragen\" action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">
        <p align=\"center\">Das ultimative Gästebuch ;) </p>
        <table  border=\"0\" cellspacing=\"5\">
          <tr>
            <td>Name: </td>
            <td><input type=\"text\" size=\"30\" name=\"name\"></td>
          </tr>
          <tr>
            <td>Email: </td>
            <td><input type=\"text\" size=\"30\" name=\"mail\"></td>
          </tr>
          <tr>
            <td>Kommentar: </td>
            <td><textarea cols=\"45\" rows=\"6\" name=\"text\"></textarea></td>
          </tr>
          <tr>
            <td></td>
            <td><input type=\"submit\" name=\"button\" value=\"Senden\"></td>
          </tr>
        </table>
      </form>";
    ///wenn user auf butten drückt:
    if (isset($_POST['button'])) {
        if((isset($_POST['name']))!= '' && (isset($_POST['mail'])) != '' && (isset($_POST['text'])) != '') {
           $datum= date('d.m.Y');
           $text = str_replace("\r\n", "<br>", $text);
           ///jetzt wird die txt datei geöffnet
           $fp=fopen('gaestebuch.txt', 'r');
           ///in die txt datei eintragen
           $input .= "$datum | $name | $mail | $text\n";
           ///alte beiträge auslesen
           while (!feof($fp)) {
                   $input .= fgets($fp, 500);
               }
               fclose($fp);
           ///neu schreiben
           $fp = fopen('gaestebuch.txt', 'w+');
               fputs($fp, $input, strlen($input));
               fclose($fp);
          ///erfolgreich
          echo '<align="center">Der Eintrag war erfolgreich <br>
                            <a href="'.$PHP_SELF.'">Eintrag ansehen</a>';
    
          } else {
    
            echo '<align="center"> Bitte fülle alle Felder aus!<br>
                           <a href="javascript:history.back()">Zurück</a>';
           }
    ///wenn der benutzer noch nichts eingegeben hat
    
    } else {
    $mail=(isset($_POST['mail']));
       $fp = fopen('gaestebuch.txt', 'r');
          while (!feof($fp)) {
               $zeile = fgets($fp, 500);
               $daten = explode(" | ", $zeile);
               $datum = $daten[0];
               $name = $daten[1];
               $mail = $daten[2];
    		   $text = $daten[3];
    
               // Gib einzelne Beiträge in einer Tabelle aus
          echo '<table width="50%"  border="0" cellspacing="5">
         			<tr bgcolor="#CCCCCC">
        			   <td>'.$name.' - </b>
             		   <font size="2">'.$datum.'</font></td>
      				</tr>
    				<tr>
        				<td>Email: '.$mail.'</td>
      				</tr>
      				<tr>
        				<td>'.$text.'</td>
      				</tr>
    			</table>';
          }
          fclose($fp);
    }
    
    ?>
    
    
    </body>
    </html>
    bitte um hilfe!
    danke im vorhinein

  • #2
    was gibt es an "Undefined variable:" nicht zu verstehen? du arbeitest mit einer var, die es nicht gibt. benutze $_POST, und if(!isset)) { // code }

    undefined offset, ist prinzipiell das selbe, nur eben mit array elementen. auf korrekte schreibweise achten!
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

    Kommentar


    • #3
      1. definiere am anfang $input='';
      2. wie schmalle schon sagte $daten[x] existiert nicht ... leerzeile in der textdatei? => mit isset() prüfen
      3. müsste besser so aussehen:
      PHP-Code:
      if(isset($_POST['name'],$_POST['mail'],$_POST['text']) && !empty($_POST['name']) && !empty($_POST['mail']) && !empty($_POST['text'])) 
      Kissolino.com

      Kommentar


      • #4
        wenn man empty nimmt braucht man vorher kein isset mehr.
        mfg
        marc75

        <Platz für anderes>

        Kommentar


        • #5
          Original geschrieben von marc75
          wenn man empty nimmt braucht man vorher kein isset mehr.
          mit empty kann man nicht überprüfen, ob eine var auch tatsächlich vorhanden ist
          h.a.n.d.
          Schmalle

          http://impressed.by
          http://blog.schmalenberger.it



          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
          ... nur ohne :-)

          Kommentar


          • #6
            Original geschrieben von schmalle
            mit empty kann man nicht überprüfen, ob eine var auch tatsächlich vorhanden ist
            nö kann man nicht, aber ist sie nicht vorhanden dann ists gleich 0 bzw. false und die Fehlermeldung kommt dann auch nicht bei error_all.
            mfg
            marc75

            <Platz für anderes>

            Kommentar


            • #7
              ok danke! Ihr habt mir sehr geholfen!
              Könnt ihr mir jetzt bitte noch sagen, was ich am undefined offset ändern muss?
              Bitte kann mir wer helfen????
              Zuletzt geändert von coldblood; 28.01.2004, 12:07.

              Kommentar


              • #8
                das mit den undefined offset fehlermeldungen schaff ich einfach nicht!
                PS: Sry für doppelpost aber dit funkt nicht!

                Kommentar


                • #9
                  ich hab doch geschrieben isset()
                  PHP-Code:
                  if(isset($daten[0]))
                       
                  $text $daten[0];
                  else
                       
                  $text '';

                  // oder kurzschreibweise
                  $text = isset($daten[0]) ? $daten[0] : ''
                  Kissolino.com

                  Kommentar


                  • #10
                    PHP-Code:
                          while (!feof($fp)) {
                               
                    $zeile fgets($fp500);
                               
                    $daten explode(" | "$zeile);
                               
                    $datum $daten[0];
                               
                    $name = isset($daten[0]) ? $daten[1] : '';
                               
                    $mail = isset($daten[0]) ? $daten[2] : '';
                               
                    $text = isset($daten[0]) ? $daten[3] : ''
                    ich habs jetzt in das obige geändert, doch der fehler ist noch immer da!

                    Kommentar


                    • #11
                      das gibts doch nicht, dass das keiner weiß?????

                      Kommentar


                      • #12
                        Original geschrieben von coldblood
                        PHP-Code:
                        $name = isset($daten[0]) ? $daten[1] : ''
                        hat's nen tieferen sinn, dass du auf $domain[1] zugreifst, wenn $domain[0] vorhanden ist?
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #13
                          Original geschrieben von mrhappiness
                          hat's nen tieferen sinn, dass du auf $domain[1] zugreifst, wenn $domain[0] vorhanden ist?
                          das ist wohl sowas wie der "wer ist noch wirrer als isch"-test ;-) @happy du bist durchgefallen
                          h.a.n.d.
                          Schmalle

                          http://impressed.by
                          http://blog.schmalenberger.it



                          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                          ... nur ohne :-)

                          Kommentar


                          • #14
                            Original geschrieben von schmalle
                            @happy du bist durchgefallen
                            scheiße

                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar

                            Lädt...
                            X