Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: добавление текста в бд, в котором также есть ссылки

Сообщения:  [1-10]   [11-11] 

 
 автор: Poison   (17.10.2006 в 23:22)   письмо автору
 
   для: 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("&quot;""&#039;""&#092;");
    
$subject str_replace($search$replace$subject);
    return 
$subject;
}

function 
fromMySQL($subject) {
    
$search = array("&quot;""&#039;""&#092;");
    
$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 (); 
}

?>

   
 
 автор: MadeInUSSR   (17.10.2006 в 19:37)   письмо автору
 
   для: Spayker   (15.10.2006 в 20:38)
 

при выводе получается такое

<a href=\"http://www.ya.ru\">Яху</a>

   
 
 автор: MadeInUSSR   (16.10.2006 в 06:40)   письмо автору
 
   для: Spayker   (15.10.2006 в 20:38)
 

попробую вечером . спасибо

   
 
 автор: MadeInUSSR   (16.10.2006 в 06:37)   письмо автору
 
   для: Whi-teOoS   (15.10.2006 в 20:36)
 

то есть вместо такой ссылки

<a href="http://ya.ru">Yandex</a>

я получаю такую..

http://ya.ru

а мне нужен первый вариант.. поэтому и обратилась сюда


и еще хочу уточнить, что это

<a href="http://ya.ru">Yandex</a>  


должно быть выводом в хтмл коде (то есть вид будет таков Yandex, а под ним скрывается ссылка)

помогите.. плиз

   
 
 автор: Spayker   (15.10.2006 в 20:38)   письмо автору
 
   для: MadeInUSSR   (15.10.2006 в 18:07)
 

Помоему так


<?php
include 'config.php' ;
$news_text=$_POST['add_news'];
if (!
$news_text)
    {
    echo 
'&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#237;&#238;&#226;&#238;&#241;&#242;&#252;!';
    exit;
    }
$news_text=addslashes($news_text);

$db mysql_pconnect ($dbhost$dbuser$dbpass);
if (!
$db)
    {
    echo 
'&#206;&#248;&#232;&#225;&#234;&#224;';
    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 
"&#205;&#232; &#244;&#232;&#227;&#224;!";
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 />";
             }
  }
?>

   
 
 автор: Whi-teOoS   (15.10.2006 в 20:36)   письмо автору
 
   для: MadeInUSSR   (15.10.2006 в 13:56)
 

Может я че не понял, но

$msg = eregi_replace("(.*)\\[url\\](.*)\\[/url\\](.*)","\\1<a href=\\2>\\2</a>\\3",$msg);


Редактирует ссылки...

ЗЫ: Ссылка перед редактированием имеет вид [url] link [/url]

   
 
 автор: MadeInUSSR   (15.10.2006 в 18:07)   письмо автору
 
   для: 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 />";
             }



  }

?>

   
 
 автор: Spayker   (15.10.2006 в 16:15)   письмо автору
 
   для: MadeInUSSR   (15.10.2006 в 16:00)
 

Да, а при выводи пользоваться фукцией htmlspecialchars

   
 
 автор: MadeInUSSR   (15.10.2006 в 16:00)   письмо автору
 
   для: Саня   (15.10.2006 в 15:52)
 

mysql_escape_string() то есть пользоваться этой функцией и добавлять в бд чистый html ? я правильно поняла?

   
 
 автор: Саня   (15.10.2006 в 15:52)   письмо автору
 
   для: MadeInUSSR   (15.10.2006 в 13:56)
 

> как я поняла чтоб добавить в бд текст (с хтмл оформлением) нужно все тэги заменить
> на искусственные (с целью безопасности?!)

Нет. С целью безопасности достаточно воспользоваться функцией mysql_escape_string() и спокойно добавлять текст в БД. А псевдотеги лучше преобразовывать при выводе текста на экран.

   

Сообщения:  [1-10]   [11-11] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования