nichtschecker: Problme mit Arrays

Hallo,
ich hab en kleines Problem mim Auslesen von Arrays:

eintrag.php: [nicht so wichtig; nur Formular]

<?php
  include("content.php");
?>

<html>
 <head>
  <title><?php echo "$title"; ?></title>
 </head>

<body bgcolor='<?php echo "$bgcolor"; ?>'>
  <form action='eintrag_auswertung.php' method='post'>
  <table width='500' border='0' align='center' style='vertical- align:top;'>
   <tr bgcolor='#CCCCCC'>
    <td width='25%' style='vertical-align:top; text-align:center;'>
     <font style=''>
      <input type='text' name='name' value='Name' size='15' style='border-top: 1px solid; border-right: 1px solid; border-left: 1px solid; border-bottom: 1px solid; border-color: black; background-color: #CCCCCC;'></input>
     </font>
    </td>
    <td width='53%' style='vertical-align:top; text-align:center;'>
     <font style=''>
      <input type='text' name='betreff' value='Betreff' size='35' style='border-top: 1px solid; border-right: 1px solid; border-left: 1px solid; border-bottom: 1px solid; border-color: black; background-color: #CCCCCC;'></input>
     </font>
    </td>
    <td width='22%' style='vertical-align:top; text-align:right;'>
     <font style=''>
      <input type='text' name='datum' value='Datum' size='14' readonly style='border-top: 1px solid; border-right: 1px solid; border-left: 1px solid; border-bottom: 1px solid; border-color: black; background-color: #CCCCCC;'></input>
     </font>
    </td>
   </tr>
   <tr bgcolor='#CCCCCC'>
    <td width='25%' style='vertical-align:top; text-align:center;'>
     <font style=''>
      <input type='text' name='email' value='E-Mail' size='15' style='border-top: 1px solid; border-right: 1px solid; border-left: 1px solid; border-bottom: 1px solid; border-color: black; background-color: #CCCCCC;'></input>
     </font>
     <br>
     <font style=''>
      <input type='text' name='icq' value='Icq' size='15' style='border-top: 1px solid; border-right: 1px solid; border-left: 1px solid; border-bottom: 1px solid; border-color: black; background-color: #CCCCCC;'></input>
     </font>
     <br>
     <font style=''>
      <input type='text' name='homepage' value='Homepage' size='15' style='border-top: 1px solid; border-right: 1px solid; border-left: 1px solid; border-bottom: 1px solid; border-color: black; background-color: #CCCCCC;'></input>
     </font>
    </td>
    <td width='75%' style='vertical-align:top; text-align:left;' colspan='2'>
     <font style=''>
      <textarea name='eintrag' value='' style='border-top: 1px solid; border-right: 1px solid; border-left: 1px solid; border-bottom: 1px solid; border-color: black; background-color: #CCCCCC;' cols='43' rows='7'>Eintrag</textarea>
     </font>
    </td>
   </tr>
  </table>
  <table width='500' border='0' align='center'>
   <tr>
    <td>
     <input type='submit' value='Eintragen'></input>
    </td>
   </tr>
  </table>
  </form>
 </body>
</html>

eintrag_auswertung.php: [wichtig; infos werden in text-datei
                         geschrieben]

<?php
  include("content.php");
?>

<html>
 <head>
  <title><?php echo "$title"; ?></title>
 </head>

<body bgcolor='<?php echo "$bgcolor"; ?>'>
  <?php
    if($name != "" && $betreff != "" && $eintrag != "") {
       $datum = date("d.m.Y");
       $eintrag = str_replace("\r\n", "<br>", $eintrag);
       $fp = fopen("gaestebuch.txt","r");
       $input .= "$name | $betreff | $datum | $email | $icq | $homepage | $eintrag\n";
       while (!feof($fp)) {
          $input .= fgets($fp, 500);
       }
       fclose($fp);
       $fp = fopen("gaestebuch.txt","w+");
       fputs($fp, $input, strlen($input));
       fclose($fp);

echo "<table width='500' border='0' align='center'>
       <tr bgcolor='#CCCCCC'>
        <td width='25%' align='center'>
         <font style='margin-left:5;'>
          <b>Danke für Ihren Eintrag!</b>
         </font>
        </td>
       </tr>
      </table>";
    } else {
       echo "<table width='500' border='0' align='center'>
     <tr bgcolor='#CCCCCC'>
      <td width='25%' align='center'>
       <font style='margin-left:5;'>
        <b>Bitte füllen Sie alle Felder aus!</b>
       </font>
      </td>
     </tr>
    </table>
";
    }
  ?>
 </body>
