Добавяне на емотикони към система за коментари

emcuemnecu

Registered
Здравейте. Ще може ли да ми помогнете да добавя емотикони към системата ми за коментари ?
Ето и кода й:
PHP:
		<?php
		include( 'mysql.php' );
			$ime = mysql_real_escape_string(htmlspecialchars(addslashes($_POST['ime']))); # Име на подателя
			$grad = mysql_real_escape_string(htmlspecialchars(addslashes($_POST['grad']))); # Населено място
			$email = mysql_real_escape_string(htmlspecialchars(addslashes($_POST['email']))); # Е-мейл адрес
			$samia_tekst = mysql_real_escape_string(htmlspecialchars(addslashes($_POST['samia_tekst']))); # Защо избира песента
			

			$data = date('d-m-y, H:m:s'); # Дата на подаване
			$ip = $_SERVER['REMOTE_ADDR']; # IP на подателя
		
		// Градове
		 $gradove = array(
                "Благоевград",
                "Бургас",
                "Варна",
                "Велико Търново",
                
                
                "Видин",
                "Враца ",
                "Габрово",
                "Добрич",
                "Кърджали",
                "Кюстендил",
                "Ловеч",
                "Монтана",
                "Пазарджик",
                "Плевен",
				"Перник",
                "Пловдив",
                "Разград",
                "Русе",
                "Силистра",
                "Сливен",
                "Смолян",
                "София",
				"Свищов",
                "Стара Загора",
                "Търговище",
                "Хасково",
                "Шумен",
				
                "Ямбол",
				"Др.град"
				
			);
		
			if( isset( $_POST['dobavi'] ) ) {
					if( empty( $_POST['ime'] ) ) {
						print 'Моля, попълнете име!<br />';
					}
					if( empty( $_POST['grad'] ) ) {
						print 'Моля изберете град!<br />';
					}
					if( empty( $_POST['email'] ) ) {
						print 'Моля, въведете е-мейл адрес!<br />'; 
					}
					if( empty( $_POST['samia_tekst'] ) ) {
						print 'Моля, попълнете описание!<br />';
					}
					
					if(!eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$", $_POST['email']) and !empty($_POST['email'])) { 
					 print 'Въведеният и-мейл адрес е невалиден!<br/>';
					}
					if(md5($_POST['randimage_txt']) != $_SESSION['image_random_value']){ 
						print 'Въведеният код е невалиден!<br/>';
					}
				else {
					$zapis = "INSERT INTO `video_MdBeddah_Tejko-zvukova_promishlenost` (`ime`,`grad`,`email`,`samia_tekst`,`data`,`ip`) VALUES ('$ime','$grad','$email','$samia_tekst','$data','$ip')";
					$rezultat = mysql_query( $zapis ) or die ( mysql_error() );
					if( $rezultat == true ) {
						print '<strong style="COLOR: #fff000">Коментара е добавен успешно в страницата ! </strong>';
					}
				}
			}
			else {
				?>
					<form action="" method="post">
					<div class="info"></div>
					<div class="forma">
						<table style="width:600px;">
							<tr>
								
								
								<td><b>Името ти:</b><br /><input type="text" name="ime" class="pole" /></td>
							</tr>
							<tr>
								
								
								<td><b>От къде си:</b><br /><?php
								print '<select name="grad">
								<option value="">Избери</option>';
									for($i=0; $i < count($gradove); $i++) {
										print "<option value='$gradove[$i]'>$gradove[$i]</option>";
									}
								print '</select>';
								?></td>
							</tr>
							
							
							<tr>
								
								
								<td><b>Актуален Email адрес:</b><br /><input type="text" name="email" class="pole" /></td>
							</tr>
							
							</tr>
							
							<tr>
								
								
								<td><b>Коментар:</b><br /><textarea name="samia_tekst" class="area"></textarea></td>
							</tr>
							
							<tr>
								
								<td><b>Спам защита</b><img src="code.php" alt="" /></td>
							</tr>
							<tr>
								
								<td><b>Въведете кода</b><input type="text" name="randimage_txt" maxlength="5" /></td>
							</tr>
							<br /><br />
							<tr>
								
								<td> <input type="submit" name="dobavi" value="Добави коментара" class="button" /></td>
							</tr>
						</table>
					</div>
					</form>
				<?php
			}
		?>
	





 <?php 
