Hi Leute,
ich bin nun am verzweifeln. Ich bastel nun schon ne Ewigkeit an einem Gästebuch mit txt Datei und Blätterfunktion.
Hier ist der Code der für sich alleine so funktioniert:
Nun folgt aber der gesamte Code und dort habe ich folgendes Problem. Egal welche Seite man aufruft werden immer die gleichen Datensätze angezeigt. Ausserdem ist der Link für das "weiter" immer auf page=2.
Ich verstehe nun absolut nicht, wie es für sich alleine, zusammen mit den anderen Funktionen aber nicht funktioniert?
Es sei gesegnet wer mir helfen kann.
Grüße
Hier der komplette Code, wobei ich einfach nur den oberen Code zur Funktion gaestebuch_zeigen() hinzugefügt habe.
ich bin nun am verzweifeln. Ich bastel nun schon ne Ewigkeit an einem Gästebuch mit txt Datei und Blätterfunktion.
Hier ist der Code der für sich alleine so funktioniert:
PHP:
<?
$lines = file("gbuch.txt");
$total = count($lines);
$proseite = 3;
if (! isset($page)) // !isset wenn sie nicht gezetzt ist wird $page=1
{ $page = 1;}
$seiten = ceil($total / $proseite); //ceil rundet auf wir wollen ja alles anzeigen lassen )
for ($p = ($total - ($proseite*($page-1))); $p >= ($total - (($proseite*$page)-1)) ;$p--)
{
if (!isset($lines[$p-1])) {echo "";} //wenn in den Zeilen nichts steht wird nichts ausgegeben
else {
$zeile = $lines[$p-1];
list($sekunden,$zeit,$name,$email,$hpage,$text) = explode ("|", $zeile);
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\" > $name<br>\n";
if ($email!="") {
echo "<img src=\"img/gb_email.gif\" width=\"12\" height=\"12\" border=\"0\" vspace=\"0\" > <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\" > <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";
}
}
if ($page>1) {
$p=$page-1;
echo "<A HREF=\"$PHP_SELF?page=$p\"><zurück</A>";
}
for($p=1; $p<=$seiten; $p++) {
if ($p==$page) {
echo $p." ";
}
else {
echo "<A HREF=\"$PHP_SELF?page=$p\">$p</A> ";
}
}
if ($page<$seiten) {
$p=$page+1;
echo "<A HREF=\"$PHP_SELF?page=$p\">weiter></A>";
}
?>
Nun folgt aber der gesamte Code und dort habe ich folgendes Problem. Egal welche Seite man aufruft werden immer die gleichen Datensätze angezeigt. Ausserdem ist der Link für das "weiter" immer auf page=2.
Ich verstehe nun absolut nicht, wie es für sich alleine, zusammen mit den anderen Funktionen aber nicht funktioniert?
Es sei gesegnet wer mir helfen kann.
Grüße
Hier der komplette Code, wobei ich einfach nur den oberen Code zur Funktion gaestebuch_zeigen() hinzugefügt habe.
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;
$lines = file("gbuch.txt");
$total = count($lines);
$proseite = 3;
if (! isset($page)) // !isset wenn sie nicht gezetzt ist wird $page=1
{ $page = 1;}
$seiten = ceil($total / $proseite); //ceil rundet auf wir wollen ja alles anzeigen lassen )
for ($i = ($total - ($proseite*($page-1))); $i >= ($total - (($proseite*$page)-1)) ;$i--)
{
if (!isset($lines[$i-1])) {echo "";} //wenn in den Zeilen nichts steht wird nichts ausgegeben
else {
$zeile = $lines[$i-1];
list($sekunden,$zeit,$name,$email,$hpage,$text) = explode ("|", $zeile);
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\" > $name<br>\n";
if ($email!="") {
echo "<img src=\"img/gb_email.gif\" width=\"12\" height=\"12\" border=\"0\" vspace=\"0\" > <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\" > <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";
}
}
if ($page>1) {
$i=$page-1;
echo "<A HREF=\"$PHP_SELF?page=$i\"><zurück</A>";
}
for($i=1; $i<=$seiten; $i++) {
if ($i==$page) {
echo $i." ";
}
else {
echo "<A HREF=\"$PHP_SELF?page=$i\">$i</A> ";
}
}
if ($page<$seiten) {
$i=$page+1;
echo "<A HREF=\"$PHP_SELF?page=$i\">weiter></A>";
}
}
############################
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>
</td>
</tr>
<tr>
<td colspan="2">
<input class="input" type="submit" name="senden" value="eintragen">
<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ä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].", ".$tag." ".$monat." ".$jahr." - ".$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(" ","",$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\"> ";
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(" ","",$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(" ","",$teil[0]);
$datum=ereg_replace(" ","",$datum);
if ($datum!=$to_delete) { array_push($tosave,$zeile); }
}
fclose($datei);
$datei=fopen("gbuch.txt","w");
foreach ($tosave as $d)
{
fputs($datei,"$d");
}
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;
}
?>