Показва html код във таблица....

nasibg

Registered
Имам една texarea, която прави запис във базата. След както натисна бутона, ми записва съдържанието заедно със html от textarea-та, и после всички записи ги показвам във таблица но проблема е че ми показва html-а.... :cry: Тоест го показва, като обикновенн текст...... +1
Код:
<?php
if(isset($_POST['add'])) {		
$name = ($_POST['wysiwyg']);
$insbook = "INSERT INTO bookmarks (name) VALUES ('$name')";
mysql_query($insbook) or die (mysq_error());
}
?>
<form action="" method="post">
<textarea name="wysiwyg" id="wysiwyg" rows="5" cols="47"></textarea>
<input type="submit" name="add" value="Запиши" />
</form>
 
htmlspecialchars();

Ако те разбрах правилно:

Код:
<?php
if(isset($_POST['add'])) {      
$name = htmlspecialchars($_POST['wysiwyg']);
$insbook = "INSERT INTO bookmarks (name) VALUES ('$name')";
mysql_query($insbook) or die (mysq_error());
}
?>
<form action="" method="post">
<textarea name="wysiwyg" id="wysiwyg" rows="5" cols="47"></textarea>
<input type="submit" name="add" value="Запиши" />
</form>
 
Не нестава показва ми цдцдц<b>дддддддд</b>дддд а без htmlspecialchars си показва h<sub>ttttttt</sub>tttt<b><i><s><u>ttttttttttttttttt</u></s></i></b>tthaeeheheh<a href="http://edno23.com">hth</a>
Искам html-а да си работи, и след като сложа mysql_real_escape_string на $name
 
