Gästebuch aufsplitten?

Hi,

irgendwie scheint das aber noch nciht ganz zu funktionieren.
Ist da nicht ein Denkfehler dahinter: $_GET[seite] + 5

Man darf doch hier nicht Seite + 5 machen?

Grüße
 
schreib am Anfang des scriptes

$seite = $_GET['seite'];
if (!isset($seite)){ $seite = 1; )

rein
dann ersetz im if() $_GET[seite] durch $seite

So wird es tun sorry hatte im oberen Script ein Punkt vergessen bei echo $datei[$i]
PHP:
$seite = $_GET['seite'];
if (!isset($seite)){ $seite = 1; }
$datei=file("dietextdatei"); 
for($i=0;$i<count($datei);$i++){ 
if($i <= ($seite + 5) && $i >= $seite) { echo $datei[$i]."<br>"; } 
}
 
Zuletzt bearbeitet von einem Moderator:
Nunja, das wäre die sinnvollere Alternative:
PHP:
if (isset($_GET['seite']))
{ 
   $seite = intval($_GET['seite']); 
}
else
{
   $seite = 1; 
} 
$datei=file("dietextdatei"); 
for($i=$seite;$i<$seite + 5;$i++)
{ 
   echo $datei[$i]."<br>";  
}
 
Hi Leute,

ich hoffe ich verlange nicht zuviel :) aber könntet ihr mir den kompletten neuen Code hier posten? Dann bekomm ich keine Fehlermeldungen bzw. setze es falsch ein.

Das wäre sehr nett.

Danke.

Grüße
 
So Leute,

jetzt habe ich eine Möglichkeit gefunden die für sich alleine funktioniert. Wenn ich den allein funktionierenden Teil aber im Gesamten Skript oben einbaue, dann bekomme ich eine Fehlermeldung von wegen Division by zero! ?

und zwar in einer dieser zeilen:

$seitenzahl=ceil($anzahl/$je_seite);
return $seitenzahl;


Könnt ihr da vielleicht mal drüber schauen?

Also dieser Code funktioniert alleine:

PHP:
// Funktion, um das Array umzudrehen:
function reverse($array) {
	$neuarray=array();
	for($i=count($array)-1; $i >= 0; $i--) {
		$neuarray[]=$array[$i];
	}
	return $neuarray;
}
// Konfiguration:
$daten=file("gbuch.txt"); // Hier deine Datei angeben !
$je_seite=2;
$daten=reverse($daten);
// Anzahl der Eintäge im Array:
$anzahl=count($daten);
// Die Anzahl der Seiten berechnen:
function seitenanzahl() {
	global $daten, $je_seite, $anzahl;
	$seitenzahl=ceil($anzahl/$je_seite);
	return $seitenzahl;
}
// Aktuelle Seite:
if($_GET["seite"]>0 && $_GET["seite"] <= seitenanzahl() && is_numeric($_GET["seite"])) {
	$a_seite=$_GET["seite"];
}
else {
	$a_seite=1;
}
// Die Einträge berechnen, die auf der aktuellen Seite stehen:
$anfang_eintraege=($a_seite*$je_seite)-$je_seite+1;
$ende_eintraege=$a_seite*$je_seite;
 
