Gästebuch mit AdministrationsfunktionForum » Tutorials » Help » Gästebuch mit Administrationsfunktion
-
03.02.2013 um 14:36 Uhr
Hallo zusammen :-)
Ich habe ein Problem beim Anwenden des Tutorials "Gstebuch mit Administrationsfunktion", zu dem ich auch kurz unter "Ask Alice" eine Frage hinterlassen habe. Natrlich habe ich erst nach dem Absenden gesehen, dass solches nicht dahingehrt! Entschuldigung deswegen!
Die Anpassung des Gstebuchs an das Design etc. hat wunderbar funktioniert. Die Ausfhrungen in phpMyAdmin sind auch in Ordnung, habe diese nochmals nachgeprft. Meine Probleme sind nun:
In der berarbeiteten Version:
- Name des Eintragserstellers und der Text sind nicht zu sehen
- Der Administrantionslink erscheint nicht, bzw. es lsst sich keine Verbindung zwischen "admin.php" und "gb.php" herstellen
In der erstangefhrten Version:
- Name des Eintragserstellers und der Text sind nicht zu sehen (weder im ffentlichen, noch im administrativen Bereich)
Ich habe bei mir festgestellt, dass eine einzige Datei (alle Funktionen etc. in einer Datei) besser funktionieren. Mit der "Include"-Funktion habe ich eigentlich immer Probleme, obwohl ich eigentlich nichts falsch mache (Zumindest nicht nach Anweisungen im Internet).
"header.php" und "footer.php" in "gb.php" mit einzubinden ist absolut kein Problem. Ich habe dann schonmal versucht, die "admin.php" in "gb.php" einzubinden, mit :
<a href="gb.php?action=gbadmin">Admin</a>
echo "<a href=\"".$pfad."?action=gbadmin\">Admin</a><br />\n";
und auch mit
<?php include("admin.php"); ?>
Nichts davon hat funktioniert. Ebenso schaffe ich es nicht, wenigstens bei dem Link das Passwort-Fenster zu ffnen. Versucht habe ich es mit
<?php # Wenn auf den Admin-Link gecklickt wird, wird hier das Login-Feld erzeugt if ($action == "gbadmin"){?>
Aber hier werden immer Fehler angezeigt. Auf die "<? php" und "?>" achte ich immer. Theoretisch kann da nichts falsch sein. Auch nicht im Vergleich zur "Erstausgabe des Scripts".
Nach der Antwort unter "Ask me" habe ich nun nochmal alles neu gedownloaded und neu eingefgt und die DB berprft.
Bei mir sieht das Ganze dann so aus:
niora.pf-control.de/gb.php
Ich habe auch 2 Test-Beitrge gemacht. Hier kann man sehen, welches Problem ich beschreibe.
Was kann man da jetzt machen?
Freue mich ber schnelle Antwort :-)
Liebe Gre
Naomi
-
03.02.2013 um 15:30 Uhr
Das Gaestebuch funktioniert auf deiner Testseite,
ich konnte problemlos einen Eintrag taetigen, dieser wird auch vollstaendig angezeigt o.0
... { signatur } ... -
03.02.2013 um 15:50 Uhr
Ich kann deinen Eintrag auch problemlos sehen, aber meine weiterhin nicht. Siehst du denn den Aministrationsbereich? (Den Link + Passwortaufforderung?)
Welchen Browser benutzt du?
-
03.02.2013 um 16:05 Uhr
Uhm, hast du die gb.php - die testseite - so belassen, wie du sie herunter geladen hattest, oder hast du da jetzt schon was umgebaut dran?
Denn wenn man sich den Quellcode anschaut, wird eine Fehlermeldung ausgegeben.
Fatal error: Cannot redeclare smileys() (previously declared in /var/customers/webs/niora/gb.php:29) in /var/customers/webs/niora/footer.php on line 39
... { signatur } ... -
03.02.2013 um 16:15 Uhr
Gendert habe ich gerade nur "header.php" und "footer.php", um das ganze ans Design anzupassen. (gb.php ist also noch im Original! - abgesehen von den DB Daten)
Bekommen habe ich bisher keinen Fatal Error.
Wie bekomme ich denn jetzt am Besten den Link "Admin" unter das Ganze?
-
03.02.2013 um 16:25 Uhr
Den Error hast du ebenfalls, dazu musst du dir allerdings den Quelltext schauen, damit du den siehst!
Postet doch mal bitte deine Aenderungen,
denn bei den Original Dateien tritt dieser Fehler nicht auf, so dass du den demnach selbst verursacht haben musst,
mit deinen Anpassungen.
Da ich nicht weiss, was genau du wo wie geaendert hast, kann ich dir schlecht helfen... { signatur } ... -
03.02.2013 um 16:35 Uhr
Also auch im Quellcode sehe ich keinen Error..
Hier die Scripte: (Passwort fr die DB un den Adminbereich rausgenommen)
gb.php
<?php session_start(); // ---------------------------- # Konfiguration # ----------------------------------------------------- $db_host = "localhost"; # Der Datenbank-Host $db_user = "niorasql2"; # Der Datenbank-Benutzer $db_password = ""; # Das Passwort fr die Datenbank $db_name = "niorasql2"; # Der Datenbank-Name $conn = mysql_connect($db_host,$db_user,$db_password) or die (mysql_error()); mysql_select_db($db_name, $conn) or die (mysql_error()); $mailinfo = "ja"; // email-benachrichtigung bei Eintrag ? ja oder nein $webmaster = "naomi.oelker@gmail.com"; // wenn bei mailinfo ja steht, dann hier eure email Adresse eintragen $datensaetze_pro_seite = "10"; // Anzahl der Datensaetze die Pro Seite angezeigt werden sollen $p = "3"; // Anzahl der Links die in der Seitenavigation ausgegeben werden $pfad = $_SERVER['PHP_SELF']; // aktuellen Dateipfad ermitteln, wichtig fuer die Links der Seitennavigation $datum = date("d.m.Y"); // Das aktuelle Datum fr den Eintrag wird hier erstellt $zeit = date("H:i"); // Die aktuelle Zeit fr den Eintrag wird hier erstellt // ---------------------------------------------------------------------------------------------------- $action = isset($_GET['action']) ? ($_GET['action']) : ""; include('header.php'); function smileys($msg){ // Smileys ersetzen $msg = str_replace(":P","<img src=\"smileys/000.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); $msg = str_replace(":)","<img src=\"smileys/001.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); $msg = str_replace(";)","<img src=\"smileys/002.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); $msg = str_replace(":(","<img src=\"smileys/003.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); $msg = str_replace("*grr*","<img src=\"smileys/004.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); $msg = str_replace("0.o","<img src=\"smileys/005.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); $msg = str_replace("*_*","<img src=\"smileys/006.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); $msg = str_replace("._.","<img src=\"smileys/007.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); $msg = str_replace("-.-","<img src=\"smileys/008.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); $msg = str_replace(":D","<img src=\"smileys/009.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); return $msg; } echo "<a href=\"".$pfad."?action=eintragen\">Ins Gstebuch eintragen</a><br />\n"; # Wenn der Link zum Eintragen ins GB geklickt wird, wird das Formular zum eintragen angezeigt if($action == "eintragen") { if (isset($_POST['los'])){ # wenn auf Abschicken geklickt wurde #--- Eingaben prfen und ersetzen ---# $name = mysql_real_escape_string($_POST['name']); $email = mysql_real_escape_string($_POST['email']); $hp = mysql_real_escape_string($_POST['hp']); $msg = mysql_real_escape_string($_POST['msg']); $spam = mysql_real_escape_string($_POST['spam']); # Wenn Feld Name und Nachricht nicht leer sind, und Spamfrage eichtig beantwortet wurde, dann speichern... if ($name != "" && $msg != "" && $spam == "7") { # Wenn Feld Homepage nicht leer if ($hp != ""){ # Hier wird geprft ob die homepage mit oder ohne http:// eingegeben wurde. if (strtolower(substr($hp, 0, 7)) == "http://"){ # Wenn ja, Feld so wie ist abspeichern $hp = "$hp"; }else { # Wenn nicht, soll er das "http://" manuell hinzufgen $hp = "http://$hp"; } } $ip = $_SERVER['REMOTE_ADDR']; # IP-Adresse ermitteln $msg = trim($msg); # --- Und hier speichern wir in die Datenbank --- # $eintragen = mysql_query ("INSERT INTO gb (id, name, email, hp, msg, ip, date, time) VALUES ('', '$name', '$email', '$hp', '$msg', '$ip', '$datum', '$zeit')"); if($eintragen){ # Wenn oben bei mailinfo ja gewhlt wurde, wird nach dem speichern eine email geschickt! if ($mailinfo == "ja"){ # Betreffzeile fr die EMail $betreff = "GB Eintrag"; # Name und Nachricht des Eintrages fr die Mail $body = "Es gibt einen neuen Eintrag im GB:\nName: $name Nachricht: $msg"; # Hier wird die Mail versendet und zusammengesetzt mail("$webmaster","$betreff","$body\n"); } echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$pfad."\">"; // Weiterleitung }else{ echo 'Fehler beim Eintragen...';} }else{ # wenn nicht alle Pflichtfelder ausgefuellt wurden echo '<p class="error">Bitte alle mit * gekennzeichneten Felder ausfüllen!</p>'; } } // close submit ?> <p> <form action="" method="post" id="form" name="form"> <fieldset> <input type="text" name="name" size="25" /> <label for="name">Name</label>* <br /> <input type="text" name="email" size="25" /> <label for="email">E-Mail</label> *<br /> <input type="text" name="hp" size="25" /> <label for="website">Homepage</label><br /> <p> <a href="javascript:insert(':P','')"><img border="0" src="smileys/000.gif" width="15" height="14" /></a> <a href="javascript:insert(':)','')"><img border="0" src="smileys/001.gif" width="15" height="14" /></a> <a href="javascript:insert(';)','')"><img border="0" src="smileys/002.gif" width="15" height="14" /></a> <a href="javascript:insert(':(','')"><img border="0" src="smileys/003.gif" width="15" height="14" /></a> <a href="javascript:insert('*grr*','')"><img border="0" src="smileys/004.gif" width="15" height="14" /></a> <a href="javascript:insert('O.o','')"><img border="0" src="smileys/005.gif" width="15" height="14" /></a> <a href="javascript:insert('*_*','')"><img border="0" src="smileys/006.gif" width="15" height="14" /></a> <a href="javascript:insert('._.','')"><img border="0" src="smileys/007.gif" width="15" height="14" /></a> <a href="javascript:insert('-.-','')"><img border="0" src="smileys/008.gif" width="15" height="14" /></a> <a href="javascript:insert(':D','')"><img border="0" src="smileys/009.gif" width="15" height="14" /></a> </p> <textarea cols="65" rows="8" value="msg" name="msg"></textarea> <p>Spamschutzfrage *<br /> <b>Die Summe aus 3+4 =</b> <input size="5" name="spam" type="text" class="small" /> </p> <input type="submit" value=" Abschicken " name="los" /> <p><small>mit * gekennzeichnete Felder mssen ausgefllt werden</small></p> </fieldset> </form> <?php } // close reintragen #--- Datenbank auslesen und anzuzeigende Seiten festlegen ---# $abfrage = mysql_query("SELECT id FROM gb"); // DB Abfrage -> Anzahl aller Eintraege feststellen $total = mysql_num_rows($abfrage); // Anzahl aller Eintraege feststellen $seiten = ceil($total/$datensaetze_pro_seite); // Berechnet die Seitenanzahl insgesamt if(empty($_GET['seite'])){ // korrigieren der aktuellen Seite $go = 1; // Sofern $go nicht uebergeben wurde }elseif($_GET['seite'] <= 0 || $_GET['seite'] > $seiten){ $go = 1; // Variable definieren }else{ // Wenn Obiges nicht zutraf $go = mysql_real_escape_string($_GET['seite']); // Variable definieren } $links = array(); // Linkkette bilden // Seite die vor der aktuellen Seite kommt definieren if(($go - $p) < 1){ $davor = $go - 1; }else { $davor = $p; } // Seite die nach der aktuellen Seite kommt definieren if(($go + $p) > $seiten){ $danach = $seiten - $go; }else{ $danach = $p; } $off = ($go - $davor); // Variable definieren if ($go- $davor > 1){ // Link definieren => Zur Erste Seite springen $first = 1; $links[] = "<a href=\"$pfad?seite=$first\" title=\"Zur ersten Seite springen\">« Erste ...</a>\n"; } if($go != 1){ // Link definieren => eine Seite zurueck blaettern $prev = $go-1; $links[] = "<a href=\"$pfad?seite=$prev\" title=\"Eine Seite zurueck blaettern\">«</a>\n"; } for($i = $off; $i <= ($go + $danach); $i++){ // einzelne Seitenlinks erzeugen if ($i != $go){ // Link definieren $links[] = "<a href=\"$pfad?seite=$i\">$i</a>\n"; }elseif($i == $seiten) { // aktuelle Seite, ein Link ist nicht erforderlich $links[] = "<span class=\"current\">$i</span>\n"; }elseif($i == $go){ // aktuelle Seite, ein Link ist nicht erforderlich $links[] = "<span class=\"current\">$i</span>\n"; } // close if $i } if($go != $seiten){ // Link definieren => eine Seite weiter blaettern $next = $go+1; $links[] = "<a href=\"$pfad?seite=$next\" title=\"Eine Seite weiter blaettern\">»</a>\n"; } if($seiten - $go - $p > 0 ){ // Link definieren => Zur letzen Seite springen $last = $seiten; $links[] = "<a href=\"$pfad?seite=$last\" title=\"Zur letzten Seite springen\">... Letzte »</a>\n"; } $start = ($go-1) * $datensaetze_pro_seite; // Berechne den Startwert fuer die DB $link_string = implode(" ", $links); // Zusammenfuegen der einzelnen Links zu einem String // Anzahl aller Eintraege ausgeben echo "<p>Es sind <strong>$total</strong> Einträge im Gästebuch vorhanden</p>"; // Daten aus DB holen $result = mysql_query("SELECT id, name, hp, msg, date, time, kommentar FROM gb ORDER BY id DESC LIMIT $start,$datensaetze_pro_seite"); while($row = mysql_fetch_object($result)) { # Hier wird schadhafter Code und bse Zeichen ausgemustert $text = htmlspecialchars($row->msg, ENT_QUOTES); // HTML Zeichen umwandeln $text = wordwrap($text, 40, ' ', 1); // zu lange Woerter teilen $text = stripslashes(nl2br($text)); // Zeilenumbrueche umwandeln #---------- Eintraege ausgeben -------------------------# echo "<div class=\"post\">\n"; echo "<div class=\"titel\">\n"; if(!empty($row->hp)){ // sofern WEbsite angegeben echo "<a target=\"blank\" href=\"".htmlspecialchars($row->hp)."\"> ".htmlspecialchars($row->name)." </a>"; }else{ echo htmlspecialchars($row->name); } echo " schrieb am ".$row->date." um ".$row->time." Uhr\n"; echo "</div>\n"; echo "<p>".smileys($text)."</p>\n"; if($row->kommentar != "") { // Admin Kommentar ausgeben echo"<div class='kommentar'>Kommentar:<br /> \n <span>".smileys(htmlspecialchars(stripslashes($row->kommentar)))."</span>\n </div>\n"; } echo "</div>\n <br />\n"; } #--------------- ENDE AUSGABE ---------------# // -------------------------------------- Seitennavigation ausgeben ---------------------------- echo "<div id=\"navigation\">\n"; echo "<span class=\"pages\">Seite $go von $seiten</span>\n"; echo $link_string; // Ausgabe der Seitennavigation echo "</div> \n"; // -------------------------------------- Seitennavigation ende -------------------------------- # Datenbankverbindung schlieen. mysql_close(); include('footer.php'); // Footer einbinden ?>
admin.php
<?php session_start(); // ---------------------------- # Konfiguration # ----------------------------------------------------- $db_host = "localhost"; # Der Datenbank-Host $db_user = "niorasql2"; # Der Datenbank-Benutzer $db_password = ""; # Das Passwort fr die Datenbank $db_name = "niorasql2"; # Der Datenbank-Name $conn = mysql_connect($db_host,$db_user,$db_password) or die (mysql_error()); mysql_select_db($db_name, $conn) or die (mysql_error()); $passwort = ""; # Das Passwort fr den Admin $datensaetze_pro_seite = "10"; // Anzahl der Datensaetze die Pro Seite angezeigt werden sollen $p = "3"; // Anzahl der Links die in der Seitenavigation ausgegeben werden $pfad = $_SERVER['PHP_SELF']; // aktuellen Dateipfad ermitteln, wichtig fuer die Links der Seitennavigation $datum = date("d.m.Y"); // Das aktuelle Datum fr den Eintrag wird hier erstellt $zeit = date("H:i"); // Die aktuelle Zeit fr den Eintrag wird hier erstellt // ---------------------------------------------------------------------------------------------------- $action = isset($_GET['action']) ? ($_GET['action']) : ""; function smileys($msg){ // Smileys ersetzen $msg = str_replace(":P","<img src=\"smileys/000.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); $msg = str_replace(":)","<img src=\"smileys/001.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); $msg = str_replace(";)","<img src=\"smileys/002.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); $msg = str_replace(":(","<img src=\"smileys/003.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); $msg = str_replace("*grr*","<img src=\"smileys/004.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); $msg = str_replace("0.o","<img src=\"smileys/005.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); $msg = str_replace("*_*","<img src=\"smileys/006.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); $msg = str_replace("._.","<img src=\"smileys/007.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); $msg = str_replace("-.-","<img src=\"smileys/008.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); $msg = str_replace(":D","<img src=\"smileys/009.gif\" width=\"15\" height=\"14\" border=\"0\">",$msg); return $msg; } // ------------------------------ Admin-Bereich ------------------------------------------ // # Wenn auf den Logout Link gecklickt wird, wird hier die Session gelscht if ($action == "logout"){ session_destroy(); header("refresh:0;url=$pfad"); } $rang = $_SESSION['rang']; $pass = strip_tags($_POST['password']); # Wenn das Admin-Passwort falsch eingegeben wurde erscheint eine Fehlermeldung if (isset($_POST['submit']) && $pass != $passwort){ echo "Falsches Passwort!"; } # Wenn das Passwort richtig war, wird der Admin-Rang auf 1 gesetzt und die Session gestartet else if (isset($_POST['submit']) && $pass == $passwort){ $_SESSION['rang'] = "1"; header("refresh:0;url=$pfad"); } include('header.php'); if($rang !=1){ // login Formular anzeigen, wenn nicht eingeloggt ?> <p> <form action="" method="post"> <fieldset> <strong>Passwort:</strong> <input name="password" type="password" /> <input type="submit" name="submit" value="login" class="small" /> </fieldset> </form> <?php }else{ // Wenn eingeloggt ... $id = mysql_real_escape_string($_GET['id']); if ($action == "delete" && $rang == 1) { $loeschen = mysql_query ("DELETE FROM gb WHERE id='$id'"); echo "<p>Eintrag erfolgreich geloescht ...</p>"; } if($action == "kommentieren") { if(isset($_POST['speichern'])){ $kommentar = mysql_real_escape_string($_POST['msg']); # Und hier wird dann der Kommentar zu dem GB Eintrag in der DB gespeichert. $sql= "UPDATE gb SET kommentar = '$kommentar' WHERE id = '$id'"; mysql_query($sql) or die ("Das Schreiben ist gescheitert!"); echo "<meta http-equiv=\"refresh\" content=\"0; URL=admin.php\">"; // Weiterleitung } $abfrage = mysql_query("SELECT msg FROM gb WHERE id='$id'"); $row = mysql_fetch_object($abfrage); echo "<h3>Eintrag Nr. ".$id." kommentieren</h3>"; echo "<p>".stripslashes(nl2br(smileys($row->msg)))."</p>"; ?> <p> <form id="form" name="form" method="post" action=""> <fieldset> <label>Kommentar:</label> <div style="float: right; width: 36px;"><a href="javascript:insert(':P','')"><img border="0" src="smileys/000.gif" width="15" height="14" /></a> <a href="javascript:insert(':)','')"><img border="0" src="smileys/001.gif" width="15" height="14" /></a> <a href="javascript:insert(';)','')"><img border="0" src="smileys/002.gif" width="15" height="14" /></a> <a href="javascript:insert(':(','')"><img border="0" src="smileys/003.gif" width="15" height="14" /></a> <a href="javascript:insert('*grr*','')"><img border="0" src="smileys/004.gif" width="15" height="14" /></a> <a href="javascript:insert('0.o','')"><img border="0" src="smileys/005.gif" width="15" height="14" /></a> <a href="javascript:insert('*_*','')"><img border="0" src="smileys/006.gif" width="15" height="14" /></a> <a href="javascript:insert('._.','')"><img border="0" src="smileys/007.gif" width="15" height="14" /></a> <a href="javascript:insert('-.-','')"><img border="0" src="smileys/008.gif" width="15" height="14" /></a> <a href="javascript:insert(':D','')"><img border="0" src="smileys/009.gif" width="15" height="14" /></a></div> <textarea cols="55" rows="10" name="msg"></textarea><br /> <input type="submit" value="speichern" title="Kommentar speichern" name="speichern" /> </fieldset> </form> <?php }else{ // Wenn nicht kommentieren #--- Datenbank auslesen und anzuzeigende Seiten festlegen ---# $abfrage = mysql_query("SELECT id FROM gb"); // DB Abfrage -> Anzahl aller Eintraege feststellen $total = mysql_num_rows($abfrage); // Anzahl aller Eintraege feststellen $seiten = ceil($total/$datensaetze_pro_seite); // Berechnet die Seitenanzahl insgesamt if(empty($_GET['seite'])){ // korrigieren der aktuellen Seite $go = 1; // Sofern $go nicht uebergeben wurde }elseif($_GET['seite'] <= 0 || $_GET['seite'] > $seiten){ $go = 1; // Variable definieren }else{ // Wenn Obiges nicht zutraf $go = mysql_real_escape_string($_GET['seite']); // Variable definieren } $links = array(); // Linkkette bilden // Seite die vor der aktuellen Seite kommt definieren if(($go - $p) < 1){ $davor = $go - 1; }else { $davor = $p; } // Seite die nach der aktuellen Seite kommt definieren if(($go + $p) > $seiten){ $danach = $seiten - $go; }else{ $danach = $p; } $off = ($go - $davor); // Variable definieren if ($go- $davor > 1){ // Link definieren => Zur Erste Seite springen $first = 1; $links[] = "<a href=\"$pfad?seite=$first\" title=\"Zur ersten Seite springen\">« Erste ...</a>\n"; } if($go != 1){ // Link definieren => eine Seite zurueck blaettern $prev = $go-1; $links[] = "<a href=\"$pfad?seite=$prev\" title=\"Eine Seite zurueck blaettern\">«</a>\n"; } for($i = $off; $i <= ($go + $danach); $i++){ // einzelne Seitenlinks erzeugen if ($i != $go){ // Link definieren $links[] = "<a href=\"$pfad?seite=$i\">$i</a>\n"; }elseif($i == $seiten) { // aktuelle Seite, ein Link ist nicht erforderlich $links[] = "<span class=\"current\">$i</span>\n"; }elseif($i == $go){ // aktuelle Seite, ein Link ist nicht erforderlich $links[] = "<span class=\"current\">$i</span>\n"; } // close if $i } if($go != $seiten){ // Link definieren => eine Seite weiter blaettern $next = $go+1; $links[] = "<a href=\"$pfad?seite=$next\" title=\"Eine Seite weiter blaettern\">»</a>\n"; } if($seiten - $go - $p > 0 ){ // Link definieren => Zur letzen Seite springen $last = $seiten; $links[] = "<a href=\"$pfad?seite=$last\" title=\"Zur letzten Seite springen\">... Letzte »</a>\n"; } $start = ($go-1) * $datensaetze_pro_seite; // Berechne den Startwert fuer die DB $link_string = implode(" ", $links); // Zusammenfuegen der einzelnen Links zu einem String // Anzahl aller Eintraege ausgeben echo "<p>Es sind <strong>$total</strong> Einträge im Gästebuch vorhanden</p>"; echo "<p align=\"right\"><a href=\"".$pfad."?action=logout\">Logout</a></p>"; // Logout ausgeben // Daten aus DB holen $result = mysql_query("SELECT id, ip, name, hp, msg, date, time, kommentar FROM gb ORDER BY id DESC LIMIT $start,$datensaetze_pro_seite"); while($row = mysql_fetch_object($result)){ # Hier wird schadhafter Code und bse Zeichen ausgemustert $text = htmlspecialchars($row->msg, ENT_QUOTES); // HTML Zeichen umwandeln $text = wordwrap($text, 40, ' ', 1); // zu lange Woerter teilen $text = stripslashes(nl2br($text)); // Zeilenumbrueche umwandeln #---------- Eintraege ausgeben -------------------------# echo "<div class=\"post\">\n"; echo "<div class=\"titel\">\n"; if(!empty($row->hp)){ // sofern WEbsite angegeben echo "<a target=\"blank\" href=\"".htmlspecialchars($row->hp)."\"> ".htmlspecialchars($row->name)." </a>"; }else{ echo htmlspecialchars($row->name); } echo " schrieb am ".$row->date." um ".$row->time." Uhr\n"; echo "</div>\n"; echo "<p>".smileys($text)."</p>\n"; if($row->kommentar != "") { // Admin Kommentar ausgeben echo"<div class='kommentar'>Kommentar:<br /> \n <span>".smileys(htmlspecialchars(stripslashes($row->kommentar)))."</span>\n </div>\n"; } echo "<br />IP: ".$row->ip." | <a href=\"".$pfad."?action=delete&id=".$row->id."\">löschen</a> | <a href=\"".$pfad."?action=kommentieren&id=".$row->id."\">kommentieren</a>"; echo "</div>\n <br />\n"; } #--------------- ENDE AUSGABE ---------------# // -------------------------------------- Seitennavigation ausgeben ---------------------------- echo "<div id=\"navigation\">\n"; echo "<span class=\"pages\">Seite $go von $seiten</span>\n"; echo $link_string; // Ausgabe der Seitennavigation echo "</div> \n"; // -------------------------------------- Seitennavigation ende -------------------------------- } // close kommentieren } // close login # Datenbankverbindung schlieen. mysql_close(); include('footer.php'); // Footer einbinden ?>
header.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Naomi Joy-Farrell</title> <meta name="robots" content="index,follow" /> <meta name="language" content="de" /> <script type="text/javascript"> // Smilies function insert(was) { document.form.msg.value += was + " "; document.form.msg.focus(); } </script> <style type="text/css"> body { font: 100%/1.2 Verdana; font-size: 12px; background: #929769; margin: 0; padding: 0; color: #1f381a; background-repeat: no-repeat; } .navibuttonbackground{ display: block; font-family: Verdana; height: 17px; font-size: 12px; color: #49513b; background-image: url(http://img.webme.com/pic/n/neomii/kat_button05.jpg); font-weight: bold; text-align: center; background-repeat: no-repeat; } .ueberschrift{ display: block; font-family: Verdana; height: 17px; font-size: 12px; color: #e7f1b8; background-image: url(http://img.webme.com/pic/n/neomii/ueberschrift_natbutus03.jpg); background-repeat: no-repeat; text-decoration: bold; text-align: center; } ul, ol, dl { padding: 0; margin: 0; } h1, h2, h3, h4, h5, h6, p { margin-top: 0; padding-right: 15px; padding-left: 15px; } a img { border: none; } .guestbook{ width: 560px; margin: 0 auto; } .post{ border: 1px dotted #1f381a; background-image: url(http://img.webme.com/pic/n/neomii/bg_beitraege.jpg); padding: 5px; width: 95%; } .titel{ border-bottom: 1px dotted #1f381a; } .error{ font-weight: bold; color: #1f381a; } span{ font-style:italic; color: #1f381a; } a { color: #6d4109; text-decoration: none; } a:visited { color: #6d4109; text-decoration: none; } a:hover, a:active { color: #916a37; text-decoration: none; border-bottom: 1px dotted #916a37; } .container { width: 800px; height: 850px; background-image: url(http://img.webme.com/pic/n/neomii/natura_njf_003.jpg); margin: 0 auto; border: 1px dotted #1f381a; } .header { height: 190px; } .sidebar1 { float: left; width: 150px; padding-top: 10px; padding-bottom: 10px; } .content { padding: 10px 0; width: 580px; height: 615px; float: left; text-align: justify; overflow: auto; padding-top: 5px; padding-bottom: 10px; padding-left: 37px; padding-right: 2px; } .sidebar2 { float: left; width: 162px; padding-top: 45px; padding-bottom: 10px; padding-left: 8px; } .content ul, .content ol { padding: 0 15px 15px 40px; } ul.nav { list-style: none; } ul.nav li { height: 15px; weight: 162px; background-image: url(http://img.webme.com/pic/n/neomii/bn_natbutus01.jpg); border-bottom: 1px dotted #49513b; } ul.nav a, ul.nav a:visited { display: block; height: 15px; width: 162px; text-decoration: none; padding: 0px; margin: 2px; border-bottom: 1px dotted #49513b; color: #e7f1b8; } ul.nav a:hover, ul.nav a:active, ul.nav a:focus { background-image: url(http://img.webme.com/pic/n/neomii/bh_natbutus02.jpg); color: #c4d08e; } .footer { height: 25px; position: relative; clear: both; } .fltrt { float: right; margin-left: 8px; } .fltlft { float: left; margin-right: 8px; } .clearfloat { clear:both; height:0; font-size: 1px; line-height: 0px; } fieldset{ border: 1px solid #1f381a; background-image: url(http://img.webme.com/pic/n/neomii/bg_beitraege.jpg); margin: 5px 0px 20px; padding: 10px; width: 95%; } input, textarea{ font: normal 0.9em verdana, tahoma, 'sans-serif'; border: 1px solid #1f381a; background: #F5F5F5; margin: 0 0 2px; padding: 2px; } input{ width: 220px; } input.small{ width: 45px; } #navigation a { border: 1px dotted #1f381a; background: #FFF; margin: 0; padding: 4px 7px; font-weight: bold; text-decoration: none; } #navigation a:visited { font-weight: normal; text-decoration: none; } #navigation a:hover, #navigation a:active { border: 1px dotted #1f381a; text-decoration: none; } .current { border: 1px dotted #1f381a; background-image: url(http://img.webme.com/pic/n/neomii/bg_beitraege.jpg); padding: 4px 7px; color: #1f381a; } .pages{ font-style: normal; border: 1px dotted #1f381a; background-images: url(http://img.webme.com/pic/n/neomii/bg_beitraege.jpg); padding: 4px 7px; float: right; margin: -3px 0 0; } </style> </head> <body> <p> <p> <div class="container"> <div class="header"><center> <!-- end .header --></center></div> <div class="content"> <p class="ueberschrift">Gstebuch</p> <p>
footer.php
</div> <div class="sidebar2"> <center> <ul class="nav"> <li><a href="index.html">Home</a></li> <li><a href="news.html">Neuigkeiten</a></li> <li><a href="info.html">Info</a></li> <li><a href="zu_mir.html">Zu mir</a></li> <li><a href="banner.html">Banner</a></li> <li><a href="kontakt.html">Kontakt</a></li> <li><a href="gaestebuch.php">Gstebuch</a></li> <li><a href="links.html">Links</a></li><p> <li><img src="http://img.webme.com/pic/n/neomii/bg_dasbuch02.jpg"></li><p> <br> <li><a href="story.html">Buchtitel</a></li><br> <li><img src="http://img.webme.com/pic/n/neomii/bg_kreatives02.jpg"></li><p> <br> <li><a href="gedichte.html">Gedichte</a></li> <li><a href="diverses.html">Diverses</a></li> <p> <li><img src="http://img.webme.com/pic/n/neomii/bg_besucher02.jpg"></li><p> <br> </ul> <p> <p> <!-- end .sidebar2 --></center></div> <div class="footer"> <center> <p> <!-- end .footer --></center></div> <!-- end .container --></div> </body> </html>
Vielleicht findest du das Problem :/
-
03.02.2013 um 16:51 Uhr
schmunzel, du hast das Ganze ja jetzt geaendert, als ich vorhin meinen Testeintrag verfasst hatte,
sah das Ganze noch etwas anders aus ...
Der Fehler ist weg, stimmt ...
Die Daten, wie Name usw. deiner vorherigen GB-Eintraege, welche nicht angezeigt werden,
sind auch wirklich in der DB hinterlegt, nicht dass da nur leere Felder sind und da dann was beim Eintragen schon nicht geklappt hatte?
Wo soll denn der Admin-Link hin?
... { signatur } ... -
03.02.2013 um 16:56 Uhr
Ja, ich wechsle immer fters die Dateien aus, weil ich manche Dinge einfach zuerst ausprobieren muss und dann kommt es oft vor, dass jemand genau dann draufschaut, wenn die Dateien entweder noch nicht wieder auf dem FTP gelandet sind oder ein Test nicht funktioniert hat
Moment mal ... beim berprfen der DB ist mir was aufgefallen: Kann es sein, dass Beitrge nicht richtig angezeigt werden, wenn man eine ungltige E-Mail-Adresse angibt? Da das ja ein Pflichtfeld ist ... *grbel*
Dann wre das dasselbe Problem wie bei der Registrierung, dass ich Dummerchen mich vertippt habe *.*
Edit: Den Admin-Link htte ich gern, wie in den Screenshots am Ende der Beitrge
Der Beitrag wurde insgesamt 1 mal editiert, zuletzt 03.02.2013 um 16:58 Uhr ... -
03.02.2013 um 17:06 Uhr
Wie sieht denn der Inhalt der einzelnen Felder der von dir getaetigen GB-Eintrage in der DB aus?
Wenn keine gueltige Email adresse angegeben wurde, dann sollte das eigentlich keine Rolle spielen,
da steht zwar dran, dass die Emailadresse ein Pflichtfeld waere, ueberprueft wird allerdings nur,
ob ein Name und die Nachricht angegeben wurde und die Rechenaufgabe korrekt geloest wurde.
Wenn du willst, dass die EmailAdresse auch wirklich ein Pflichtfeld ist, musst du folgendes in der gb.php noch aendern:
if ($name != "" && $msg != "" && $spam == "7") {
ersetzten durch ...
if ($name != "" && $msg != "" && $email != "" && $spam == "7") {
... { signatur } ...