Премини към съдържанието
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

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

     

Интегриране на WYSIWYG редактор във форма


Препоръчан отговор


Здравейте, приятели и Весела Коледа! :)

От известно време се мъча да интегрирам WYSIWYG редактор във форма за публикуване на коментари. Някой ако се е занимавал с нещо подобно, ще ме посъветва ли какво да направя? Или да ми даде свой код за това?

Идеята ми е да се публикува заглавие и съдържание на коментара. Разбира се, обикновено записване в база данни е прекалено елементарно, за да ви занимавам с допълнителни кодове към въпроса си. Само ще напиша обикновената хронология на събитията, които съдържа:

- Форма за публикуване на коментара (заглавие + съдържание);

- Формата за публикуване на съдържанието на коментара трябва да е интегрираният WYSIWYG редактор;

- Данните се записват в елементарна база данни, като от формата на съдържанието се записват и съответно HTML таговете. Идея за сигурно записване на HTML код в БД?;

- Файл за преглед, който да извежда и съдържанието на коментара като HTML код. Т.е. да възприема HTML кода.

Записването при мен е удачно с CKeditor v.3.0, но като извеждам резултатите, продължава да си изписва HTML-кодовете както са си записани, без да ги възприема (Пример: При запис на <b>ТЕКСТ</b> продължава да изписва <b>ТЕКСТ</b>, вместо да го отрази като TEКСТ). Като цяло, избрах следния WYSIWYG редактор. В случай, че някой се е занимавал с това, ще ми помогне ли?

Благодаря предварително и весело посрещане на празника! ;)

Линк към този отговор
Сподели в други сайтове

Здравей,

Какво означава "записването е удачно", след като после не излиза, каквото трябва ?

Провери как се записват данните в базата.

За сигурност, използвай mysql_real_escape_string върху данните преди записа.

Аз съм се спрял на tinyMCE за редактор и интегрирането е безпроблемно.

Линк към този отговор
Сподели в други сайтове
  • 2 седмици по-късно...

Здравей,

Какво означава "записването е удачно", след като после не излиза, каквото трябва ?

Провери как се записват данните в базата.

За сигурност, използвай mysql_real_escape_string върху данните преди записа.

Аз съм се спрял на tinyMCE за редактор и интегрирането е безпроблемно.

Здрасти на всички и за много години. :yanim: Извинявам се за закъснелия отговор, но много трудно се разделих с празничната софра. :)

И така. "Записването е удачно" означава, че успявам да запиша в таблицата текст с html-тагове. Т.е. от редактора записвам примерно ТЕКСТ и в таблицата се записва <b>ТЕКСТ</b>. Още не съм тествал новото извеждане, но пробвах да запиша директно от phpmyadmin текст с тагове и ги извежда перфектно. Инсталирах TinyMCE и остава да го тествам.

И както съм подхванал въпроса, преди да тествам, ще отразя как записвам данните. Ако някой има някоя и друга идея, да я сподели. :)

Форма за вписване на коментара (настройките на редактора TinyMCE са в <head>-секцията):

<html>

<head>

<meta content="text/html; charset=windows-1251" http-equiv="content-type"/>


<!-- TinyMCE -->

<script type="text/javascript" src="tinymce/jscripts/tiny_mce/tiny_mce.js"></script>

<script type="text/javascript">

	tinyMCE.init({

		// General options

		mode : "textareas",

		theme : "advanced",

		plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount",


		// Theme options

		theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",

		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",

		theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",

		theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",

		theme_advanced_toolbar_location : "top",

		theme_advanced_toolbar_align : "left",

		theme_advanced_statusbar_location : "bottom",

		theme_advanced_resizing : true,


		// Example content CSS (should be your site CSS)

		content_css : "tinymce/examples/css/content.css",


		// Drop lists for link/image/media/template dialogs

		template_external_list_url : "tinymce/examples/lists/template_list.js",

		external_link_list_url : "tinymce/examples/lists/link_list.js",

		external_image_list_url : "tinymce/examples/lists/image_list.js",

		media_external_list_url : "tinymce/examples/lists/media_list.js",


		// Replace values for the template plugin

		template_replace_values : {

			username : "*******",

			staffid : "******"

		}

	});

</script>

<!-- /TinyMCE -->


</head>

<body>


<form method="post" action="savecomment.php">

<label for="subject">Заглавие на коментара:</label><br/> 

<input type="text" name="subject" rows="5" cols="80" /><br/>

<br/>

<label for="full_com">Пълен текст на коментара:</label><br/>

  <div>

    <textarea id="elm1" name="full_com" rows="15" cols="80" style="width:80%">

      &lt;p&gt;Текстът на коментара идва тук&lt;/p&gt;

    </textarea>

  </div>

<br/>

  <input type="submit" value="Публикувай коментара" /> 

</form>

</body>

</html>
savecomment.php:
<?php

include('config.php');


$subject = $_REQUEST['subject'];

$full_com = $_REQUEST['full_com'];


//////////////////////////

// Сигурност на формата //

//////////////////////////


//Спираме хакването

$subject = strip_tags($subject);

//Позволяваме във full_story записването на html тагове

$full_com = mysql_real_escape_string($full_com);


//Добавяме ADDSLASHES

$subject = addslashes($subject);

$full_com = addslashes($full_com);


//Добавяме HTMLSPECIALCHARS

$subject = htmlspecialchars($subject);

$full_com = htmlspecialchars($full_com);


if ($subject == NULL) {

	echo '<b>Моля, въведете заглавиe!</b><br/><br/><a href="javascript:history.back()" id="back">Назад</a>';

}

else if ($full_com == NULL) {

	echo '<b>Моля, въведете съдържанието на коментара!</b><br/><br/><a href="javascript:history.back()" id="back">Назад</a>';

}

else {

	$checknewnsubject = mysql_query("SELECT subject FROM comments WHERE subject='$subject'");

	$checknewsubject = mysql_num_rows($checknewnews);

	$checknewstory = mysql_query("SELECT full_com FROM comments WHERE full_com='$full_com'");

	$checknewstory = mysql_num_rows($checknewstory);


	if ($checknewsubject>0 && $checknewstory>0) {

		echo '<b>Този коментар вече съществува!</b><br/><br/><a href="javascript:history.back()" id="back">Назад</a>';

	}


	$savecomment = mysql_query("INSERT INTO comments (id,  subject, full_com, postdate) VALUES ('', '$subject', '$full_com', NOW() )");

	if (savecomment) {

		echo '<b>Вашият коментар беше публикуван успешно!</b><br/><br/><a href="viewcomments.php">Всички коментари</a>'; 

	}

}

?>
Мерси много за отделеното внимание! Лека вечер! :)>>>> РЕДАКЦИЯ <<<< Не стана. От горепосочената форма записва следното в базата данни:
<p><strong>TEXT</strong></p>\r\n<p>&nbsp;</p>
А в полето, където се извежда коментарът продължава да извежда следното, без да асимелира, че това са html тагове:
<p><strong>TEXT</strong></p>\r\n<p>&nbsp;</p>

Някакви идеи?

Редактирано от BoByS (преглед на промените)
Линк към този отговор
Сподели в други сайтове

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Напишете отговор в тази тема...

×   Вмъкнахте текст, който съдържа форматиране.   Премахни форматирането на текста

  Разрешени са само 75 емотикони.

×   Съдържанието от линка беше вградено автоматично.   Премахни съдържанието и покажи само линк

×   Съдържанието, което сте написали преди беше възстановено..   Изтрий всичко

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Добави ново...

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите Условия за ползване