Най-обикновен селект и един цикъл... Но ми направи впечатление, че когато директно си вмъкна записа(от phpmyadmin) html кода във таблицата работи. А когато е направен инсерт от текст ареата( ползвам http://github.com/akzhan/jwysiwyg ) без никакви функции, и филтрации, си прави записа и като го показва във таблицата хтмл кода се показва.... Този едитор си е доста ползван и читав не е нещо от него. Има и доста хора от тук, които са го ползвали и го ползват, нека който разбира да помогне. Явно е нещо малко, но без него нестава... :D Сигурно някоя функция, убеден съм че тук има много добри уеб програмисти и се надявам да помогнат. :)
 
Кодировката няма нищо общо... всичко си се показва правилно като текст. Въпроса е че html-а не работи. Примерно във ареата пиша cccc<b>vvvvv</b> и събмитвам и във таблицата наместо да се покаже cccc>vvvvv се показва cccc<b>vvvvv</b> :( Така се показва със и без mysq_real_escape_string, а със htmlspecialchars цдцдц<b>дддддддд</b>дддд

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

влез в phpmyadmin и виж какво реално се записва там
 
И там е същото, което се показва във таблицата.
jyjyjy<b>jyjyjyyyyyyyyyy</b>yyyyyy
А нямам нито една филтрираща функция, всичко е елементарно.... какво ли не пробвах.... :cry:
 
Код:
$name = ($_POST['wysiwyg']);

замести с

Код:
$name=$_POST['wysiwyg'];


имах същия проблем и така се оправи 1-во бях с htmlspecialchars и така
 
Преди имах същия проблем ама не помня как го реших :lol:

я пробвай така какво вади

Код:
<?php 
if(isset($_POST['add'])) {       
$name = htmlspecialchars_decode($_POST['wysiwyg']); 
$insbook = "INSERT INTO bookmarks (name) VALUES ('$name')"; 
mysql_query($insbook) or die (mysq_error()); 
} 
?> 
<form action="" method="post"> 
<textarea name="wysiwyg" id="wysiwyg" rows="5" cols="47"></textarea> 
<input type="submit" name="add" value="Запиши" /> 
</form>

Всъщност като се позамислих и така няма да стане ето как работи при мен

Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Администраторски панел</title>
<link rel="stylesheet" href="../files/font.css" type="text/css">
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
<script src="ckeditor/sample.js" type="text/javascript"></script>
<link href="ckeditor/sample.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php 
include ('configprodukti.php'); 
if(isset($_POST['izprati'])){ 
$ime = $_POST['ime']; 
$ime = strip_tags($ime); 
$ime = get($ime); 
$cena = $_POST['cena'];  
$cena = strip_tags($cena); 
$cena = get($cena); 
$downloads = $_POST['downloads'];  
$downloads = strip_tags($downloads); 
$downloads = get($downloads); 
$opisanie = $_POST['opisanie']; 
$snimka = $_POST['snimka']; 
$snimka = htmlspecialchars($snimka); 
$snimka = strip_tags($snimka); 
$snimka = get($snimka); 
$category = $_POST['category']; 
$category = htmlspecialchars($category); 
$category = strip_tags($category); 
$category = get($category); 
$promo = $_POST['promo']; 
$promo = htmlspecialchars($promo); 
$promo = strip_tags($promo); 
$promo = get($promo); 
$date = date('d-m-Y'); 

if($ime== NULL){ //proverqvame dali sa prazni poletata 
echo "Populnete ime!"; 
exit; 
} 
elseif($opisanie==NULL){ 
echo "populnete opisanie!"; 
exit; 
} 
elseif($promo == "1"){ 
$pole = "#ff9900"; //ako sa vip kakvo da stane poleto 
$promo = $pole; 
$zapis = mysql_query("INSERT INTO produkti(ime,cena,downloads,opisanie,snimka,date,category,promo) VALUES('$ime','$cena','$downloads','$opisanie','$snimka','$date','$category','$promo')"); 
echo "Вашият продукт е побликуван, като продукт в промоция!"; 
} 
else { 
$zapis = mysql_query("INSERT INTO produkti(ime,cena,downloads,opisanie,snimka, date, category) VALUES('$ime','$cena','$downloads','$opisanie','$snimka','$date','$category')"); 
echo "Продуктът е добавен!"; 
} 
} 
?> 
<table border="1" > 
<tr> 
<td><form action="" method="POST" name="form1"> 
Заглавие на продукта:<input size="40%"type="text" name="ime" ></td></tr>  
<tr><td>Цена:<input type="text" name="cena"></tr></td>
 <tr><td>Downloads:<input type="text" name="downloads"></tr></td>
<tr><td>Описание:<label for="editor1">
				Editor 1:</label><br />
			<textarea class="ckeditor" cols="20" id="opisanie" name="opisanie" rows="10"></textarea></tr></td> 
<tr><td>Снимка:<input type="file" name="snimka"></tr></td> 
<tr><td>Промоция:<br> 
<span style='font-size:9px;'>За да направите съдаржанието промоционално</span> 
 <input type="checkbox" name="promo" value="1" /></td></tr> 
<tr><td> 
<select name="category"> 
<option 1>Energospestqvashti 
<option 2>Kitnabori 
<option 3>Bitovi 
<option 4>Promishleni
</select> 
</td></tr> 
<tr><td align="right"><input type="submit" name="izprati" value="Публикувай"  ></tr></td> 
</form> 
</table>
</body>
</html>

Като едитор ползвам ckeditor и съм много доволен :?:
 
@talevtehnology Много ти благодаря! :) +1 Със htmlspecialchars_decode проблема се решава. А като искам вече да сложа защитата ще си стане $name = mysql_real_escape_string(htmlspecialchars_decode($_POST['wysiwyg'])); и всичко ще си е точно? смисъл това си е правилно и няма да има проблеми.(слагам mysql_real_escape_string тък като знам че е по-добрият(сигурен) вариянт, от колкото комбинацията от addslashes и htmlspecialchars). :)

edit: Виждам че си редактирал поста си, и казваш че и така няма да стане.... Можеш ли да кажеш защо нестава?
 
реших да ти дам да пробваш с обратната функция на htmlspecialchars за да не би някъде нещо да се ....... ама после сметнах че е малко вероятно и за това :lol:

а в моя вариант не правя проверка защото ми е за админ панела и нямам намерение да хаквам сам сайта си :D
 

Back
Горе