include( 'mysql.php' ); 
$izbor = "SELECT * FROM `video_MdBeddah_Tejko-zvukova_promishlenost` ORDER BY `id` DESC"; 
$rezultat = mysql_query( $izbor ); 
while( $row = mysql_fetch_array( $rezultat ) ) { 
print ' 
<div class="rezultati"> 
Добавил › <strong>'.$row['ime'].'</strong><br /> 
Населено място › <strong>'.$row['grad'].'</strong><br /> 

Email › <a href="'.$row['email'].'">'.$row['email'].'</a><br /> 
Добавен на › <strong>'.$row['data'].'</strong> 

<br /><hr >
Коментара >
<strong>'.$row['samia_tekst'].' </strong>
</div>'; 
} 
?>
Не ми идва на ум как да сглобя и да се показват емотиконите, анимирани такива каквито са в скайп примерно или в някой форум.
Надявам се на помощ.
 
ама ти какво искаш да са показват или като цакнеш на тях да са добавят в коментара ?

кажи и си готов :D
 
ПОСЛЕДНА ПРОМЯНА НА МНЕНИЕТО: 15:45.


Слагаш един JavaScript:
[js]function emoticon(text) {
var txtarea = document.form1.samia_tekst;
text = ' ' + text;
if (txtarea.createTextRange && txtarea.caretPos) {
var caretPos = txtarea.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
txtarea.focus();
} else {
txtarea.value += text;
txtarea.focus();
}
}[/js]

И емотиконите трябва да са със подобен линк:
HTML:
<a href="javascript:emoticon(':smile:');"><img src="път_до_емотиконата/smile.gif" border="0" ></a>

и при изваждането на коментара правиш следното:
PHP:
$comment = $_POST['text']; 
$comment = str_replace(":smile:",'<img src=път_до_емотиконата/smile.gif>',$comment); 
echo $comment;

Като променливата $comment, ти е самия коментар.

Може да се спретне и една функция, за по "чиста" работа. :?:

И крайния резултат - би трябвало - да изглежда така:
Код:
                <?php
                include( 'mysql.php' );
                        $ime = mysql_real_escape_string(htmlspecialchars(addslashes($_POST['ime']))); # Име на подателя
                        $grad = mysql_real_escape_string(htmlspecialchars(addslashes($_POST['grad']))); # Населено място
                        $email = mysql_real_escape_string(htmlspecialchars(addslashes($_POST['email']))); # Е-мейл адрес
                        $samia_tekst = mysql_real_escape_string(htmlspecialchars(addslashes($_POST['samia_tekst']))); # Защо избира песента
                        

                        $data = date('d-m-y, H:m:s'); # Дата на подаване
                        $ip = $_SERVER['REMOTE_ADDR']; # IP на подателя
                
                // Градове
                 $gradove = array(
                "Благоевград",
                "Бургас",
                "Варна",
                "Велико Търново",
                
                
                "Видин",
                "Враца ",
                "Габрово",
                "Добрич",
                "Кърджали",
                "Кюстендил",
                "Ловеч",
                "Монтана",
                "Пазарджик",
                "Плевен",
                                "Перник",
                "Пловдив",
                "Разград",
                "Русе",
                "Силистра",
                "Сливен",
                "Смолян",
                "София",
                                "Свищов",
                "Стара Загора",
                "Търговище",
                "Хасково",
                "Шумен",
                                
                "Ямбол",
                                "Др.град"
                                
                        );
                
                        if( isset( $_POST['dobavi'] ) ) {
                                        if( empty( $_POST['ime'] ) ) {
                                                print 'Моля, попълнете име!<br />';
                                        }
                                        if( empty( $_POST['grad'] ) ) {
                                                print 'Моля изберете град!<br />';
                                        }
                                        if( empty( $_POST['email'] ) ) {
                                                print 'Моля, въведете е-мейл адрес!<br />'; 
                                        }
                                        if( empty( $_POST['samia_tekst'] ) ) {
                                                print 'Моля, попълнете описание!<br />';
                                        }
                                        
                                        if(!eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$", $_POST['email']) and !empty($_POST['email'])) { 
                                         print 'Въведеният и-мейл адрес е невалиден!<br/>';
                                        }
                                        if(md5($_POST['randimage_txt']) != $_SESSION['image_random_value']){ 
                                                print 'Въведеният код е невалиден!<br/>';
                                        }
                                else {
                                        $zapis = "INSERT INTO `video_MdBeddah_Tejko-zvukova_promishlenost` (`ime`,`grad`,`email`,`samia_tekst`,`data`,`ip`) VALUES ('$ime','$grad','$email','$samia_tekst','$data','$ip')";
                                        $rezultat = mysql_query( $zapis ) or die ( mysql_error() );
                                        if( $rezultat == true ) {
                                                print '<strong style="COLOR: #fff000">Коментара е добавен успешно в страницата ! </strong>';
                                        }
                                }
                        }
                        else {
                                ?>
								<script>
								function emoticon(text) {
								var txtarea = document.form1.samia_tekst;
								text = ' ' + text;
									if (txtarea.createTextRange && txtarea.caretPos) {
										var caretPos = txtarea.caretPos;
										caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
										txtarea.focus();
									} else {
										txtarea.value += text;
										txtarea.focus();
									}
								}
								</script>
                                        <form action="" method="post" name="form1">
                                        <div class="info"></div>
                                        <div class="forma">
                                                <table style="width:600px;">
                                                        <tr>
                                                                
                                                                
                                                                <td><b>Името ти:</b><br /><input type="text" name="ime" class="pole" /></td>
                                                        </tr>
                                                        <tr>
                                                                
                                                                
                                                                <td><b>От къде си:</b><br /><?php
                                                                print '<select name="grad">
                                                                <option value="">Избери</option>';
                                                                        for($i=0; $i < count($gradove); $i++) {
                                                                                print "<option value='$gradove[$i]'>$gradove[$i]</option>";
                                                                        }
                                                                print '</select>';
                                                                ?></td>
                                                        </tr>
                                                        
                                                        
                                                        <tr>
                                                                
                                                                
                                                                <td><b>Актуален Email адрес:</b><br /><input type="text" name="email" class="pole" /></td>
                                                        </tr>
                                                        
                                                        </tr>
                                                        
                                                        <tr>
                                                                
                                                                
                                                                <td>
<a href="javascript:emoticon(':smile:');"><img src="път_до_емотиконата/smile.gif" border="0" ></a>
<b>Коментар:</b><br /><textarea name="samia_tekst" id="samia_tekst" class="area"></textarea></td>
                                                        </tr>
                                                        
                                                        <tr>
                                                                
                                                                <td><b>Спам защита</b><img src="code.php" alt="" /></td>
                                                        </tr>
                                                        <tr>
                                                                
                                                                <td><b>Въведете кода</b><input type="text" name="randimage_txt" maxlength="5" /></td>
                                                        </tr>
                                                        <br /><br />
                                                        <tr>
                                                                
                                                                <td> <input type="submit" name="dobavi" value="Добави коментара" class="button" /></td>
                                                        </tr>
                                                </table>
                                        </div>
                                        </form>
                                <?php
                        }
                ?>
        





 <?php 