// Schleife, um die Einträge der aktuellen Seiten anzuzeigen (Als Array-Index):
for ($i=$anfang_eintraege; $i<=$ende_eintraege; $i++) {
	if($i <= $anzahl) {
	 // echo $daten[($i-1)]."<br>"; // Hier kannst du irgendwas mit dem aktuellen Eintrag machen, also auch exploden !
 
$teil=explode("|",$daten[($i-1)]);
 
$sekunden=$teil[0];
$zeit=$teil[1];
$name=$teil[2];
$email=$teil[3];
$hpage=$teil[4];
$text=$teil[5];
echo"<hr width=\"100%\" color=\"#CCCCCC\" size=\"1\" style=\"margin:40pt; margin-top:0pt; margin-bottom:0pt\">\n";
 
echo "<div class=\"smalltext\"><p align=\"justify\" style=\"margin:40pt; margin-top:0pt; margin-bottom:0pt\">\n";
echo"$zeit Uhr<br>\n";
echo "<br><img src=\"img/gb_person.gif\" width=\"12\" height=\"12\" border=\"0\" vspace=\"0\" >&nbsp;$name<br>\n";
if ($email!="") {
echo "<img src=\"img/gb_email.gif\" width=\"12\" height=\"12\" border=\"0\" vspace=\"0\" >&nbsp;<a href=\"mailto:$email\">$email</a><br>\n";
}
if ($hpage!="") {
echo "<img src=\"img/gb_home.gif\" width=\"12\" height=\"12\" border=\"0\" vspace=\"0\" >&nbsp;<a href=\"$hpage\" target=\"blank\">$hpage</a><br>\n";
}
echo "<br><p align=\"justify\" style=\"margin:40pt; margin-top:0pt; margin-bottom:0pt\">$text</p>";
echo "</p>\n";
 
 
	}
}
echo "<br><br>";
 
 
 
// Hier die Links auf die anderen Seiten anzeigen:
for ($i=1; $i<=seitenanzahl(); $i++) {
	if ($i==1) {
		$anzeige=" 1 |";
	}
	if($i>1 && $i<seitenanzahl()) {
		$anzeige=" | ".$i." |";
	}
	if ($i == seitenanzahl()) {
		$anzeige=" | ".$i." ";
	}
	if ($i != $a_seite) {
		echo "<a href='".$PHP_SELF."?seite=".$i."' style=\"text-decoration: none;\">".$anzeige."</a>";
	}
	else {
		echo $anzeige;
	}
}


und hier ist dann das gesamt Skript, wobei der gerade eben genannte Code lediglich in die Funktion gaestebuch_zeigen() eingebaut wurde!

sieht dann so aus:

