Ein Smiley wird ausgegeben, danach html-code

SkyCowboy

Grünschnabel
Hallo,

ich trau mich ja fast gar nicht hier zu posten, aus Angst erschlagen zu werden ;) Aber nach durchsuchen des Forums werd ichs jetzt einfach wagen, habe nichts vergleichbares zu meinem Problem gefunden.

Folgendes Problem habe ich:

Ich möchte in meinem GB den Besuchern die Möglichkeit geben, Smilies zu hinterlassen. Dazu habe ich in ein Unterverzeichnis "Smilies" verschiedene Smilie-Gifs hinterlegt. Nun hab ich mir gedacht, ich mache das ganze mit str_replace oder ereg(i)_replace.

Wenn ich nun in meinem Textfeld mehrere Smilies eingebe, dann gibt er mir einen Smilie als Bild aus und die folgenden Smilies werden als HTML-Code ausgegeben.

Hier ist ein Auszug aus meinem Script, ja, ich weiß, da sind Teile von verschiedenen Tutorials drin, aber dafür sind die ja da, nicht wahr?

PHP:
if($Post)
{
$id=time();
$datum = date("d.m.Y",$id);
$uhrzeit = date("H:i",$id);
$zeit = $datum ." - ". $uhrzeit . " Uhr";

if( $name=="" || $beitrag==""){
echo"Also ein GB-Eintrag sollte schon Namen und Eintrag enthalten";
}
else{

$name=addslashes($name);
$email=addslashes($email);
$homepage=addslashes($homepage);
$beitrag=addslashes($beitrag);
$beitrag=strip_tags($beitrag); // Verhindern von HTML-Tags im Eingabefeld
$beitrag=str_replace(':D','<img src="Smilies/biggrin.gif">',$beitrag);       // Umwandeln des smileys zum Gif
$beitrag=ereg_replace(':finger','<img src="Smilies/fingersmiley.gif">',$beitrag);  // Umwandeln des smileys zum Gif
$beitrag=eregi_replace(":bang",'<img src="Smilies/bangsmiley.gif">',$beitrag);    // Umwandeln des smileys zum Gif
$beitrag=eregi_replace(":rocks",'<img src="Smilies/rocksmiley.gif">',$beitrag);   // Umwandeln des smileys zum Gif
$beitrag=eregi_replace(":kiss",'<img src="Smilies/kiss.gif">',$beitrag);   // Umwandeln des smileys zum Gif
$beitrag=eregi_replace(":angel",'<img src="Smilies/angel.gif">',$beitrag);   // Umwandeln des smileys zum Gif
$beitrag=eregi_replace(":angry",'<img src="Smilies/angry.gif">',$beitrag);   // Umwandeln des smileys zum Gif
$beitrag=eregi_replace(":cool",'<img src="Smilies/cool.gif">',$beitrag);   // Umwandeln des smileys zum Gif
$beitrag=eregi_replace(":eek",'<img src="Smilies/eek.gif">',$beitrag);   // Umwandeln des smileys zum Gif
$beitrag=eregi_replace(":lol",'<img src="Smilies/lol.gif">',$beitrag);   // Umwandeln des smileys zum Gif
$beitrag=eregi_replace(":what",'<img src="Smilies/question.gif">',$beitrag);   // Umwandeln des smileys zum Gif
$beitrag=eregi_replace(":sad",'<img src="Smilies/sad.gif">',$beitrag);   // Umwandeln des smileys zum Gif
$beitrag=eregi_replace(":bloek",'<img src="Smilies/schreismilie.gif">',$beitrag);   // Umwandeln des smileys zum Gif
$beitrag=eregi_replace(":top",'<img src="Smilies/thumbsup.gif">',$beitrag);   // Umwandeln des smileys zum Gif
$beitrag=eregi_replace(":down",'<img src="Smilies/thumbsdown.gif">',$beitrag);   // Umwandeln des smileys zum Gif
$beitrag=eregi_replace(":p",'<img src="Smilies/tongue.gif">',$beitrag);   // Umwandeln des smileys zum Gif
$beitrag=eregi_replace(";)",'<img src="Smilies/wink.gif">',$beitrag);   // Umwandeln des smileys zum Gif
$beitrag=eregi_replace(":peng",'<img src="Smilies/ballersmiley.gif">',$beitrag);   // Umwandeln des smileys zum Gif
$beitrag=eregi_replace(":hammer",'<img src="Smilies/hammersmilie.gif">',$beitrag);   // Umwandeln des smileys zum Gif
$beitrag=eregi_replace(":klopp",'<img src="./Smilies/kopphausmilie.gif">',$beitrag);   // Umwandeln des smileys zum Gif

$beitrag=nl2br($beitrag);
$beitrag=wordwrap($beitrag,40,"<br>",1);

$sqlkommando = "INSERT INTO skygb (id, name, email, homepage, beitrag, zeit) VALUES ('$id', '$name', '$email', '$homepage', '$beitrag', '$zeit')";
mysql_query($sqlkommando) or die; 

echo "<center>Danke für deinen Eintrag, $name</center>";


Also, ich hab alles probiert, alles mit ereg_replace, alles mit str_replace, aber das Problem bleibt bestehen. Weiß jemand, was der Fehler sein könnte, oder sieht jemand einen Fehler den ich nicht sehe?

Sollte weiterer Code benötigt werden, dann kann ich den natürlich nachreichen.

Ich danke euch für eure Bemühungen,

Sky

P.S.: Die eregi_replace-Unregelmäßigkeiten im unteren Teil der Smilie-Umwandlungsgeschichte kommen in meinem Code so nicht vor, das hat was mit der PHP-Darstellungsgeschichte hier zu tun....
 
Zuletzt bearbeitet:
Tja, selbst ist der Mann ( und auch die Frau ;) )

Fehler war (eigentlich) ganz logisch:

Mein Wordwrap, was Dummfug im GB verhindern soll, war NACH der Smiley-Geschichte. Dadurch hat er mir die <img> tags getrennt und daher die fiese Ausgabe, also Wordwrap nach oben im Script und schon is fein :)

