главная страница каталог файлов полезные статьи документация форум лицензионное соглашение
FAQ Поиск Пользователи Группы Регистрация Профиль Войти и проверить личные сообщения Вход
Список форумов Natali-Team » PHP-программирование » Как обработать смайлики - преобразование символов а PHP
  « Предыдущая тема | Следующая тема »
 
Начать новую тему Ответить на тему
Как обработать смайлики - преобразование символов а PHP
Old_Chroft Сообщение Ср Ноя 25, 2009 5:43 pm


администратор

администратор

Регистрация: 05.01.2008
Сообщения: 12
Откуда: Приволжский ФО Посмотреть профиль Отправить личное сообщение
Сообщение Топик по мотивам статьи смайлики. Часть 2. Если что то непонятно - пишите здесь, не нужно в комментариях приводить простыни кода good
_________________
Всю жизнь как в японском мультике... все вижу - но ничего не понимаю.
Late-maestro Сообщение Ср Ноя 25, 2009 5:59 pm


новичок

новичок

Регистрация: 25.11.2009
Сообщения: 8
Откуда: киев Посмотреть профиль Отправить личное сообщение
Сообщение Я уже здесь)

вот код, который Вы мне посоветовали:


Код:

<?
function replase_smile($mystr){
$modified = strtr($mystr, array(
':)'=>'<img src="/forum/phpBB3/images/smilies/smile.gif">',
':haha:'=>'<img src="/forum/phpBB3/images/smilies/haha_girl.gif">',
':yahoo:'=>'<img src="/forum/phpBB3/images/smilies/yahoo.gif">',
':('=>'<img src="/forum/phpBB3/images/smilies/sad.gif">',
'8)'=>'<img src="/forum/phpBB3/images/smilies/give_rose.gif">',
':=('=>'<img src="/forum/phpBB3/images/smilies/girl_cray.gif">',
':blum:'=>'<img src="/forum/phpBB3/images/smilies/girl_blum.gif">',
';)'=>'<img src="/forum/phpBB3/images/smilies/wink.gif">'
));
return $modified;
}

echo "<p class='post_comment'>Комментарии:</p>";
$result3 = mysql_query ("SELECT * FROM comments_prog WHERE post='$id'",$db);
if (mysql_num_rows ($result3) > 0)
{
$myrow3 = mysql_fetch_array($result3);
do {
printf ("<div class='post_div'><p class='post_comment_add'>Комментарий добавил(а): <strong>%s </strong><br> Дата: <strong> %s</strong></p><p class='post_comment_addd'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%s</p></div>",$myrow3["author"], $myrow3["date"], replase_smile($myrow3["text"]));


}
while ($myrow3 = mysql_fetch_array($result3));
}
$result4 = mysql_query ("SELECT img FROM comments_setting",$db);
$myrow4 = mysql_fetch_array ($result4);
?>


но с Вашим кодом комментарии тоже не хотят отправляться.
может я напортачила и с первой частью?
Вы уж извините что напрягаю, но у меня прямо одержимость напала - хочу смайлы в комментах)
вот она первая часть

Код:

<script language="javascript" type="text/javascript">
<!--
var ie=document.all?1:0;
var ns=document.getElementById&&!document.all?1:0;

function InsertSmile(SmileId)
{
if(ie)
{
document.all.text.focus();
document.all.text.value+=" "+SmileId+" ";
}

else if(ns)
{
document.forms['form_com'].elements['text'].focus();
document.forms['form_com'].elements['text'].value+=" "+SmileId+" ";
}

else
alert("Ваш браузер не поддерживается!");
}
// -->
</script>



