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

Blätterfunktion für Gästebuch

michaelos

Neues Mitglied
Hallo,
ich schätze mal das so etwas schon mal gepostet wurde aber ich habs nicht gefunden genauso wenig antworten lieferte google
also ich habe ein kleines gästebuch gemacht aber ich möchte eine blätterfunktion einbauen.......ich hätte schon eine eingefügt aber das eigentliche problem ist das ich mein gästebuch ohne MySQL programmiert habe was es irgendwie schwieriger macht etwas bei google zu finden. ich hoffe ihr könnt mir helfen weil ich bin ziemlich neu in PHP^^
Hier ist mein bisheriger quelltext:
Code:
<html>
<head>
<title>Gästebuch</title>
<link rel="Stylesheet" type="text/CSS" href="/style.css">
<link rel="shortcut icon" type="image/gif" href="/lachen.gif">
<script language="JavaScript" type="text/javascript">
  function smiley(zeichen)
  {
     document.gb.inhalt.value += zeichen+" ";
  }
</script> 
</head>
<body>
<div align="center">
<h2>Willkommen in meinem Gästebuch</h2>
Ich freue mich über all Ihre Einträge<small>(außer Spam)</small> und erst recht wenn Ihr einpaar 
Verbesserungsvorschläge oder Feedbacks für mich habt <img src="/Smiley2.png" alt=":D">
<br>
Ich wünsche allen viel Spaß
<p>
<form action="/beitrag.php" Method="post" name="gb">
<u><b>Ihr Name</b></u>
<br>
<input name="name" size="40">
<p>
<u><b>E-Mail</b></u>
<br>
<input name="email" size="40">
<p>
<u><b>Inhalt</b></u>
<br>
<textarea name="inhalt" cols="40" rows="12"></textarea>
<br>
<input type="submit" value="Absenden"> &nbsp;<input type="reset" value="Alles zurücksetzten">
</form>
<br>
<h4><u>Die Smileys</u></h4>
<a href="javascript:smiley(':)')"><img src="smileys/laecheln.gif" border="0"></a> &nbsp;&nbsp;&nbsp;
<a href="javascript:smiley(':D')"><img src="smileys/lachen.gif" border="0"></a> &nbsp;&nbsp;&nbsp;
<a href="javascript:smiley(';)')"><img src="smileys/zwinker.gif" border="0"></a>
<br>
<a href="javascript:smiley(':P')"><img src="smileys/zunge.gif" border="0"></a> &nbsp;&nbsp;&nbsp;
<a href="javascript:smiley('8)')"><img src="smileys/cool.gif" border="0"></a> &nbsp;&nbsp;&nbsp;
<a href="javascript:smiley(':(')"><img src="smileys/traurig.gif" border="0"></a> &nbsp;&nbsp;&nbsp;
<br>
<a href="javascript:smiley(';(')"><img src="smileys/weinend.gif" border="0"></a> &nbsp;&nbsp;&nbsp;
<a href="javascript:smiley(':lol:')"><img src="http://smilies-smilies.de/smilies/lustige_smilies/lustig11.gif" border="0"></a> &nbsp;&nbsp;&nbsp;
<p>
<a href="http://michaelos.funpic.de/index.html" title="Zurück zur Startseite">Zur Startseite</a>
<hr>
<h2>Einträge</h2>
<?php
$beitrag = file("gaestebuch.txt");
krsort($beitrag);

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

   echo "
   <table align='center' border='1' cellspacing='0' cellpadding='5' bordercolorlight='black' bordercolordark='black' width='50%'>
    <tr>
     <td>
      Von <a href=\"mailto:$zerlegen[0]\" title='Nachricht an $zerlegen[0] senden'>$zerlegen[1]</a>
      am $zerlegen[2]
     </td>
    </tr>
    <tr>
     <td>
      $zerlegen[3]
     </td>
    </tr>
   </table>
   <br>";
   }
?>
<small>Falls Ihr etwas falsch geschrieben habt oder etwas ändern möchtet sagt bescheid und ich ändere es ;)</small>
</body>
</html>

(hier könnt ihr euch das anschauen und ausprobieren ;))

danke schon mal im voraus!
michaelos
 
blätterfunktion bei txt-dateien wird schwierig, da sich die datensätze in gewisser weise ja nicht begrenzen lassen.
tu' dir doch selber einen gefallen und stell' auf datenbanken um, da hat sich eine blätterfunktion in zwei bis drei kurzblöcken und es entstehen nur vorteile für dich.

Nils aka XraYSoLo
 
hallo,
danke für deine schnelle antwort :)
mit den datenbanken klappt nich meine website is bei funpic.de angemeldet und da kann man nicht von aussen auf die datenbanken eingreifen das heisst andere leute können keine beiträge posten....... aber geht das denn gar nicht auf diese weise wie ich das jz gemacht hab?
michaelos
 
wieso von außen? mein zweiter space ist ebenfalls bei funpic und ich hab' da eine datenbank drüber laufen ;-).

Nils aka XraYSoLo
 
ja ich hab aba schon mal versucht mit datenbank bei funpic ein gästebuch zu machen und man konnte dort nix eintragen......
 