PHP:
##### Admin-Passwort #####
$adminpasswort="admin";
##### Ihre Email-Adresse - UNBEDINGT ÄNDERN! #####
$myemail="info@meineDomain.de";
##### Soll bei jedem Eintrag eine Mail an Sie geschickt werden (ja/nein)? #####
$email_senden="nein";
########### HAUPTPROGRAMM ###########
if ($eintrag) { eintrag(); }
else if ($senden) { auswertung($kommentar,$nname,$hpage,$email); }
else if ($admin_login) { admin_login(); }
else if ($admin) { admin($passwort); }
else if ($loeschen) { loeschen($to_delete); }
else gaestebuch_zeigen();
########### FUNKTIONEN ###########
function gaestebuch_zeigen ()
{
global $PHP_SELF;
echo "<div class=\"ueberschrift\"><p style=\"margin:40pt; margin-top:0pt; margin-bottom:0pt\">meineDomain.de Gästebuch</p></div>";
echo <<<FORMULAR
<center>
<FORM METHOD="POST" ACTION="$PHP_SELF">
<INPUT class="input" TYPE="SUBMIT" NAME="eintrag" VALUE="Neuer Eintrag">
</FORM>
</center>
FORMULAR;
// Funktion, um das Array umzudrehen:
function reverse($array) {
	$neuarray=array();
	for($i=count($array)-1; $i >= 0; $i--) {
		$neuarray[]=$array[$i];
	}
	return $neuarray;
}
// Konfiguration:
$daten=file("gbuch.txt"); // Hier deine Datei angeben !
$je_seite=2;
$daten=reverse($daten);
// Anzahl der Eintäge im Array:
$anzahl=count($daten);
// Die Anzahl der Seiten berechnen:
function seitenanzahl() {
	global $daten, $je_seite, $anzahl;
	$seitenzahl=ceil($anzahl/$je_seite);
	return $seitenzahl;
}
// Aktuelle Seite:
if($_GET["seite"]>0 && $_GET["seite"] <= seitenanzahl() && is_numeric($_GET["seite"])) {
	$a_seite=$_GET["seite"];
}
else {
	$a_seite=1;
}
// Die Einträge berechnen, die auf der aktuellen Seite stehen:
$anfang_eintraege=($a_seite*$je_seite)-$je_seite+1;
$ende_eintraege=$a_seite*$je_seite;
 
// Schleife, um die Einträge der aktuellen Seiten anzuzeigen (Als Array-Index):
for ($i=$anfang_eintraege; $i<=$ende_eintraege; $i++) {
	if($i <= $anzahl) {
	 // echo $daten[($i-1)]."<br>"; // Hier kannst du irgendwas mit dem aktuellen Eintrag machen, also auch exploden !
 
$teil=explode("|",$daten[($i-1)]);
 
$sekunden=$teil[0];
$zeit=$teil[1];
$name=$teil[2];
$email=$teil[3];
$hpage=$teil[4];
$text=$teil[5];
echo"<hr width=\"100%\" color=\"#CCCCCC\" size=\"1\" style=\"margin:40pt; margin-top:0pt; margin-bottom:0pt\">\n";
 
echo "<div class=\"smalltext\"><p align=\"justify\" style=\"margin:40pt; margin-top:0pt; margin-bottom:0pt\">\n";
echo"$zeit Uhr<br>\n";
echo "<br><img src=\"img/gb_person.gif\" width=\"12\" height=\"12\" border=\"0\" vspace=\"0\" >&nbsp;$name<br>\n";
if ($email!="") {
echo "<img src=\"img/gb_email.gif\" width=\"12\" height=\"12\" border=\"0\" vspace=\"0\" >&nbsp;<a href=\"mailto:$email\">$email</a><br>\n";
}
if ($hpage!="") {
echo "<img src=\"img/gb_home.gif\" width=\"12\" height=\"12\" border=\"0\" vspace=\"0\" >&nbsp;<a href=\"$hpage\" target=\"blank\">$hpage</a><br>\n";
}
echo "<br><p align=\"justify\" style=\"margin:40pt; margin-top:0pt; margin-bottom:0pt\">$text</p>";
echo "</p>\n";
 
 
	}
}
echo "<br><br>";
 
 
 
// Hier die Links auf die anderen Seiten anzeigen:
for ($i=1; $i<=seitenanzahl(); $i++) {
	if ($i==1) {
		$anzeige=" 1 |";
	}
	if($i>1 && $i<seitenanzahl()) {
		$anzeige=" | ".$i." |";
	}
	if ($i == seitenanzahl()) {
		$anzeige=" | ".$i." ";
	}
	if ($i != $a_seite) {
		echo "<a href='".$PHP_SELF."?seite=".$i."' style=\"text-decoration: none;\">".$anzeige."</a>";
	}
	else {
		echo $anzeige;
	}
}
}
 
############################
echo "<p align=\"right\"><a href=\"$PHP_SELF?admin_login=true\">Admin</a></div>\n";
 