<p class='post_comment'>Добавить Ваш комментарий или пожаловаться на битую ссылку:</p>
<form action="comment_prog.php" method="post" name="form_com">
<p class='post_comment_add'><label>Ваше имя: </label><input name="author" type="text" size="42" maxlength="40" /></p>
<p class='post_comment_add'><label>Текст комментария: <br><textarea name="text" cols="40" rows="4"></textarea></label></p>
<table class='post_comment_add'>
<tr>
<td width="30" style="cursor: pointer;" onclick='InsertSmile(":)")'><img src='/forum/phpBB3/images/smilies/smile.gif' / ></td>
<td width="35" style="cursor: pointer;" onclick='InsertSmile(":haha:")'><img src='/forum/phpBB3/images/smilies/haha_girl.gif' /></td>
<td width="42" style="cursor: pointer;" onclick='InsertSmile(":yahoo:")'><img src='/forum/phpBB3/images/smilies/yahoo.gif' /></td>
<td width="29" style="cursor: pointer;" onclick='InsertSmile(":(")'><img src='/forum/phpBB3/images/smilies/sad.gif' /></td>
</tr> <tr>
<td style="cursor: pointer;" onclick='InsertSmile("8)")'><img src='/forum/phpBB3/images/smilies/give_rose.gif' / ></td>
<td style="cursor: pointer;" onclick='InsertSmile(":=(")'><img src='/forum/phpBB3/images/smilies/girl_cray.gif' /></td>
<td style="cursor: pointer;" onclick='InsertSmile(":blum:")'><img src='/forum/phpBB3/images/smilies/girl_blum.gif' /></td>
<td style="cursor: pointer;" onclick='InsertSmile(";)")'><img src='/forum/phpBB3/images/smilies/wink.gif' /></td>
</tr>
</table>

</form>


</p>
<p class='post_comment_add'>Введите сумму чисел с картинки</p>
<p class='post_comment_add' ><img style='margin-top:9px;' src="<? echo $myrow4["img"]; ?>" width="58" height="31" />
<input style='margin-bottom:10px;' name="pr" type="text" size="5" maxlength="5" /></p>
<input name="id" type="hidden" value="<? echo $id; ?>" />
<p class='post_comment_add' ><input name="sub_com" type="submit" value="Комментировать" /></p>
</form>
Old_Chroft Сообщение Ср Ноя 25, 2009 6:20 pm


администратор

администратор

Регистрация: 05.01.2008
Сообщения: 12
Откуда: Приволжский ФО Посмотреть профиль Отправить личное сообщение
Сообщение Так, я не понял - комментарии не отправляются или не выводятся?
Если просто не отправляются, то причина на виду: контейнер <form> в коде закрыт ПЕРЕД кнопкой отправки формы, то есть кнопка как бы к форме не принадлежит good Ну и еще лишний тег </p>. Вот правильный код (лишние теги закомментированы):

Код:

<script language="javascript" type="text/javascript">
<!--
var ie=document.all?1:0;
var ns=document.getElementById&&!document.all?1:0;

function InsertSmile(SmileId)
{
if(ie)
{
document.all.text.focus();
document.all.text.value+=" "+SmileId+" ";
}

else if(ns)
{
document.forms['form_com'].elements['text'].focus();
document.forms['form_com'].elements['text'].value+=" "+SmileId+" ";
}

else
alert("Ваш браузер не поддерживается!");
}
// -->
</script>



<p class='post_comment'>Добавить Ваш комментарий или пожаловаться на битую ссылку:</p>
<form action="comment_prog.php" method="post" name="form_com">
<p class='post_comment_add'><label>Ваше имя: </label><input name="author" type="text" size="42" maxlength="40" /></p>
<p class='post_comment_add'><label>Текст комментария: <br><textarea name="text" cols="40" rows="4"></textarea></label></p>
<table class='post_comment_add'>
<tr>
<td width="30" style="cursor: pointer;" onclick='InsertSmile(":)")'><img src='/forum/phpBB3/images/smilies/smile.gif' / ></td>
<td width="35" style="cursor: pointer;" onclick='InsertSmile(":haha:")'><img src='/forum/phpBB3/images/smilies/haha_girl.gif' /></td>
<td width="42" style="cursor: pointer;" onclick='InsertSmile(":yahoo:")'><img src='/forum/phpBB3/images/smilies/yahoo.gif' /></td>
<td width="29" style="cursor: pointer;" onclick='InsertSmile(":(")'><img src='/forum/phpBB3/images/smilies/sad.gif' /></td>
</tr> <tr>
<td style="cursor: pointer;" onclick='InsertSmile("8)")'><img src='/forum/phpBB3/images/smilies/give_rose.gif' / ></td>
<td style="cursor: pointer;" onclick='InsertSmile(":=(")'><img src='/forum/phpBB3/images/smilies/girl_cray.gif' /></td>
<td style="cursor: pointer;" onclick='InsertSmile(":blum:")'><img src='/forum/phpBB3/images/smilies/girl_blum.gif' /></td>
<td style="cursor: pointer;" onclick='InsertSmile(";)")'><img src='/forum/phpBB3/images/smilies/wink.gif' /></td>
</tr>
</table>

<!--/form-->