Hmm du müsstest erst die Anzahl der Einträge ermitteln und dann nur die Gewünschten ausgeben.



Also auf die schnelle habe ichs mal so hingeschrieben, vllt kann ja mal einer von den Profis paar verbesserungstips geben.

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

//Die Startposition wird ermittelt
if($_GET['page']) {
   $start = $_GET['page'];
} else {
   $start = 0;
}

//Zählt die Array´s also wie viele Einträge

$anzahl = count($beitrag);

$step = 5; //Hier kommt die Anzahl der Einträg die auf einer Seite angezeigt werden sollen.

for($i = $start; $i < ($step + $start); $i++)
   {
   $beitrag = stripslashes($beitrag[$i]);
   $zerlegen = explode("|", $beitrag);

   echo "
   <table align='center' border='1' cellspacing='0' cellpadding='5' bordercolorlight='black' bordercolordark='black' width='50%'>
    <tr>
     <td>
      Von <a href=\"mailto:$zerlegen[0]\" title='Nachricht an $zerlegen[0] senden'>$zerlegen[1]</a>
      am $zerlegen[2]
     </td>
    </tr>
    <tr>
     <td>
      $zerlegen[3]
     </td>
    </tr>
   </table>
   <br>";
   }

//Die Seiten werden hier ermittelt

$page = "";

for ($j = 0; $anzahl > $j; $j = $j + $step) {
    $anf = $j + 1;
    $end = $j + $step;
    if ($end > $anzahl) {
        $end = $anzahl;
    }        
    if ($anf == $end) {
        $pager .=  "|<a href=\"DeineSeite.php?page={$j}\"> {$end}</a> ";
    } else {
        $pager .= "|<a href=\"DeineSeite.php?paget={$j}\"> {$anf} - {$end}</a> ";
    }
  }  
echo $pager;
?>
bei

$ausgabe = stripslashes($beitrag[$i]);
$zerlegen = explode("|", $beitrag[$i]);

bin ich mir net sicher ob es in php funktioniert, kann sein das Java da mit mir durchgeht ;D


Edit: Gut möglich dass ich irgentwo einen Logikfehler drinne habe.
 
Zuletzt bearbeitet:
hallo,
also ersteinmal danke für deine antwort :)
ich werde das script so schnell wie möglich ausprobieren und dann bescheid geben....
michaelos
 
Aber wie XraYSoLo bereits sagte Steig lieber auf Datenbanken um ;) ist leichter, komfortabler und sicherer.


Funpic halt ne ^^ ich war immer bei bplaced, bevor ich auf all-inkl umgestiegen bin, bplaced ist einer der Besten freeHost Anbieter, und man kann da DB´s erstellen und nutzen ;) *bei funpic eigentlich auch*
 
Sage bitte ob es funktioniert wenn du es ausprobiert hast, interessiert mich jetzt auch.


asö aj emm das

$ausgabe = stripslashes($beitrag[$i]);
$zerlegen = explode("|", $beitrag[$i]);

sollte in das noch umgeändert werden

$tmpString = stripslashes($beitrag[$i]);
$zerlegen = explode("|", $tmpString);
 
Zuletzt bearbeitet:
^^ also du kannst ja selber nachgucken: link
aber kurz gesagt es klappt nicht.......aber mach dir keinen kopf ich versuche einfach zu einem anderen hoster zu gehen und das ganze mit datenbanken zu machen :mrgreen:
ich danke euch beiden für eure hilfsbereitschaft :)

lg michaelos
 
Gucke mal meinen vorletzten Post, hatte da nen kleiner Fehler drinne.

und noch einen fehler gefunden ^^

$pager .= "|<a href=\"DeineSeite.php?paget={$j}\"> {$anf} - {$end}</a> ";


in

$pager .= "|<a href=\"DeineSeite.php?page={$j}\"> {$anf} - {$end}</a> ";
 
Zuletzt bearbeitet:
das ist weder leichter, noch kompfortabler oder sicherer (mit sql sogar eher im gegenteil, da du auch mysql infusionen abfangen musst).
mal abgesehen davon ist (je nach anzahl der einträge) ein file sogar schneller.

wo und wie werden die einträge denn gespeichert. alles in einer datei ?
dann kannst du mit

PHP:
$werte = file("pfad/dateiname");
$gesamtseiten = count($werte)
die anzahl an seiten ermitteln.
 
du hast das hier gepostet:
PHP:
$beitrag = file("gaestebuch.txt");
wenn alle einträge deines gästebuchs in der datei gästebuch.txt liegen, dann kannst du die gesamt anzahl an seiten so rausfinden:

trage danach mal ein:
PHP:
$anzal_beitrag_je_seite = 5; // anzahl der einträge je seite
$seiten_gesamt = ceil(count($beitrag) / $anzal_beitrag_je_seite); 

echo $seiten_gesamt." bei ".$anzal_beitrag_je_seite." eintr&auml;gen je seite<br>";

wenn da das richtige rauskommt, machen wir weiter ;-)
 
Zurück
Oben