| |
 |
|
|
|
 |
|
 |
| |
27.09.2010, 09:29
|
#1 (permalink)
|
|
Benutzer
Registriert seit: 06.08.2009
Beiträge: 49
|
Gästebuch (Smilies wollen nicht funktionieren)
Ich bin am verzweifeln :/. Ich möchte in Gästebuch für meine Page machen. Das Eintragen, bspw. ausgeben funktioniert perfekt, das Problem aber ist, die Smilies, die ich dazu noch ausgeben möchte, wollen nicht so, wie ich das will.
Das ist der ganze Code. Die Schwachstelle ist dort, wo ich die Smilies umwandeln und als Grafik eintragen möchte. Was daran so falsch ist, ist mir ein Rätsel  . Vielleicht hat ja jemand von euch eine Idee, wie ich das lösen könnte :/.
PHP-Code:
<html> <head> <title>VRH Berijden</title> <link rel='stylesheet' href='style.css' typ='text/css'> </head>
<body> <div style='width: 600px'> <h2><img src='herz_05.gif'> Gästebuch</h2>
<form action='guestbook.php' method='post'> Dein <strong>Name</strong>:<br> <input type='text' name='Name'><br> Homepage (freiwillig):<br> <input type='text' name='Home'><br> Deine <b>Botschaft</b>:<br> <textarea cols='65' rows='5' name='Kommentar'> </textarea><br> Ziehe vom Jahr (YYYY) den Tag (TT) ab:<br> <input type='text' name='resultat' maxlenght='4'><br> <input type='reset' value='Zurücksetzen' name='reset'> <input type='submit' value='Eintragen!' name='submit'> </form>
<?php $start = 0; // Startwert setzen (0 = 1. Zeile) $step = 4; // Wie viele Einträge gleichzeitig? // Startwert verändern if (isset($_GET["start"])) { $muster = "/^[0-9]+$/"; //reg. Ausdruck für Zahlen if (preg_match($muster, $_GET["start"]) == 0) { $start = 0; // Bei Manipulation Rückfall auf 0; } else { $start = $_GET["start"]; } } $nr = $start + 1;
include("db.php"); //Formular abgesendet if(isset($_POST["submit"])) { // Formularwerte in frendlichen Variablen speichern $Name = $_POST["Name"]; $Home = $_POST["Home"]; $Kommentar = $_POST["Kommentar"]; $Kommentar = str_replace(":)", "<img src='happy.gif'>", $Kommentar); $Kommentar = str_replace(";-)", "<img src='zwinker.gif'>", $Kommentar); $Kommentar = str_replace(":-D", "<img src='smile.gif'>", $Kommentar); $Kommentar = str_replace(":-*", "<img src='kuss.gif'>", $Kommentar); $Kommentar = str_replace("<3", "<img src='Herzchen.gif'>", $Kommentar); $Kommentar = str_replace("8-)", "<img src='coolo.gif'>", $Kommentar); $Kommentar = str_replace(":rolleyes:", "<img src='rolleyes.gif'>'", $Kommentar); $Kommentar = str_replace(":evil:", "<img src='evil.gif'>", $Kommentar); $Kommentar = str_replace("=-)", "<img src='oberhappy.gif'>", $Kommentar); $Kommentar = str_replace(":-]", "<img src='hmmm.gif'>", $Kommentar); $Kommentar = str_replace(";-(", "<img src='heul.gif'>", $Kommentar); $Kommentar = str_replace("8o", "<img src='oho.gif'>", $Kommentar); $Kommentar = str_replace(":-(", "<img src='traurig.gif'>", $Kommentar); $Kommentar = str_replace(":-P", "<img src='zunge.gif'>", $Kommentar); $Kommentar = str_replace("?-(", "<img src='frage.gif'>", $Kommentar); $Kommentar = str_replace(":O", "<img src='blabla.gif'>", $Kommentar); $resultat = $_POST["resultat"]; $endwert = date("Y") - date("j"); $fehler = false; $fehlertext = "<p>"; // Eingaben prüfen und Fehlertext zusammensetzen if (empty($Name)) { $fehler = true; $fehlertext .= "Der Name fehlt!<br>"; } if (empty($Kommentar)) { $fehler = true; $fehlertext .= "Bitte einen Kommentar eintragen!<br>"; } // CAPTCHA-Prüfung erst, wenn keine weiteren Fehler if (!$fehler && (empty($resultat) || $resultat != $endwert)) { $fehler = true; $fehlertext .= "Test nicht bestanden!"; } // Fehlertext ausgeben und Skriptabbruch if($fehler) { echo "$fehlertext</p>"; die("</div></body></html>"); } else { // Eintrag in die Datenbanktabelle $datum = date("d.m.Y, H:i") . " Uhr"; $sql = "INSERT INTO guestbook VALUES ('', '$Name', '$Home', '$datum', '$Kommentar', '1')"; mysql_query($sql); // Erfolgsanzeige if (mysql_affected_rows() > 0) { echo "Eintrag <b>erfolgreich</b>"; } else { echo "Eintrag <b>nicht</b> erfolgreich."; } } } $sql1 = "SELECT * FROM guestbook WHERE Zeigen = '1'"; $sql2 = "SELECT * FROM guestbook WHERE Zeigen = '1' ORDER BY id DESC LIMIT $start, $step"; $result1 = mysql_query($sql1); $zeilen = mysql_num_rows($result1); $result2 = mysql_query($sql2); for ($i = 0; $zeilen > $i; $i = $i + $step) { $anf = $i + 1; $end = $i + $step; if ($end > $zeilen) { $end = $zeilen; } if ($anf == $end) { echo "[ <a href='guestbook.php?start=$i\'>$end</a> ] "; } else { echo "[ <a href='guestbook.php?start=$i\'>$anf-$end</a> ] "; } } echo "<h2>Bisherige Einträge:</h2>"; echo "<p>Anzahl der Einträge: $zeilen</p>"; //while-Schleife Anhang while($row = mysql_fetch_assoc($result2)) { echo "<p><strong>$nr.</strong> <b>" . htmlspecialchars($row["Name"]) . "</b> "; if(!empty($row["Home"])) { echo "(" . htmlspecialchars($row["Home"]) . ")"; } echo "<br>--> schrieb am " . "<strong>" . $row["Datum"] . "</strong>:</p>" . "<p>" . nl2br(htmlspecialchars($row["Kommentar"])) . "</p><hr>"; $nr++; //while Ende } mysql_close(); ?> </div>
</body> </html>
Wenn jemand den Fehler sieht oder ne Idee hat, wie sich das anders umsetzen liesse, dann bitte  . Ich bin echt um jede Hilfe froh o.O hat mich das Ding doch echt viel Zeit gekostet.
Herodius
|
|
|
|
|
27.09.2010, 21:12
|
#2 (permalink)
|
|
Erfahrener Benutzer
Registriert seit: 04.08.2008
Beiträge: 132
|
Wie sieht denn der Quellcode der ausgegebenen Seite aus?
|
|
|
|
|
01.10.2010, 18:18
|
#3 (permalink)
|
|
Benutzer
Registriert seit: 06.08.2009
Beiträge: 49
|
PHP-Code:
//while-Schleife Anhang while($row = mysql_fetch_assoc($result2)) { echo "<p><strong>$nr.</strong> <b>" . htmlspecialchars($row["Name"]) . "</b> "; if(!empty($row["Home"])) { echo "(" . htmlspecialchars($row["Home"]) . ")"; } echo "<br>--> schrieb am " . "<strong>" . $row["Datum"] . "</strong>:</p>" . "<p>" . nl2br(htmlspecialchars($row["Kommentar"])) . "</p><hr>"; $nr++; //while Ende
Meinst du den Teil hier? Ab hier werden die Einträge ausgegeben.
LG,
Snatsch
|
|
|
|
|
02.10.2010, 14:19
|
#4 (permalink)
|
|
Erfahrener Benutzer
Registriert seit: 24.05.2008
Beiträge: 156
|
Hallo,
du solltest die Smilies auf keinen Fall in HTML umwandeln, bevor du sie in die Datenbank einträgst, da du sonst schwierigkeiten beim bearbeiten und sonstigem bekommst.
Stattdessen solltest du die die Smilies beim Anzeigen des Kommentars erst in HTML umwandeln.
MfG
Phybot
|
|
|
|
07.10.2010, 00:38
|
#5 (permalink)
|
|
Benutzer
Registriert seit: 06.08.2009
Beiträge: 49
|
Ich habe bereits versucht, sie erst beim Ausgeben zu verwandeln. Aber es hat mir immer nur Fehler ausgegeben. Ich bin nicht ganz sicher wie ich das machen muss. Wenn du mir das erklären würdest, wäre das sehr nett.
|
|
|
|
|
07.10.2010, 22:07
|
#6 (permalink)
|
|
Erfahrener Benutzer
Registriert seit: 24.05.2008
Beiträge: 156
|
Hallo,
guck dir folgendes Tutorial mal an: BB Code - Smilies
Du musst die Smilies dabei nur ohne sie zu verändern in die Datenbank speichern und sie nachher mit
PHP-Code:
echo smilies($row['eintrag_content']);
aufrufen
MfG
Phybot
|
|
|
|
09.10.2010, 00:33
|
#7 (permalink)
|
|
Benutzer
Registriert seit: 06.08.2009
Beiträge: 49
|
Danke danke danke  . Jetzt begreif ichs xD. Endlich kann ich das GB so machen, wie ich das wollte  . Vielen Dank für die Hilfe  .
LG,
Herodius
|
|
|
|
|
| Themen-Optionen |
|
|
| Ansicht |
Linear-Darstellung
|
Forumregeln
|
|
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:43 Uhr.
| |
| |