|
|
|
| как я поняла чтоб добавить в бд текст (с хтмл оформлением) нужно все тэги заменить на искусственные (с целью безопасности?!)
как указано тут
http://www.softtime.ru/bookphp/gl11_1.php
$msg = nl2br($msg);
$msg = str_replace("[u]","<u>",$msg);
$msg = str_replace("[U]","<u>",$msg);
$msg = str_replace("","<i>",$msg);
$msg = str_replace("[I]","<i>",$msg);
$msg = str_replace("","<B>",$msg);
$msg = str_replace("[B]","<B>",$msg);
$msg = str_replace("","<SUB>",$msg);
$msg = str_replace("[SUB]","<SUB>",$msg);
$msg = str_replace("","<SUP>",$msg);
$msg = str_replace("[SUP]","<SUP>",$msg);
$msg = str_replace("[/u]","</u>",$msg);
$msg = str_replace("[/U]","</u>",$msg);
$msg = str_replace("","</i>",$msg);
$msg = str_replace("[/I]","</i>",$msg);
$msg = str_replace("","</B>",$msg);
$msg = str_replace("[/B]","</B>",$msg);
$msg = str_replace("","</SUB>",$msg);
$msg = str_replace("[/sub]","</SUB>",$msg);
$msg = str_replace("","</SUP>",$msg);
$msg = str_replace("[/sup]","</SUP>",$msg);
$msg = eregi_replace("(.*)\\[url\\](.*)\\[/url\\](.*)","\\1<a
href=\\2>\\2</a>\\3",$msg);
$msg = str_replace("\n"," ",$msg);
$msg = str_replace("\r"," ",$msg);
|
... а что делать с сылками? как их безопасно добавить в бд...
например в тексте есть ссылка
<a href="http://ya.ru">Yandex</a>
|
как тут быть? мне нужна ссылка именно в таком оформлении... | |
|
|
|
|
|
|
|
для: MadeInUSSR
(15.10.2006 в 13:56)
| | > как я поняла чтоб добавить в бд текст (с хтмл оформлением) нужно все тэги заменить
> на искусственные (с целью безопасности?!)
Нет. С целью безопасности достаточно воспользоваться функцией mysql_escape_string() и спокойно добавлять текст в БД. А псевдотеги лучше преобразовывать при выводе текста на экран. | |
|
|
|
|
|
|
|
для: Саня
(15.10.2006 в 15:52)
| | mysql_escape_string() то есть пользоваться этой функцией и добавлять в бд чистый html ? я правильно поняла? | |
|
|
|
|
|
|
|
для: MadeInUSSR
(15.10.2006 в 16:00)
| | Да, а при выводи пользоваться фукцией htmlspecialchars | |
|
|
|
|
|
|
|
для: Spayker
(15.10.2006 в 16:15)
| | прошу прощения, но не могли бы подсказать куда именно вставлять эти две функции .... во всем это я еще новичек.. разобраться сама не могу
вот код для добавления текста:
<?php
include 'config.php' ;
$news_text=$HTTP_POST_VARS['add_news'];
if (!$news_text)
{
echo 'Введите новость!';
exit;
}
$news_text=addslashes($news_text);
$db = mysql_pconnect ($dbhost, $dbuser, $dbpass);
if (!$db)
{
echo 'Ошибка';
exit;
}
mysql_escape_string($news_text);
mysql_select_db($dbname);
$query="insert into news values
(0,now(),'".$news_text."')";
$result=mysql_query($query);
if (!$result)
echo "Ни фига!";
else
{
echo "Новость успешно добавлена! <a href=\"admin.html\">Перейдите по этой ссылке для дальнейшего администратирования</a>";
}
?>
|
а вот для вывода:
<?php
include 'admin/config.php' ;
$nm=1;
$db = mysql_pconnect ($dbhost, $dbuser, $dbpass);
if (!$db)
{
echo 'Error';
exit;
}
mysql_select_db($dbname);
$ath=mysql_query("SELECT * FROM news order by news_date desc LIMIT $nm;");
if (!$ath)
{
echo "Bad";
exit ();
}
else
{
while ($news=mysql_fetch_array($ath))
{
$text=$news['news_text'];
$words=explode(" ", $text);
$text = '';
for ($i=0; $i<10000; $i++)
$text.=$words[$i].' ';
$news_text=stripslashes($news_text);
echo $text."<br />";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: MadeInUSSR
(15.10.2006 в 18:07)
| | Помоему так
<?php
include 'config.php' ;
$news_text=$_POST['add_news'];
if (!$news_text)
{
echo 'Ââåäèòå íîâîñòü!';
exit;
}
$news_text=addslashes($news_text);
$db = mysql_pconnect ($dbhost, $dbuser, $dbpass);
if (!$db)
{
echo 'Îøèáêà';
exit;
}
if (!get_magic_quotes_gpc())
{
mysql_escape_string($news_text);
}
mysql_select_db($dbname);
$query="insert into news values
(0,now(),'".$news_text."')";
$result=mysql_query($query);
if (!$result)
echo "Íè ôèãà!";
else
{
echo "Новость успешно добавлена! <a href=\"admin.html\">Перейдите по этой ссылке для дальнейшего администратирования</a>";
}
?>
|
<?php
include 'admin/config.php' ;
$nm=1;
$db = mysql_pconnect ($dbhost, $dbuser, $dbpass);
if (!$db)
{
echo 'Error';
exit;
}
mysql_select_db($dbname);
$ath=mysql_query("SELECT * FROM news order by news_date desc LIMIT $nm;");
if (!$ath)
{
echo "Bad";
exit ();
}
else
{
while ($news=mysql_fetch_array($ath))
{
$text=$news['news_text'];
$words=explode(" ", $text);
$text = '';
for ($i=0; $i<10000; $i++)
$text.=$words[$i].' ';
$news_text=stripslashes($news_text);
echo htmlspecialchars($text)."<br />";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Spayker
(15.10.2006 в 20:38)
| | попробую вечером . спасибо | |
|
|
|
|
|
|
|
для: Spayker
(15.10.2006 в 20:38)
| | при выводе получается такое
<a href=\"http://www.ya.ru\">Яху</a> | |
|
|
|
|
|
|
|
для: MadeInUSSR
(15.10.2006 в 13:56)
| | Может я че не понял, но
$msg = eregi_replace("(.*)\\[url\\](.*)\\[/url\\](.*)","\\1<a href=\\2>\\2</a>\\3",$msg);
|
Редактирует ссылки...
ЗЫ: Ссылка перед редактированием имеет вид [url] link [/url] | |
|
|
|
|
|
|
|
для: Whi-teOoS
(15.10.2006 в 20:36)
| | то есть вместо такой ссылки
<a href="http://ya.ru">Yandex</a>
|
я получаю такую..
а мне нужен первый вариант.. поэтому и обратилась сюда
и еще хочу уточнить, что это
<a href="http://ya.ru">Yandex</a>
|
должно быть выводом в хтмл коде (то есть вид будет таков Yandex, а под ним скрывается ссылка)
помогите.. плиз | |
|
|
|
|
|
|
|
для: MadeInUSSR
(16.10.2006 в 06:37)
| | Воть что получилось=) Сильно не тестировал но вродь все норм:)
Config.php
<?php
$mySQLhost ="localhost";
$mySQLuser ="root";
$mySQLpass ="";
$mySQLname ="test";
$mySQLconnect = @mysql_connect($mySQLhost, $mySQLuser, $mySQLpass);
$mySQLselect = @mysql_select_db($mySQLname);
if (!$mySQLconnect) {
die("<div style='font-family:Verdana;font-size:13px;text-align:center;color:#55555;'><b>Ошибка при подключении к базе \"".$mySQLname."\"</b></div>");
exit();
}
if (!$mySQLselect) {
die("<div style='font-family:Verdana;font-size:13px;text-align:center;color:#55555;'><b>Ошибка при выборе базы \"".$mySQLname."\"</b></div>");
exit();
}
// MySQL Функции \\
function toMySQL($subject) {
$subject = stripslashes($subject);
mysql_escape_string($subject);
$search = array("\"", "'", "\\");
$replace = array(""", "'", "\");
$subject = str_replace($search, $replace, $subject);
return $subject;
}
function fromMySQL($subject) {
$search = array(""", "'", "\");
$replace = array("\"", "'", "\\");
$subject = str_replace($search, $replace, $subject);
return $subject;
}
// MySQL Функции \\
?>
|
Добавление новости
<?php
require_once ("config.php");
$news_text = toMySQL($_POST['add_news']);
if (!$news_text) {
echo 'Введите новость!';
exit();
}
echo $news_text;
$result = mysql_query("INSERT INTO news VALUES ('0', '{$news_text}')") ? "Новость успешно добавлена! <a href='admin.html'>Перейдите по этой ссылке для дальнейшего администратирования</a>" : "Ни фига!";
if (isset($result)) {
echo ("<div><b>".$result."</b></div>");
}
?>
|
Показ новости
<?php
require_once ("config.php");
$nm = "10";
if ($result = mysql_query("SELECT * FROM news_test ORDER BY news_date DESC LIMIT $nm;")) {
while ($row = mysql_fetch_assoc($result)) {
echo fromMySQL($row['news_text']);
}
} else {
echo "Bad";
exit ();
}
?>
|
| |
|
|
|