Как да вкарам емотикони в чат ?

DobriMcConnor

Registered
Код на чата:

Код:
<?php

include "csa.php";
if ($_POST['submit']) {
$avtor = $_POST['username'];
$date = date('d M. H:i');
$text = $_POST['text'];
$time = date('H:i');$sql = "INSERT INTO chatbox (avtor, date, text) VALUES ('$avtor', '$date', '$text')";
if ((empty($avtor)) or (empty($text))){
echo "Моля, полълни всички полета !<META HTTP-EQUIV='Refresh' Content='2;URL='>";
exit;
}
mysql_query($sql) or die (mysql_error());
echo "Съобщението е добавено !<META HTTP-EQUIV='Refresh' Content='1;URL='>";
}
else 
{echo "<center>
<form method='post' action=''>
Автор: <input tyle='text' name='username' value='".$userdata['username']."' class='input' style='width:124px;' /><br />
<textarea name='text' rows='5' class='input'></textarea><br />
<input type='submit' name='submit' value='Пусни' class='button' />
 
<input type='reset' class='button' name='reset' value=' Изтрий '>
</center>
</form>
<br />";
echo '<center></center>';
}
?>
	

<?php
include "cs.php";
$result = mysql_query("SELECT * FROM chatbox ORDER BY id DESC  LIMIT 5") or die (mysql_error());
while($data = mysql_fetch_assoc($result)) {
echo "<table align='center' style='border: 1px solid #333; background: #333;' width='100%'>
<tr style='border: 1px solid #000; background: #222;'>
<td align='left' style='border: 1px solid #000; background: #222; font-size:10px;'>
 <img src='images/chatbox.png' align='left' /><b>$data[avtor]</b><br />
<b style='color:#ccc;'>$data[date]</b><br />
 $data[text]<br />
</td></tr></table>
";
}
?>

Гледах в форума подобни теми, но при мен не става. :|
 
Мисли за емотиконките като за някакви шаблони в текста, които трябва да заместиш. Това, което трябва да правиш е да проверяваш и заместваш съответния код с HTML таг за съответната картинка, преди да вкараш записа в базата-данни:

Код:
$emo_code = array(':lol:', ':help:', ':shocked:');
$emo_html = array(
               '<img src="/images/lol.gif" />', 
               '<img src="/images/help.gif" />', 
               '<img src="/images/shocked.gif" />'
);

$text = str_replace($emo_code, $emo_html, $text);

$sql = "INSERT INTO chatbox (avtor, date, text) VALUES ('$avtor', '$date', '$text')";

Ако думичката от кода за емотиконката, отговаря на името на файла, може да се направи и само с един ред регулярен израз, без да ги описваш в отделни масиви.
 
exec каза:
Мисли за емотиконките като за някакви шаблони в текста, които трябва да заместиш. Това, което трябва да правиш е да проверяваш и заместваш съответния код с HTML таг за съответната картинка, преди да вкараш записа в базата-данни:

Код:
$emo_code = array(':lol:', ':help:', ':shocked:');
$emo_html = array(
               '<img src="/images/lol.gif" />', 
               '<img src="/images/help.gif" />', 
               '<img src="/images/shocked.gif" />'
);

$text = str_replace($emo_code, $emo_html, $text);

$sql = "INSERT INTO chatbox (avtor, date, text) VALUES ('$avtor', '$date', '$text')";

Ако думичката от кода за емотиконката, отговаря на името на файла, може да се направи и само с един ред регулярен израз, без да ги описваш в отделни масиви.

Може ли да ми кажеш къде да го сложа този код ? :oops: :oops:
 
Трябваше да го сложиш, там където се изпълнява заявката за вкарване в базата-данни на новата информация. Ето го целия код:

Код:
<?php

include "csa.php";
if ($_POST['submit']) {
   $avtor = $_POST['username'];
   $date = date('d M. H:i');
   $text = $_POST['text'];
   $time = date('H:i')

   if ((empty($avtor)) or (empty($text))){
      echo "Моля, полълни всички полета !<META HTTP-EQUIV='Refresh' Content='2;URL='>";
      exit;
   }

   $emo_code = array(':lol:', ':help:', ':shocked:');
   $emo_html = array(
               '<img src="/images/lol.gif" />',
               '<img src="/images/help.gif" />',
               '<img src="/images/shocked.gif" />'
   );

   $text = str_replace($emo_code, $emo_html, $text);

   $sql = "INSERT INTO chatbox (avtor, date, text) VALUES ('$avtor', '$date', '$text')"; 

   mysql_query($sql) or die (mysql_error());
   echo "Съобщението е добавено !<META HTTP-EQUIV='Refresh' Content='1;URL='>";
}
else
{
   echo "<center>
   <form method='post' action=''>
   Автор: <input tyle='text' name='username' value='".$userdata['username']."' class='input' style='width:124px;' /><br />
   <textarea name='text' rows='5' class='input'></textarea><br />
   <input type='submit' name='submit' value='Пусни' class='button' />
    
   <input type='reset' class='button' name='reset' value=' Изтрий '>
   </center>
   </form>
   <br />";
   echo '<center></center>';
}
?>
   

<?php
include "cs.php";
$result = mysql_query("SELECT * FROM chatbox ORDER BY id DESC  LIMIT 5") or die (mysql_error());
while($data = mysql_fetch_assoc($result)) {
echo "<table align='center' style='border: 1px solid #333; background: #333;' width='100%'>
<tr style='border: 1px solid #000; background: #222;'>
<td align='left' style='border: 1px solid #000; background: #222; font-size:10px;'>
 <img src='images/chatbox.png' align='left' /><b>$data[avtor]</b><br />
<b style='color:#ccc;'>$data[date]</b><br />
 $data[text]<br />
</td></tr></table>
";
}
?>
 

Back
Горе