function eintrag()
{
global $PHP_SELF;
$ua=getenv("HTTP_USER_AGENT");
if (1*strpos(strtolower($ua),"msie")>0) {
$breite1=38;
$breite2=62;
} else {
$breite1=22;
$breite2=30;
}
echo <<<EINTRAG
<p align="right" class="ueberschrift"><a href="$PHP_SELF">zum Gästebuch</a></p>
<table cellpadding="5" cellspacing="5" width="100%">
<tr>
<td align="center">
<div class="ueberschrift">Eintrag ins Gästebuch</div><p>
<FORM action="$PHP_SELF" method="post">
<table width="310">
<tr>
<td class="smalltext">
Name:
</td>
<td>
<input class="input" type="text" name="nname" size="$breite1" maxlength="40" VALUE="$nname">
</td>
</tr>
<tr>
<td class="smalltext">
E-Mail:*
</td>
<td>
<input class="input" type="text" name="email" size="$breite1" VALUE="$email">
</td>
</tr>
<tr>
<td width="33%" class="smalltext">
Homepage:*
</td>
<td>
<input class="input" type="text" name="hpage" size="$breite1" VALUE="$hpage">
</td>
</tr>
<tr>
<td colspan="2">
<div class="smalltext">Kommentar:<br></div>
<textarea class="input" name="kommentar" rows="6" cols="$breite2" VALUE="$kommentar"></textarea>
</td>
<td>
&nbsp;
</td>
</tr>
<tr>
<td colspan="2">
<input class="input" type="submit" name="senden" value="eintragen">&nbsp;
<INPUT class="input" TYPE="reset" VALUE=" löschen ">
</td>
<td>
</td>
</tr>
<tr>
<td class="smalltext">
<br>* optional
</td>
</tr>
</table>
</FORM>
</td></tr></table>
EINTRAG;
}
function auswertung ($kommentar,$nname,$hpage,$email)
{
global $PHP_SELF;
global $myemail;
global $email_senden;
echo "<p align=\"right\" class=\"ueberschrift\"><a href=\"$PHP_SELF\">zum Gästebuch</a></p>\n";
####### Die Angaben werden von überflüssigen Zeichen befreit #######
$kommentar = stripslashes ($kommentar);
$kommentar = trim ($kommentar);
$nname = stripslashes ($nname);
$nname = trim ($nname);
$hpage = stripslashes ($hpage);
$hpage = trim ($hpage);
$email = stripslashes ($email);
$email = trim ($email);
####### Das Datum und die Zeit wird ermittelt #######
$tag=date("d.");
$m=array("Januar","Februar","M&auml;rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
$monat=$m[1*date("m")-1];
$jahr=date("Y");
$tdw=array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag",);
$x=date("w");
$zeit=date("H:i:s");
$anm=$tdw[$x].",&nbsp;".$tag."&nbsp;".$monat."&nbsp;".$jahr."&nbsp;-&nbsp;".$zeit;
$sekunden=date("U");
####### Definition der Fehlermeldung #######
$zurueck="Klicken Sie <a href=\"javascript:history.back()\"><b>hier</b></a>, um zum Formular zurückzukehren und die Fehler zu beheben.</center>";
####### Überprüfunge auf Fehler #######
if ((empty($kommentar)) || ((!ereg(".+@.+\..+", $email)) && (!empty($email))) || (empty($nname))) {echo "<center><br><br><br><div class=\"fehler\">Fehler !</div><br><br>";}
### Kommentar ###
if (empty($kommentar))
{ echo "<div class=\"smalltext\">Sie haben keinen Kommentar eingegeben.<br><br>"; echo "$zurueck\n"; }
### Email ###
else
if(!ereg(".+@.+\..+", $email)&& !empty($email)) {
echo "<div class=\"smalltext\">Die E-Mail Adresse ist falsch.<br><br>"; echo "$zurueck\n"; }
### Name ###
else
if (empty($nname))
{ echo "<div class=\"smalltext\">Sie haben Ihren Namen nicht eingegeben.<br><br>"; echo "$zurueck\n</div>"; }
####### Alles in Ordnung #######
else {
####### Daten werden gespeichert #######
$komm=ereg_replace(chr(10),"<br>",$kommentar);
if (!file_exists("gbuch.txt")) { $datei=fopen("gbuch.txt","w"); fclose($datei); }
$gbfile=fopen("gbuch.txt","a");
fputs($gbfile,"$sekunden|$anm|$nname|$email|$hpage|$komm\n");
fclose($gbfile);
####### FALLS $email_senden="ja", WIRD EINE EMAIL AN $myemail GESENDET #######
if ($email_senden=="ja")
{
$subject = "Eintrag";
$header = "From: Gästebuch <$myemail>\n";
$nachricht="Zeit - $anm\nName - $nname\nEmail - $email\nText - $komm";
mail($myemail,$subject,$nachricht,$header);
}
echo "<center><br><br><br><div class=\"smalltext\"><b>Die Daten wurden erfolgreich eingetragen.</b></div><br><br><br>\n";
echo "<a href=\"$PHP_SELF\"><div class=\"smalltext\">Gästebuch erneut anschauen</a></div></center>";
}
}
function admin_login()
{
global $PHP_SELF;
echo <<<ADMINFORMULAR
<p align="right" class="smalltext"><a href="$PHP_SELF">zum Gästebuch</a></p>
<center><br><br>
<form action="$PHP_SELF?admin=true" method="post">
<div class="smalltext">Passwort:</div>
<input class="input" type="password" name="passwort" size="20" maxlength="30">
<input class="input" type="submit" name="admin" value=" login ">
</form>
</center>
ADMINFORMULAR;
}
function admin($passwort)
{
global $PHP_SELF;
global $adminpasswort;
echo "<p align=\"right\" class=\"smalltext\"><a href=\"$PHP_SELF\">zum Gästebuch</a></p>\n";
if ($passwort==$adminpasswort)
{
echo "<form action=\"$PHP_SELF\" method=\"post\">";
echo "<table cellpadding=\"5\" cellspacing=\"5\" width=\"100%\">";
$eintrag=array();
$lesen=array();
$teil=array();
if (file_exists("gbuch.txt"))
{
$datei=fopen("gbuch.txt","r");
while (!feof($datei))
{
$lesen=fgets($datei,100000);
array_push($eintrag,$lesen);
}
array_pop($eintrag);
rsort($eintrag);
foreach ($eintrag as $zeile)
{
$teil=explode("|",$zeile);
$sekunden=$teil[0];
$zeit=$teil[1];
$name=$teil[2];
$email=$teil[3];
$hpage=$teil[4];
$text=$teil[5];
$time=ereg_replace("&nbsp;","",$zeit);
$time=ereg_replace(" ","",$time);
echo "<tr><td width=\"50\" align=\"right\" valign=\"top\">";
echo "<input type=\"radio\" name=\"to_delete\" value=\"$sekunden\"><br>";
echo "</td><td class=\"smalltext\">";
echo"Zeit: $zeit<br>";
echo "Name: $name<br>";
echo "Email: $email<br>";
echo "Homepage: $hpage<br>";
echo "Kommentar: $text<br><br>";
echo "</td></tr>";
}
echo "<tr><td></td><td align=\"left\">";
echo "<input class=\"input\" type=\"submit\" name=\"loeschen\" value=\"den markierten Eintrag löschen\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
echo "<input class=\"input\" type=\"reset\" value=\"abbrechen\"></td></tr>";
echo "</table></form>";
}
}
else
{
echo "<center><div class=\"fehler\"><br><br><br><br>Falsches Passwort!</div>\n";
echo "<p class=\"smalltext\" align=\center\"><a href=\"$PHP_SELF?admin_login=true\">zum Login</a><center>\n";
}
}
function loeschen($to_delete)
{
global $PHP_SELF;
global $adminpasswort;
$zeile=array();
$tosave=array();
$to_delete=ereg_replace("&nbsp;","",$to_delete);
$to_delete=ereg_replace(" ","",$to_delete);
$datei=fopen("gbuch.txt","r");
while (!feof($datei))
{
$zeile=fgets($datei,100000);
$teil=explode("|",$zeile);
$datum=ereg_replace("&nbsp;","",$teil[0]);
$datum=ereg_replace(" ","",$datum);
if ($datum!=$to_delete) { array_push($tosave,$zeile); }
}
fclose($datei);
$datei=fopen("gbuch.txt","w");
foreach ($tosave as $x)
{
fputs($datei,"$x");
}
fclose($datei);
echo <<<FORMULAR
<p align="right"><a href="$PHP_SELF">zum Gästebuch</a></p>
<center>
<div class="fehler">Der Eintrag wurde gelöscht</div><br><br><br>
<div class="smalltext"><a href="$PHP_SELF">zum Gästebuch</a></div><br><br><br>
<form action="$PHP_SELF" method="post">
<input type="hidden" name="passwort" value="$adminpasswort">
<input class="input" type="submit" name="admin" value="zurück zur Administration">
</form>
</center>
FORMULAR;
}

Grüße
 
Zuletzt bearbeitet:
Zurück