• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Gästebuch Problem

BDG

Mitglied
Hey Leute...
Also ich bin in PHP nicht so erfahren ... Ich brauche aber ein Gästebuch,
und da wollte ich jetzt den Style verändern,
aber irgendwie klappt das nicht so .. Man kann die Seite nicht aufrufen, da steht dann
Beim Abrufen von http://.../Gbuch/gaestebuch.php ist auf der Website ein Fehler aufgetreten. Möglicherweise wird sie gerade gewartet oder ist falsch konfiguriert.
Könnt ihr euch das mal angucken ? Hier ist der Code :
PHP:
<?php$beitrag = file("gaestebuch.txt");krsort($beitrag);
foreach($beitrag as $ausgabe)   {   $ausgabe = stripslashes($ausgabe);   $zerlegen = explode("|", $ausgabe);
   echo "  <div class="css-block" style="margin-left : 235px; margin-right : 105px;">  <h3><a href=\"$zerlegen[0]\">$zerlegen[1]</a></h3>  <div class="css-block-inner">  
   $zerlegen[3]       </div>       </div>   ";   }?>
 
Oh danke :D Oke... Aber nun hat sich gleich ein neues Problem ergeben ... Ich will, dass
es ein großen Block gibt, und in dem Block sind alle Kommentare ...
Hier schonmal etwas code :
PHP:
<?php$beitrag = file("gaestebuch.txt");krsort($beitrag);echo "<div class='css-block'>  <h3><a>Kommentare</a></h3>  <div class='css-block-inner'>  ";  foreach($beitrag as $ausgabe)   {   $ausgabe = stripslashes($ausgabe);   $zerlegen = explode("|", $ausgabe);
   echo "  
   $zerlegen[3]         ";      echo "  </div>            </div> ";   }?>

Nur das blöde ist jetzt, dass wenn ich den COde für den Block in die foreach schleife reinschreibe ja für jeden Kommentar ein eigener Block gemacht wird ... Wenn ich aber will, dass alle Kommentare in einem Block sind, wie mache ich das ? SO wie ihr das jetzt in meinem Code seht, geht das nähmlich nicht ... Der Block wird nach einem Kommentar schon geschlossen und alle anderen Kommenatare sind außerhalb des blocks ... Was muss ich tun ?
 
Wenn ich das richtig sehe dann gibst du gar nichts aus im div oder irre ich da?

sonst müsste das so aussehen

PHP:
    echo '</div>' . $ausgabe . '</div>' ;
 
PHP:
<?php$beitrag = file("gaestebuch.txt");krsort($beitrag);echo "<div class='css-block'>  <h3><a>Kommentare</a></h3>    ";  foreach($beitrag as $ausgabe)   {   $ausgabe = stripslashes($ausgabe);   $zerlegen = explode("|", $ausgabe);
   echo "   <div class='css-block-inner' style='float: left; height: 80px; width: 150px;'>
   $zerlegen[3]      </div>               ";         }   echo "             </div> ";?>
Doch klar ... Zwischen div anfang und ende ist doch "$zerlegen[3]".. das ist ein ganz langer text ...
 
Hmm schon wieder ne Frage : Ich will jetzt, dass insgesamt maximal 10 Beiträge angezeigt werden ... Aber so wie ich das mache wird jeder Beitrag zehnmal angezeigt !

Code:
<?php$beitrag = file("gaestebuch.txt");
krsort($beitrag);
echo "
<div class='css-block'>
  <h3><a>Kommentare</a></h3>
  
  ";


 
foreach($beitrag as $ausgabe)
   {
   for ($i = 1; $i <= 4; $i++)
   { 
   
   $ausgabe = stripslashes($ausgabe);
   $zerlegen = explode("|", $ausgabe);


   echo "
   <div class='css-block-inner' style='float: left; height: 80px; width: 150px;'>


   $zerlegen[3]
   
   </div>
   
   &nbsp;
      
   ";
   
   }
   }
   echo " 
            </div> ";
?>
 
Wieso arbeitest Du nicht mit einer Datenbank?

Wie liegen die Gästebucheinträge in der Datei vor? Mit was trennst Du sie von einander? Mit einem Pipe-Symbol?

Hier mal ein Beispiel, mit dem Du per URL-Parameter auch bestimmen könntest, welche Beiträge von welcher "Seite" angezeigt werden soll und wieviele Beiträge auf einer "Seite" angezeigt werden sollen.
PHP:
<?php
$content = file('gaestebuch.txt');

// String in Array-Elemente zerlegen
$entries = explode('|', $content);

$countedEntries = count($entries);

/* mit _GET bspw auf Parameter zugreifen der die anzahl von Einträgen Pro Seite definiert */
$entriesPerPage = 10;

/* mit _GET bspw auf Parameter zugreifen der die Seite angibt */
$page = 1;

$j = 1;

for ($i = ($entriesPerPage * ($page - 1)); $i < $countedEntries; $i++ ) {
    if ($j == $entriesPerPage) {
        break;
    }
    echo $entries[$i];
    $j++;
}
?>

PS: habs jetzt nicht getestet, also nicht einfach so übernehmen, sondern auch überprüfen.
 
Zuletzt bearbeitet:
Naja... Mit Datenbank ist mir das zu schwer, die dann nur eine gwissen Zahl da anzugeben und so ... ich kenne mich mit Datenbanken garnicht aus ! Oder kennt jemand ein gutes Tut wo erklärt wird, wie man sowas macht
UND wie sowas funktioniert ?
 
Zurück
Oben