Gamux Game Entwicklung  
     

Left Nav Mit Facebook verbinden Registrieren Lexikon Lexikon Interessengemeinschaften Suchen Heutige Beiträge Alle Foren als gelesen markieren Right Nav

Left Container Right Container
 

Zurück   Gamux Game Entwicklung > Browsergames programmieren > Clientseitige Sprachen

Antwort
 
Themen-Optionen Ansicht
Alt 27.09.2010, 09:29   #1 (permalink)
Benutzer
 

Standard 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&auml;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&uuml;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&auml;ge:</h2>";
 echo 
"<p>Anzahl der Eintr&auml;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>--&gt; 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
Herodius ist offline   Mit Zitat antworten An Facebook senden
Werbung
Alt 27.09.2010, 21:12   #2 (permalink)
Erfahrener Benutzer
 

Standard

Wie sieht denn der Quellcode der ausgegebenen Seite aus?
Megger ist offline   Mit Zitat antworten An Facebook senden
Alt 01.10.2010, 18:18   #3 (permalink)
Benutzer
 

Standard

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>--&gt; 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
Herodius ist offline   Mit Zitat antworten An Facebook senden
Alt 02.10.2010, 14:19   #4 (permalink)
Erfahrener Benutzer
 

Standard

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

Phybot ist offline   Mit Zitat antworten An Facebook senden
Alt 07.10.2010, 00:38   #5 (permalink)
Benutzer
 

Standard

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.
Herodius ist offline   Mit Zitat antworten An Facebook senden
Alt 07.10.2010, 22:07   #6 (permalink)
Erfahrener Benutzer
 

Standard

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

Phybot ist offline   Mit Zitat antworten An Facebook senden
Alt 09.10.2010, 00:33   #7 (permalink)
Benutzer
 

Standard

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
Herodius ist offline   Mit Zitat antworten An Facebook senden
Antwort

Themen-Optionen
Ansicht

Forumregeln
BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus
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.

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Programm zeigt Mesh nicht an! RSP-Fan Spiele programmieren 6 05.11.2008 15:01
Er gibt meinen Namen nicht aus Shredder Spiele programmieren 11 13.08.2008 17:53
Avatare funktionieren nicht Toxi Fragen ans Forum & Feedback 1 09.03.2008 18:51


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:43 Uhr.


Style Copyright by Wrestling Forum
Content Relevant URLs by vBSEO 3.3.0