include( 'mysql.php' ); 
$izbor = "SELECT * FROM `video_MdBeddah_Tejko-zvukova_promishlenost` ORDER BY `id` DESC"; 
$rezultat = mysql_query( $izbor ); 
while( $row = mysql_fetch_array( $rezultat ) ) { 
$samia_tekst = str_replace(":smile:",'<img src=път_до_емотиконата/smile.gif>',$row['samia_tekst']); 
print ' 
<div class="rezultati"> 
Добавил › <strong>'.$row['ime'].'</strong><br /> 
Населено място › <strong>'.$row['grad'].'</strong><br /> 

Email › <a href="'.$row['email'].'">'.$row['email'].'</a><br /> 
Добавен на › <strong>'.$row['data'].'</strong> 

<br /><hr >
Коментара >
<strong>'.$samia_tekst.' </strong>
</div>'; 
} 
?>
 
Значи колкото емотикони искам да има толкова пъти трябва да добавя и това
HTML:
<a href="javascript:emoticon('');"><img src="път_до_емотиконата/smile.gif" border="0" ></a>
Така ли ? Правилно ли съм разбрал ?
Искам емотиконите да се виждат и като се цъкне на избраната емотикона да излиза!
И като екстра да разпознава ":)" примерно !
 
Да , трябва да добавяш горния код , който си дал, както и под този:


Код:
$samia_tekst = str_replace(":smile:",'<img src=път_до_емотиконата/smile.gif>',$row['samia_tekst']);

трябва да добавиш например:

Код:
$samia_tekst = str_replace(":rofle:",'<img src=път_до_емотиконата/rofle.gif>',$row['samia_tekst']);

ако в html имаш:
<a href="javascript:emoticon(':rofle:');"><img src="път_до_емотиконата/rofle.gif" border="0" ></a>

Ще видиш надолу в кода.

Може да се направи и със MySQL , да добавяш иконите, но точно сега не се сещам как ще стане номера. Т.е. без да пипаш по кода, а само да ги добавяш като емоция през админ панела и "автоматично" да си излизат при коментарите.

Може и да си го виждал в някой системи. :?:
 
Благодаря, ще пробвам варианта, който си ми дал защото няма да са много емотикони, не повече от 20 :)
 

Back
Горе