PHP:
$name=addslashes($name);
$email=addslashes($email);
$homepage=addslashes($homepage);
$beitrag=strip_tags($beitrag); // Verhindern von HTML-Tags im Eingabefeld
$beitrag=nl2br($beitrag);
$beitrag=wordwrap($beitrag,40,"<br>",1);
$beitrag=str_replace(': D','<img src="Smilies/biggrin.gif">',$beitrag);       // Umwandeln des smileys zum Gif
$beitrag=str_replace(':finger','<img src="Smilies/fingersmiley.gif">',$beitrag);  // Umwandeln des smileys zum Gif

So, mal sehen welche Überraschungen noch auf mich warten ;)

Wenn kein Bedarf mehr für diesen Thread besteht, dann verschieben oder löschen,

danke :)
 
hmmmmm

kann man das nicht auch so machen das man die gif aus soner tabele holen kann
und sie den in der seite an gezeit werden ?
z.b 8 fun.gif u.s.w. ???
die darten aknn man sich den doch aus ner db holen oder ???
aber wie macht man das ?
bitte um hilfe
<select name="icon_id">
<option value="8">lol</option>
<option value="9">gfg</option>
<option value="6">sfg</option>
</select>
 
PHP:
if($Post)
{
$id=time();
$datum = date("d.m.Y",$id);
$uhrzeit = date("H:i",$id);
$zeit = $datum ." - ". $uhrzeit . " Uhr";

if( $name=="" || $beitrag==""){
echo"Also ein GB-Eintrag sollte schon Namen und Eintrag enthalten";
}
else{

$name=addslashes($name);
$email=addslashes($email);
$homepage=addslashes($homepage);
$beitrag=addslashes($beitrag);
$beitrag=strip_tags($beitrag); // Verhindern von HTML-Tags im Eingabefeld

require ("config.inc");
if( !isset( $start ) ) $start = 0;
$result = mysql_query ("SELECT id,name,icq,homepage,text,email,avatar,timestamp FROM flogb ORDER BY timestamp DESC  LIMIT $start,10  ");

while ($data = mysql_fetch_array ($result))
{
?>

<? $beitrag=str_replace('?><img src="<? echo nl2br($data["url1"]); ?>" border="0" alt=""><? ',' ?><img src=" <? echo nl2br($data["url2"]) ; ?>"><? ',$beitrag);       // Umwandeln des smileys zum Gif
?>
<?
}
?>


<?
$beitrag=nl2br($beitrag);
$beitrag=wordwrap($beitrag,40,"<br>",1);

$sqlkommando = "INSERT INTO skygb (id, name, email, homepage, beitrag, zeit) VALUES ('$id', '$name', '$email', '$homepage', '$beitrag', '$zeit')";
mysql_query($sqlkommando) or die;

echo "<center>Danke für deinen Eintrag, $name</center>"; ?>

so hätt ich mir das vorgstellt - das du dann einfach aus der db die bilder ausliest und iin ner schleife alles untereinander hängst!
habs aber net ausprobiert!
 
Zuletzt bearbeitet:
Zurück