</html>

guestbook.php [sehr wichtig; arrays werden ausgelesen]

<?php
  include("content.php");
?>

<html>
 <head>
  <title><?php echo "$title"; ?></title>
 </head>

<body bgcolor='<?php echo "$bgcolor"; ?>'>
  <table width='500' border='0' align='center'>
   <tr bgcolor='#CCCCCC'>
    <td align='center'>
     <b>
      <a href='eintrag.php' target='_self'>Ins ins Gästebuch eintragen!</a>
     </b>
    </td>
   </tr>
  </table>

<?php
    $fp = fopen("gaestebuch.txt","r");
    while (!feof($fp)) {
       $zeile = fgets($fp, 500);
       $daten = explode(" | ", $zeile);
       $name = $daten[0];
       $betreff = $daten[1];
       $datum = $daten[2];
       $email = $daten[3];
       $icq = $daten[4];
       $homepage = $daten[5];
       $eintrag = $daten[6];
    }

echo "<table width='500' border='0' align='center'>
   <tr bgcolor='#CCCCCC'>
    <td width='25%'>
     <font style='margin-left:5;'>
      <b>".$name."</b>
     </font>
    </td>
    <td width='75%'>
     <font style='margin-left:5;'>
      <b>".$betreff."</b>
     </font>
     <font style='margin-left:220;'>
      ".$datum."
     </font>
    </td>
   </tr>
   <tr bgcolor='#CCCCCC'>
    <td width='25%' height='*'>
     <font style='margin-left:5;'>
      ".$email."
     </font>
     <br>
     <font style='margin-left:5;'>
      ".$icq."
     </font>
     <br>
     <font style='margin-left:5;'>
      ".$homepage."
     </font>
    </td>
    <td width='75%' style='vertical-align:top;'>
     <font style='margin-left:5; margin-top: 10;'>
      ".$eintrag."
     </font>
    </td>
   </tr>
  </table>
";
  ?>
 </body>
</html>

So... Und nun zum Problem: Wenn man guestbook.php aufruft,
dann wird nichts wiedergegeben!

Siehe http://web540.server37.greatnet.de/tests/gaestebuch/guestbook.php

--
Nichtschecker
webmaster@diemodellwelt.de
http://www.diemodellwelt.de
  1. Hello,

    nur mal so nebenbei ein Tipp: Für den Anfang solle man nicht solche Mosterformulare bauen, sondern mal eins mit einem einzigen Feld benutzen. Wenn man dann verstanden hat, wie es funktioniert, kann man sas immer noch aufbohren.

    Und dann such mal hier im Forum unter dem Stichwort "register globals"

    Viel Erfolg

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
  2. Hallo nichtschecker,

    [Viel Kram, den ich nicht durchgelesen habe ...]

    <?php
        $fp = fopen("gaestebuch.txt","r");
        while (!feof($fp)) {
           $zeile = fgets($fp, 500);
           $daten = explode(" | ", $zeile);
           $name = $daten[0];

    ... sonstige Felder ...

    $eintrag = $daten[6];
        }

    Beginn der Ausgabe

    mit Variablenzugriff der Form

    ".$eintrag."

    ...

    Deine Ausgabe muss auf jeden Fall ebenfalls _innerhalb_ Deiner Schleife erfolgen. Sonst überschreibst Du Deine Variablen immer wieder.
    Selbstverständlich musst Du die Tabelle _vor_ der Schleife öffnen und _nach_ der Schleife schliessen.

    Ein Ratschlag allgemeiner Natur: Teile Deine Skripte in Funktionen auf.
      benötigte Aufgabe -> Funktion

    z.B. kannst Du eine Funktion schreiben, die Dir eine Tabellenzeile ausgibt.

    Freundliche Grüsse,

    Vinzenz