<!--/p-->
<p class='post_comment_add'>Введите сумму чисел с картинки</p>
<p class='post_comment_add' ><img style='margin-top:9px;' src="<? echo $myrow4["img"]; ?>" width="58" height="31" />
<input style='margin-bottom:10px;' name="pr" type="text" size="5" maxlength="5" /></p>
<input name="id" type="hidden" value="<? echo $id; ?>" />
<p class='post_comment_add' ><input name="sub_com" type="submit" value="Комментировать" /></p>
</form>
Ну это разумеется если был приведен весь код вашего файла.
_________________
Всю жизнь как в японском мультике... все вижу - но ничего не понимаю.
Late-maestro Сообщение Ср Ноя 25, 2009 6:29 pm


новичок

новичок

Регистрация: 25.11.2009
Сообщения: 8
Откуда: киев Посмотреть профиль Отправить личное сообщение
Сообщение ВСЕ ПОЛУЧИЛОСЬ!!!! good
Я дико счастлива!!! СПАСИБИЩЕ Вам огромное за время потраченное на меня!!! УРАА!!! Пошла вставлять код на другие страницы good good good !
Old_Chroft Сообщение Ср Ноя 25, 2009 6:33 pm


администратор

администратор

Регистрация: 05.01.2008
Сообщения: 12
Откуда: Приволжский ФО Посмотреть профиль Отправить личное сообщение
Сообщение Всегда пожалста good Если еще какие вопросы будут с сайтами - обращайтесь.
_________________
Всю жизнь как в японском мультике... все вижу - но ничего не понимаю.
Sed Сообщение Вс Dec 13, 2009 2:00 pm


новичок

новичок

Регистрация: 13.12.2009
Сообщения: 2
Посмотреть профиль Отправить личное сообщение
Сообщение а как все это присобачить к функциям на javascript
Вот есть у меня

Код:


function displayMessages(idArray, colorArray, nameArray,
                         timeArray, messageArray)
{
  for(var i=0; i<idArray.length; i++)
  {
    var color = colorArray.item(i).firstChild.data.toString();
    var time = timeArray.item(i).firstChild.data.toString();
    var name = nameArray.item(i).firstChild.data.toString();
    var message = messageArray.item(i).firstChild.data.toString();

    var htmlMessage = "";
    htmlMessage += "<div class=\"item\" style=\"color:" + color + "\">";
    htmlMessage += "[" + time + "] " + name + ": ";
    htmlMessage += message.toString();
    htmlMessage += "</div>";
   displayMessage (htmlMessage);
  }
}


// функция выводит сообщение
function displayMessage(message)
{
  var oScroll = document.getElementById("scroll");
  oScroll.innerHTML += message;
}
как сюда добавить функцию на пхп для отображения смайликов?
Old_Chroft Сообщение Вс Dec 13, 2009 4:56 pm


администратор

администратор

Регистрация: 05.01.2008
Сообщения: 12
Откуда: Приволжский ФО Посмотреть профиль Отправить личное сообщение
Сообщение Цитата:
как сюда добавить функцию на пхп для отображения смайликов?

Никак. Объясняю почему: JavaScript обрабатывается на стороне клиента (т. е. в браузере), PHP - наоборот, это серверная технология. В приведенном Вами коде я так понял добавляется какой-то элемент на странице при помощи JavaScript. Если я правильно понимаю, то нужно при клике на картинку сразу добавить эту самую картинку в текстовое поле (что то вроде визуального редактора). Объясните подробнее, что, как и для чего нужно сделать - попробуем разобраться.

Да, и пользуйтесь пожалуйста тегом Code, когда приводите куски кодов - выглядит и читается намного лучше good
_________________
Всю жизнь как в японском мультике... все вижу - но ничего не понимаю.
Sed Сообщение Вс Dec 13, 2009 11:54 pm


новичок

новичок

Регистрация: 13.12.2009
Сообщения: 2
Посмотреть профиль Отправить личное сообщение
Сообщение Огромное вам спасибо!!! Я и правда спутал грешное с праведным. Пол дня убил. А после того, как прочитал Ваш ответ за минуту все наладил. Надо было всего лишь прикрутить функцию к серверной части, чтоб данные обрабатывала до внесения в базу, а не после.
Показать сообщения:   
Список форумов Natali-Team » PHP-программирование
  Часовой пояс: GMT + 3
 
Страница 1 из 1  
Перейти:  
 
 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах