Къде ми е грешката ?

r3nt3r

Registered
Тааа така имам един код за чат и реших да си добавя като накой например напише
да му излиза :) и използвах str_replace, но емотиконките не се показват :(
ето ми го кода
PHP:
<?php
echo "
<form action=\"\" method=\"post\">
Име:<br  /><input type=\"text\" name=\"nick\"><br />
Съобщение: <br  /><input type=\"text\" name=\"message\">
<br />
<input type=\"submit\" name=\"submit\" value=\"Добави!\" />
</form>";
if (isset($_POST["submit"])) {
include('conn.php');
if (!empty($_POST["message"])) $message = htmlspecialchars($_POST["message"]);
else $errMsg = "Моля въведете съобщение!<br />";
if (!empty($_POST["nick"])) $nickname = htmlspecialchars($_POST["nick"]);
else $errMsg = "Моля въведете име!<br />";
if (empty($errMsg)) {
$insert = mysql_query("INSERT INTO chatbox(nick, message) VALUES('$nickname', '$message')")or die(mysql_error());
echo 'Съобщението е добавено!';
} else echo $errMsg;

mysql_close();

}

?>

<?php
if($message)
{
$message = strip_tags($message, '<b></b><i></i><u></u>');
$message = nl2br($message);
$message = str_replace ("[u]", "<u>", "$message");
$message = str_replace ("[/u]", "</u>", "$message");
$message = str_replace ("[i]", "<i>", "$message");
$message = str_replace ("[/i]", "</i>", "$message");
$message = str_replace ("[b]", "<b>", "$message");
$message = str_replace ("[/b]", "</b>", "$message");
$message = str_replace (";)", "<img src=img/emoticons/icon_wink.gif>", "$message");
$message = str_replace (":)", "<img src=img/emoticons/icon_smile.gif>", "$message");
$message = str_replace (":(", "<img src=img/emoticons/icon_sad.gif>", "$message");
$message = str_replace ("8)", "<img src=img/emoticons/icon_cool.gif>", "$message");
$message = str_replace (";(", "<img src=img/emoticons/icon_cry.gif>", "$message");
$message = str_replace (":arrow:", "<img src=img/emoticons/icon_arrow.gif>", "$message");
$message = str_replace (":smeh:", "<img src=img/emoticons/icon_smeh.gif>", "$message");
$message = str_replace (":confused:", "<img src=img/emoticons/icon_confused.gif>", "$message");
$message = str_replace (":eek:", "<img src=img/emoticons/icon_eek.gif>", "$message");
$message = str_replace (":evil:", "<img src=img/emoticons/icon_evil.gif>", "$message");
$message = str_replace (":exclaim:", "<img src=img/emoticons/icon_exclaim.gif>", "$message");
$message = str_replace (":frown:", "<img src=img/emoticons/icon_frown.gif>", "$message");
$message = str_replace ("(rofl)", "<img src=img/emoticons/icon_lol.gif>", "$message");
$message = str_replace (":mad:", "<img src=img/emoticons/icon_mad.gif>", "$message");
$message = str_replace (":neutral:", "<img src=img/emoticons/icon_neutral.gif>", "$message");
$message = str_replace (":question:", "<img src=img/emoticons/icon_question.gif>", "$message");
$message = str_replace (":razz:", "<img src=img/emoticons/icon_razz.gif>", "$message");
$message = str_replace (":P", "<img src=img/emoticons/icon_razz.gif>", "$message");
$message = str_replace (":p", "<img src=img/emoticons/icon_razz.gif>", "$message");
$message = str_replace (":redface:", "<img src=img/emoticons/icon_redface.gif>", "$message");
$message = str_replace (":rolleyes:", "<img src=img/emoticons/icon_rolleyes.gif>", "$message");
$message = str_replace (":spam:", "<img src=img/emoticons/icon_spam.gif>", "$message");
$message = str_replace ("(music)", "<img src=img/emoticons/icon_music.gif>", "$message");
$message = str_replace (":twisted:", "<img src=img/emoticons/icon_twisted.gif>", "$message");
$message = str_replace (":imsohappy:", "<img src=img/emoticons/i-m_so_happy.gif>", "$message");
$message = str_replace (":king:", "<img src=img/emoticons/king.gif>", "$message");
$message = str_replace (":kiss:", "<img src=img/emoticons/kiss.gif>", "$message");
$message = str_replace (":kiss2:", "<img src=img/emoticons/kiss2.gif>", "$message");
$message = str_replace (":D", "<img src=img/emoticons/laugh.gif>", "$message");
$message = str_replace (":d", "<img src=img/emoticons/laugh.gif>", "$message");
$message = str_replace (":lazy:", "<img src=img/emoticons/lazy.gif>", "$message");
}
?>

<?php
include('conn.php');
$select = mysql_query("SELECT * FROM chatbox ORDER BY id DESC limit 7")or die(mysql_error());
$num = mysql_num_rows($select);
echo '<table width="100%" border="1" style="float: left;" class="chatbox" >';
for ($i=0;$i<$num;$i++) {
$nick = mysql_result($select, $i, "nick");
$message = mysql_result($select, $i, "message");
echo '<table align=\'center\' style=\'border: 1px solid #333; background: #333; width: 250px;\'>
<tr style=\'border: 1px solid #000; background: #222;\'>
<td align=\'left\' style=\'border: 1px solid #000; background: #222; \'>
 <img src=\'img/bull.gif\' width=\'20\' height=\'20\' align=\'left\' /><b><font color=red><b>' . $nick . ':</b></font><br><b style=\'color:#ccc;\'></b> ' . $message . ' </td></tr></table>';
}

mysql_close();
?>
<center><a href="#" />Всички съобщения <br> (<?php
include("conn.php");
$our = mysql_query("SELECT count(id) as total FROM chatbox");
while($raw=mysql_fetch_array($our)){
$total=$raw['total'];
echo ' '.$total.' ';
}
?>)</center>
 
r3nt3r каза:
ъъ някаква идея с какво да го заместа за да не се прецака security-то ?
Аз не се сещам... Трябва някак да ги отделиш емотиконите от останалото съобщение, за да може на др да има функцията, а при емотиконите не...
Погледни и : http://php.net/manual/bg/function.htmlspecialchars-decode.php
 

Back
Горе