176

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

В одном из файлов которые производят соединение с базой есть строка:
$conn = &ADONewConnection('mysql');
Возможно что этастрока Вам что-то обьяснит.

Далее, мной были произведены изменения в файле в строке:
$res = $conn->Execute( "SELECT count, rating, rubr, zagol, vrez, text, podp, img, img_alt, text, id FROM $userstable WHERE year='$yr' AND month='$mnt' AND day='$day' AND counter='$cnt' ORDER BY id DESC LIMIT 10" );
заменил на:
$res = mysql_query( "SELECT count, rating, rubr, zagol, vrez, text, podp, img, img_alt, text, id FROM $userstable WHERE year='$yr' AND month='$mnt' AND day='$day' AND counter='$cnt' ORDER BY id DESC LIMIT 10" );

В итоге rss.xml кроме этого кода:
<?xml version="1.0" encoding="windows-1251"?>
                 <rss version="2.0">
                 <channel>
                 <image>
                 <url>http://www.slava.sebastopol.ua/rss/logo.gif</url>
                 <title>газета «Слава Севастополя»></title>
                 <link>http://www.slava.sebastopol.ua</link>
                 </image>

                 <title>газета «Слава Севастополя»</title>
                 <link>http://www.slava.sebastopol.ua</link>                 
                 <description>«Слава Севастополя»</description>
               
                       </channel>
                       </rss>
больше ничего не отобразил, т.е. страница была совсем пустой и кроме шапки ничего небыло. Когда сделал откат т.е. вернул все назад, статьи все равно не появились. Ошибок тоже браузер не показал.

Функция function anchor() которая была мной скопирована для работы ссылок была убрана, осталась только:
<link>'.anchor( "staty_show", $yr, $mnt, $day, $res->fields['id'], "").'</a></link>

С благодарностью за ответ.

177

Re: Как увеличить количество строк/знаков?

Victor2008
У вас перемешаны соединения с MySQL. Если используете класс ADODB, то только его и надо применять.

Чтобы ADODB заработал, кроме строки создания класса $conn = &ADONewConnection('mysql'); должна быть строка подклчюения самого файла класса, вроде:
include('/path/adodb.inc.php');

Странно, что после возвращения кода что-то перестало работать. Ошибки смотрите в логах Apache.

178

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Строка для подключения:
include('/path/adodb.inc.php');
есть, путь выглядит немного инача, но есть.

Мне почему не перезаписывается файл rss.xml, стоят 777 на файл и на каталог в котором лежит файл.

Может вручную поменять файл rss.xml, на чистый и установить заново права 777, и подождать двое суток пока скопированный rss.xml проиндексируется сервером?

С благодарностью за ответ.

179

Re: Как увеличить количество строк/знаков?

Victor2008
Файл rss.xml не перезависывается, потому что скрипты выдает ошибку и прекращает свое выполнение.

Уточните два пункта.
1) Если файл rss.php выполняется вручную, то rss.xml перезаписывается?
2) При подключении запуска rss.php через include в других файлах скрипта какие ошибки в логах Apache?

Попробуйте все подключаемые файлы переписать с относительных путей на полные, добавив путь до корня хоста ($_SERVER['DOCUMENT_ROOT']):
include($_SERVER['DOCUMENT_ROOT'] . '/php/rss.php');

180

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Уточняю:
1. файл rss.php выполняется при каждом запуске сайта в браузере при помощи команды:
include_once( "./_путь к файлу_/rss.php" ); эта строка находится в подключаемом файле include, который в свою очередь запускается отдельной строкой в файле index.php. Т.е. при любом обращении к любой странице сайта файл обязательно запускается.
     а)когда мной были произведены изменения в коде rss.php такие:
      //если работает эта строка, то ошибка в браузере такая:
      //warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /_путь к файлу_/rss.php on line36
    $res = $conn->Execute( "SELECT count, rating, rubr, zagol, vrez, text, podp, img, img_alt, text, id FROM $userstable WHERE year='$yr' AND month='$mnt' AND day='$day' AND counter='$cnt' ORDER BY id DESC LIMIT 10" );   
   
    36-я строка:
    while ($data = mysql_fetch_array ($res))
          {
затем rss.xml пишет только:
<?xml version="1.0" encoding="windows-1251"?>
                 <rss version="2.0">
                 <channel>
                 <image>
                 <url>http://www.slava.sebastopol.ua/rss/logo.gif</url>
                 <title>газета «Слава Севастополя»></title>
                 <link>http://www.slava.sebastopol.ua</link>
                 </image>

                 <title>газета «Слава Севастополя»</title>
                 <link>http://www.slava.sebastopol.ua</link>                 
                 <description>«Слава Севастополя»</description>
               
                       </channel>
                       </rss>
                       
далее, если сделать так:
//$res = $conn->Execute( "SELECT count, rating, rubr, zagol, vrez, text, podp, img, img_alt, text, id FROM $userstable WHERE year='$yr' AND month='$mnt' AND day='$day' AND counter='$cnt' ORDER BY id DESC LIMIT 10" );   
    $res = mysql_query( "SELECT count, rating, rubr, zagol, vrez, text, podp, img, img_alt, text, id FROM $userstable WHERE year='$yr' AND month='$mnt' AND day='$day' AND counter='$cnt' ORDER BY id DESC LIMIT 10" );
то браузер ошибки не выдает, в rss.xml есть только эти строки:
<?xml version="1.0" encoding="windows-1251"?>
                 <rss version="2.0">
                 <channel>
                 <image>
                 <url>http://www.slava.sebastopol.ua/rss/logo.gif</url>
                 <title>газета «Слава Севастополя»></title>
                 <link>http://www.slava.sebastopol.ua</link>
                 </image>

                 <title>газета «Слава Севастополя»</title>
                 <link>http://www.slava.sebastopol.ua</link>                 
                 <description>«Слава Севастополя»</description>
               
                       </channel>
                       </rss>
На данный момент лог сервера Apache около 50 мегабайт, по обычному модему с переменчивой связью скачать сложно. Отдельного дополнительного лог файла только для сайта в папке с сайтом на удаленном сервере нет.

Возможно что достаточно будет если убрать из кода:
    36-я строка:
    while ($data = mysql_fetch_array ($res))
          {
если строка запроса к базе:
$res = $conn->Execute( "SELECT count, rating, rubr, zagol, vrez, text, podp, img, img_alt, text, id FROM $userstable WHERE year='$yr' AND month='$mnt' AND day='$day' AND counter='$cnt' ORDER BY id DESC LIMIT 10" );
тогда нужно переделывать код для вывода статей из базы.

С благодарностью за ответ.

181

Re: Как увеличить количество строк/знаков?

ДОбавка.

После того как закомментировал строки:
//while ($data = mysql_fetch_array ($res))
          //{
а также нижнюю закрывающую
          //}
далее изменил строки:
//$zagol = $data['zagol'];
//$vrez = $data['vrez'];
//$text = $data['text'];
заменил на:
<title><![CDATA['.$res->fields[ "zagol" ].']]></title>
здесь идет строка с датой
здесь идет строка с ссылкой
<description><![CDATA['.$res->fields[ "text" ].'...]]></description>
<author>'.$res->fields[ "podp" ].'</author>
то
в rss.xml стали выводиться строки:
<?xml version="1.0" encoding="windows-1251"?>
                 <rss version="2.0">
                 <channel>
                 <image>
                 <url>http://www.slava.sebastopol.ua/rss/logo.gif</url>
                 <title>газета «Слава Севастополя»></title>
                 <link>http://www.slava.sebastopol.ua</link>
                 </image>

                 <title>газета «Слава Севастополя»</title>
                 <link>http://www.slava.sebastopol.ua</link>                 
                 <description>«Слава Севастополя»</description>
                   
                       <item>
                          <title><![CDATA[]]></title>
                          <pubDate></pubDate>
                          <pubDate>2009-4-1</pubDate>

                          <link><a href="http://www.slava.sebastopol.ua?cnt=staty_show&yr=2009&mnt=5&day=1" class="sl" title=""></a></link>                         
                          <description><![CDATA[...]]></description>
                          <author></author>
                       </item>
                     
                       </channel>
                       </rss>
Ошибок браузер никаких неоттображает. Насколько мне понятно из базы почему-то ничего не загружается.
С благодарностью за ответ.

182

Re: Как увеличить количество строк/знаков?

Victor2008
Если в браузере запустить rss.php файл rss.xml обновляется? Скрипт вообще работает?

Если работает, то думаю будет достаточно вместо относительных путей поставить полные.

Замените данную строку:
include_once( "./_путь к файлу_/rss.php" );
На такую:
include_once($_SERVER['DOCUMENT_ROOT'] . '/_путь к файлу_/rss.php'); // Где _путь к файлу_ - это путь от корня хоста.

Если скрипт не работает, то сперва надо разобраться с ним.

183

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

В фале rss.php есть строки которые выводятся:
<?php
    global $conn, $yr, $mnt, $day, $cnt;   
    $to_file  = '';
    $to_file .= '<?xml version="1.0" encoding="windows-1251"?>
                 <rss version="2.0">
                 <channel>
                 <image>
                 <url>http://'.$_SERVER["HTTP_HOST"].'/rss/logo.gif</url>
                 <title>газета «Слава Севастополя»></title>
                 <link>http://'.$_SERVER["HTTP_HOST"].'</link>
                 </image>
                 <title>газета «Слава Севастополя»</title>
                 <link>http://'.$_SERVER["HTTP_HOST"].'</link>                 
                 <description>«Слава Севастополя»</description>
                ';
браузером т.е. название газеты и логотип.
Далее выводятся строки, в которых должен содержаться заголовок и часть текста из статьи:
$to_file .= '   
                       <item>
                          <title><![CDATA['.$res->fields[ 'zagol' ].']]></title>
                          <pubDate>'.$date.'</pubDate>
                          <pubDate>'.$yr.'-'.$mnt.'-'.$day.'</pubDate>
                          <link>'.anchor( "staty_show", $yr, $mnt, $day, $res->fields['id'], "").'</a></link>                         
                          <description><![CDATA['.$text.'...]]></description>
                          <author>'.$res->fields[ 'podp' ].'</author>
                       </item>
                      ';
           $to_file .= '
                       </channel>
                       </rss>
В rss.xml в корректном виде отображает только:
<description><![CDATA['.$text.'...]]></description>
т.е. в браузере видны только троеточие _..._

Следующие строки почему-то не работают, вроде все и правельно и ничего не работает:
     $hostname = "localhost";
     $username = "user";
     $password = "password";
     $dbName = "slava_sebastopol_ua";   
     $userstable = "material";
     
     @mysql_connect ( $hostname, $username, $password, $dbName );   
     @mysql_select_db("slava_sebastopol_ua")
     or die(mysql_error());

$res = $conn->Execute( "SELECT count, rating, rubr, zagol, vrez, text, podp, img, img_alt, text, id FROM $userstable WHERE year='$yr' AND month='$mnt' AND day='$day' AND counter='$cnt' ORDER BY id DESC LIMIT 10" );

$text = substr( $res->fields[ 'vrez' ].$res->fields[ 'text' ], 0, 250 );

Эти строки как понимаю, работают, ведь в файл rss.xml код записывается:
function WriteToFile($sFile, $str, $mode = 'w')
                        {
                            $bReturn = false;
                            if (is_writable($sFile))
                               {
                                if ($handle = fopen($sFile, $mode))
                                   {
                                   if (fwrite($handle, $str) !== false)
                                      {
                                       $bReturn = true;
                                      }
                                   fclose($handle);
                                   }
                               }
                               return $bReturn;
                        }
   WriteToFile($_SERVER['DOCUMENT_ROOT'].'/rss/rss.xml', $to_file);
Вы знаете пробовал и так:
include_once($_SERVER['DOCUMENT_ROOT'] . '/_путь к файлу_/rss.php');
ксожалению результат прежний.

С благодарностью за ответ.

184

Re: Как увеличить количество строк/знаков?

Victor2008
Пришлите структуру таблицы material и файл rss.php на hanut@php-myadmin.ru

185

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Письмо на hanut@php-myadmin.ru отправил.

С благодарностью за ответ.

186 (изменено: Hanut, 2010-01-19 21:43:48)

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

С прошедшим Новым годом и рождеством!
Пусть Ваш форум в новом году посетят интересные поситители/читатели.

Вы знаете покомался в RSS и обнаружил любопытную деталь:
Вот этот код:
$to_file  = '';
    $to_file .= '<?xml version="1.0" encoding="windows-1251"?>
                 <rss version="2.0">
                 <channel>
                 <image>
                 <url>http://'.$_SERVER["HTTP_HOST"].'/rss/logo.gif</url>
                 <title>газета «Слава Севастополя»></title>
                 <link>http://'.$_SERVER["HTTP_HOST"].'</link>
                 </image>
                 <title>газета «Слава Севастополя»</title>
                 <link>http://'.$_SERVER["HTTP_HOST"].'</link>                 
                 <description>«Слава Севастополя»</description>
                ';         
     
     $hostname = "localhost";
     $username = "root";
     $password = "password";
     $dbName = "slava_sebastopol_ua";   
     $userstable = "material";
     
     $db_link = @mysql_connect ( $hostname, $username, $password, $dbName );   
     @mysql_select_db("slava_sebastopol_ua", $db_link)
     or die(mysql_error());
             
    $res = @mysql_query ( "SELECT zagol, vrez, text, podp, id FROM $userstable ORDER BY id DESC LIMIT 10", $db_link )     
    or die(mysql_error());

while ($data = mysql_fetch_array ($res))
          {
           $id = $data['id'];           
           $yr = date('Y', strtotime($data['year']));           
           $mnt = date('n', strtotime($data['month']));           
           $day = date('j', strtotime($data['day']));           

           $url = '/?cnt=staty_show&yr='.$yr.'&mnt='.$mnt.'&day='.$day.'&id='.$id;                                           

           //код обрабатывая выводит дату в стандарте формат RFC-822
           $date = date('j M Y O', strtotime($data['date']));
           //$title = $row['title'];           
           $zagol = $data['zagol'];
           //$vrez = $data['vrez'];
           //$text = $data['text'];     
           //$author= $row['author'];
           $podp = $data['podp'];

           //строкой задается ограничение по количеству записей на RSS странице
           $text = substr( $data['zagol'].$data['vrez'].$data['text'], 0, 250 );
         
           $to_file .= '   
                       <item>
                          <title><![CDATA['.$zagol.']]></title>
                          <pubDate>'.$date.'</pubDate>
                          <pubDate>'.$yr.'-'.$mnt.'-'.$day.'</pubDate>
                          <link>http://'.$_SERVER["HTTP_HOST"].htmlspecialchars($url).'</link>
                          <description><![CDATA['.$text.'...]]></description>
                          <author>'.$podp.'</author>
                       </item>
                      ';
          }     
           $to_file .= '
                       </channel>
                       </rss>
                       ';
    function WriteToFile($sFile, $str, $mode = 'w')
                        {
                            $bReturn = false;
                            if (is_writable($sFile))
                               {
                                if ($handle = fopen($sFile, $mode))
                                   {
                                   if (fwrite($handle, $str) !== false)
                                      {
                                       $bReturn = true;
                                      }
                                   fclose($handle);
                                   }
                               }
                               return $bReturn;
                        }
   WriteToFile($_SERVER['DOCUMENT_ROOT'].'/rss/rss.xml', $to_file);

Работает безукоризненно, все статьи показывает НО на удаленном сервере по ссылке неоткрывает ниодну статью, более того на самом сайте во вовремя работы этого скрипта ниодна ссылка самого сайта правельно неработает.
Если учесть что на сайте ссылки работают с adodb то я так понимаю что нужен определенный специфический php код под  adodb?

С благодарностью за ответ.

187

Re: Как увеличить количество строк/знаков?

Victor2008
Думаю на удаленном сервере должно быть возможным подключение к MySQL без Adodb. Попробуйте весь этот код переписать так, чтобы добавить параметр соединения.

В коде помечено.

188

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Ксожалению код не заработал(тот что Вы отплавили на мое мыло с Вашими правками тоже молчит).
Покопавшись в глаза бросается интересное дело:
global $conn, $yr, $mnt, $day, $cnt;   
    $to_file  = '';
    $to_file .= '<?xml version="1.0" encoding="windows-1251"?>
                 <rss version="2.0">
                 <channel>
                 <image>
                 <url>http://'.$_SERVER["HTTP_HOST"].'/rss/logo.gif</url>
                 <title>газета «Слава Севастополя»></title>
                 <link>http://'.$_SERVER["HTTP_HOST"].'</link>
                 </image>
                 <title>газета «Слава Севастополя»</title>
                 <link>http://'.$_SERVER["HTTP_HOST"].'</link>                 
                 <description>«Слава Севастополя»</description>
                ';         
     
     $hostname = "localhost";
     $username = "user";
     $password = "password";     
     $dbName = "slava_sebastopol_ua";   
     $userstable = "material";
     
     @mysql_connect ( $hostname, $username, $password, $dbName );   
     @mysql_select_db("slava_sebastopol_ua")
     or die(mysql_error());
     
     //с этим запросом отображает дату но невыбирают текст из базы
     $res = $conn->Execute ( "SELECT zagol, vrez, text, podp, id FROM $userstable WHERE year='$yr' AND month='$mnt' AND day='$day' ORDER BY id DESC LIMIT 10");

    //с этим запросом из базы выбирает текст но только самую последнюю запись, а остальных девять не отображает дату из базы не выбирает (дата для каждой статьи записывается в отдельную ячейку)
    $res = $conn->Execute ( "SELECT zagol, vrez, text, podp, id FROM $userstable ORDER BY id DESC LIMIT 10");

    //в качестве статистики оставил текущую дату(хотя может это и лишнее?)
    $date = date('j M Y O', strtotime($data['date']));
   
   //есть выборка количества отображения текста
   $text = substr( $res->fields[ 'vrez' ].$res->fields[ 'text' ], 0, 250 );

   $to_file .= '   
                       <item>
                          <title><![CDATA['.$res->fields[ 'zagol' ].']]></title>
                          <pubDate>'.$date.'</pubDate>
                          <pubDate>'.$yr.'-'.$mnt.'-'.$day.'</pubDate>                         
                          <link>'.anchor( "staty_show", $yr, $mnt, $day, $res->fields['id'], "", "Читать полностью...", "", "text" ).'</a></link>
                          <description><![CDATA['.$text.'...]]></description>
                          <author>'.$res->fields[ 'podp' ].'</author>
                       </item>
                      ';

      $to_file .= '
                       </channel>
                       </rss>
                       ';
    function WriteToFile($sFile, $str, $mode = 'w')
                        {
                            $bReturn = false;
                            if (is_writable($sFile))
                               {
                                if ($handle = fopen($sFile, $mode))
                                   {
                                   if (fwrite($handle, $str) !== false)
                                      {
                                       $bReturn = true;
                                      }
                                   fclose($handle);
                                   }
                               }
                               return $bReturn;
                        }
   WriteToFile($_SERVER['DOCUMENT_ROOT'].'/rss/rss.xml', $to_file);

   //в самом rss.xml вот какие строки есть в коде, но в браузере почему-то неотображаются
  <?xml version="1.0" encoding="windows-1251"?>
                 <rss version="2.0">
                 <channel>
                 <image>
                 <url>http://slava.sebastopol.ua/rss/logo.gif</url>
                 <title>газета «Слава Севастополя»></title>
                 <link>http://slava.sebastopol.ua</link>
                 </image>

                 <title>газета «Слава Севастополя»</title>
                 <link>http://slava.sebastopol.ua</link>                 
                 <description>«Слава Севастополя»</description>
                   
                       <item>
                          <title><![CDATA[Сергей Куницын приветствовал участницу конкурса красоты "Королева Украины-2010" Александру Никитину<br>]]></title>
                          <pubDate>25 Mar 2010 +0200</pubDate>
                          <pubDate>2010-3-25</pubDate>
                          <link><a href="http://slava.sebastopol.ua?cnt=staty_show&yr=2010&mnt=4&day=25&id=21604" class="text" title="Читать полностью..."></a></link>
                          <description><![CDATA[20 марта в Киеве состоялся конкурс красоты "Королева Украины-2010". <br>
В нем приняли участие 24 девушки из различных регионов страны. <br>
Одной из победительниц конкурса в номинации "Королева Украины-Земля" стала 20-летняя студентка СевНТУ <br>
...]]></description>
                          <author>Пресс-служба СГГА.<br></author>
                       </item>
                     
                       </channel>
                       </rss>
интересно еще то что между тегами <pubDate>2010-3-25</pubDate> дата отображается правельная,

а в ссылке <a href="http://slava.sebastopol.ua?cnt=staty_show&yr=2010&mnt=4&day=25&id=21604" class="text" title="Читать полностью..."></a>   

здесь- &yr=2010&mnt=4&day=25& не правельная интересно что при каждом обновлении открытой страницы RSS в ссылке дата каждый раз меняется, не меняется только id.
И еще в ссылке нехватает одного слеша - / - перед вопросительным знаком, а как его туда вставить? При этом абсолюдно все ссылки на сайте работают браузер никаких ошибок не выдает

С благодарностью за ответ.

189

Re: Как увеличить количество строк/знаков?

Victor2008 сказал:

И еще в ссылке нехватает одного слеша - / - перед вопросительным знаком, а как его туда вставить?

В функции anchor().

В теге <link> должен быть URL, а не тег <a>.

Двух <pubDate> делать не надо.

Внутри тегов RSS не должно быть HTML тегов, которые убираются функцией strip_tags().

Чем я еще могу помочь?

190

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Спасибо за детальный ответ.

Тег <pubDate> убиру, оставлю один.

Код с <?xml version="1.0" encoding="windows-1251"?> и так далее мной был перемещен из отдельного файла rss.php в php файал в котором расположен код благодаря которому работают все ссылки на сайте:
function anchor() находится в файле с остальным php скриптом и в том виде в котором он есть все работает.

Неработает только ссылки rss. Может быть нужно переделать тот вид кода ссылки:
anchor( "staty_show", $yr, $mnt, $day, $res->fields['id'], "", "Читать полностью...", "", "text" )
используя глобальные переменные:
global $conn, $yr, $mnt, $day, $cnt
и в переделанный код вставить недостающий слеш /? Ведь на всех остальных ссылках статей кроме rss везде слеш еть.

Хорошо, html отступы <br> убиру. Скажите еще такое пробовал для тега <br> задать отдельный стиль вида:
.BR {padding-bottom: 10px;}
чтобы недописывать по два тега для отступов между абзацами текста, а чтобы стилем регулировать отступ. При формирования текста для отправки на сайт в коде сделано так что абсолюдно весь текст статьи находится внутри <p></p> а промежуток между абзацами автоматически регулируются наличием тега <br> сам этот тег закрывается в php коде знаками ###.
Но стиль для тега <br> неработает. Почему?

Спасибо за помощ.
С благодарностью за ответ

191

Re: Как увеличить количество строк/знаков?

Victor2008 сказал:

function anchor() находится в файле с остальным php скриптом и в том виде в котором он есть все работает.

В теге <link> должен быть URL, а не тег <a>. Соберите ссылку без этой функции.

Для <br> стиль задавать не надо, это не правильно. При выводе можно заменять перевод строки на тег <br /> с помощью PHP функции nl2br().

192

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

На сайте, который поддерживаю в рабочем состоянии, недавно обновил макет шаблона был табличный заменил на блочный. Кроме того если раньше в табличном шаблоне страница с полной версией статьи открывалась в том же шаблоне что и сокращенная версия статьи(т.е. посетитель видя сокращенную версию статьи нажимал на текст и осуществлял переход в том же шаблоне на полную версию статьи). В таком варианте все дефисы, которые были в тексте видны(в сокращенном варианте), в открытом вариатне(полной версии статьи) становились терехами, а терехи оставались без изменений.

Теперь макет после обновления с табличной на блочную версию статьи открывается в новой странице-шаблоне, который есть отдельным index.php файлом(раньше все статьи открывались посредством php кода в одном index файле). Эта страница-шаблон у которой макет отличается от главной страницы. Открывается все хорошо, нареканий/ошибок нет.

Ситуация с текстом немного иначе теперь на странице с полной версией статьи в тексте вместо дефисов отображаются буквы "в", тирехи без изменений. Пробовал что-либо менять в файле css но результата это непринесло никакого. В сокращенном виде текст статьи корректно отображает как терехи так и дефисы, а при открытии статьи вместо дефисов быквы "в". Пытался непосредственно в php код встраивать тег <span ckass="text"></span> либо <p ckass="text"></p> и в стилях css задавать параметры текста, однако, когда открываю полную версию статьи дефисок в тексте все равно нет. Такая ситуация во всех браузерах без исключений, в строке стиля css ипользуется шрифты Arial, Helvetica, sans-serif.

Просьба, если возможно помогите.

193

Re: Как увеличить количество строк/знаков?

Victor2008
Покажите пример того как отображаются символы и как должны. Что такое "тирехи" - я не понял.

Если есть возможность, то посмотрите как в БД хранятся символы, тогда можно будет понять подвергаются они преобразованию или нет.

194 (изменено: Victor2008, 2010-12-27 15:41:36)

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Ситуацию решил. Оказалось что невсе знаки в часности "--" копируясь вместе с кодом вставляются благополучно, после вставления знаки, которые в кавычках меняются на другие и это к сожалению не срезу бросается в глаза. В моем случае пришлось вручную редактировать/заменять знак. На данный момент все работает.

Спасибо за помощ.

195

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

У меня просьба о помощи.
Есть база, со статьями, авторами, рубриками, годами. Для каждого данного есть поле с именем типа counter_rubr и в этом поле масса значений/записей прим. enum('others', 'tema', 'anons','glavnoe'). Нужно сделать для посетителей список выборку по месяцам, годам, рубрикам, и чтоб список был без кнопки "просмотр", а как только выбираешь пункт из списка, автоматически на экране монитора отображались статьи отсортированные согласно выбранным значениям из предложенных в списках.

Часть кода:
     <table><tr>
     <td>
      <!--&nbsp;Рубрики:-->
      <select name="rubriki" required>
      <option value="" selected></option>
      <option value="others">Другие</option>
      <option value="tema">Тема</option>
      <option value="anons">анонс</option>
     <option value="glavnoe">Главное</option>
    </select>     
      </td></tr></table>

Понимаю что name="rubriki" будет выглядеть как $rubriki, Параметр месяц и год, берутся таким образом:
<table><tr><td>
      <!--&nbsp;Год:-->
      <select name="sel_year" required>
      <option value="" selected></option>
      <?php     
      for ( $i = 2002; $i <= $year; $i++ )
         echo '<option value="'.$i.'" '.( ( date( "Y" ) == $i ) ? "selected" : "" ).'>'.$i.'</option>';
      ?>
      </select>
      </td>
   
      <td>
     <!--&nbsp;Месяц:-->
     <select name="sel_month" required>
     <option value="" selected ></option>
     <?php
     for ( $i = 0; $i <= 11; $i++ )
        echo '<option value="'.$i.'" '.( ( sprintf( "%d", date( "m" )-1 ) == $i ) ? "selected" : "" ).'>'.$string_mnt[ $i ].'</option>';
     ?>
     </select>
      </td></tr></table>
Год будет выглядеть как name="sel_year" т.е. $sel_year, и name="sel_month" как $sel_month.

Однако как делать запрос на выборку из базы без кнопки "просмотр", так чтоб как только выбираешь из списка статьи автоматически появлялись в окне браузера и при этом не пропадали выпадающие списки?

Заранее благодарен за ответ.

196

Re: Как увеличить количество строк/знаков?

Если вы отправляете данные из формы методом POST, то name="sel_year" будет не переменной $sel_year, а элементом глобального массива $_POST, то есть $_POST['sel_year'].

Все поля и списки вложите в тег form.

<form action="" method="post" id="main_form">

На списках добавьте обработку события onchange.

<select name="rubriki" required onchange="javascript:document.getElementById('main_form').submit();">

При формировании списков делайте так:

echo '<option value="'.$i.'" '.( ((isset($_POST['sel_year']) && $_POST['sel_year'] == $i) || (!isset($_POST['sel_year']) && date( "Y" ) == $i) ) ? "selected" : "" ).'>'.$i.'</option>';

197

Re: Как увеличить количество строк/знаков?

Доброго времени суток.
Нужно чтобы средствами php без входа(вход через виджет Loginza) на сайте нельзя было нажать на кнопки:
disabled="disabled" или disabled="enable"
Как использовать сессию для активации/деактивации кнопки? Посредством  session_start()?
session_start(){
//если вошли на сайт для одного нажатия disabled="enable" или disabled="falshe"
}
else{
// если на сайт не вошли то disabled="disabled" или disabled="true"
}
С благодарностью за ответ.

198

Re: Как увеличить количество строк/знаков?

Пример кода:
для вошедшего пользователя
<input name="an" type="radio" size="12" value="'.$i.'" class="form" />
<input type="submit" value="Ответить" class="form" />
Пример кода:
для невошедшего пользователя
<input name="an" type="radio" size="12" value="'.$i.'" class="form" disabled="disabled" />
<input type="submit" value="Ответить" class="form" disabled="disabled" />

P.S. При отправке сообщения невсегда появляется ячейка для ввода математического ответа для робота

199

Re: Как увеличить количество строк/знаков?

Victor2008 сказал:

Как использовать сессию для активации/деактивации кнопки? Посредством  session_start()?

Думаю надо проверять наличие переменной сессии.

session_start();
if (isset($_SESSION['test'])) {
// Переменная сессии существует
} esle {
// Переменной сессии нет
}

200 (изменено: Victor2008, 2011-10-18 21:32:07)

Re: Как увеличить количество строк/знаков?

Доброго времени суток.

Спасибо за отклик.
В итоге у меня получился такой код:
<table border="0" cellspacing="0" cellpadding="0"><!-- width="228px"-->
    <tr>
      <td align="left">';
      session_start();
if (isset($_SESSION['user'])) {
        $text_out = '
        <form action="" method="POST" class="sl">
          <input name="id" type="hidden" value="'.$temp_array['id'].'" class="form" />
          <input name="act" type="hidden" value="add" class="form" disabled="enabled" />
          <input name="cnt" type="hidden" value="opros2" class="form" />
          <center>'.$temp_array[ 'zagol'].'</center><br>';
          for( $i = 1; $i <= 20; $i++ )
              {
                  if( $temp_array[ "an".$i ] != "" )
                      {
                          $text_out .= '
          <input name="an" type="radio" size="12" value="'.$i.'" class="form" />&nbsp;'.$temp_array[ "an".$i ].'<br>';
                      }
              }
          $text_out .= '
          <br>
          <center>
          <input type="submit" value="Ответить" class="form"  disabled="enabled" />
         
                  <br>'.
                  anchor( "opros3", 1, 1, 1, $temp_array['id'], "list" ).'Просмотр результатов тестирования.</a>
          </center>
        </form>';
} esle {
$text_out = '
<form action="" method="POST" class="sl">
          <input name="id" type="hidden" value="'.$temp_array['id'].'" class="form" />
          <input name="act" type="hidden" value="add" class="form" disabled="disabled" />
          <input name="cnt" type="hidden" value="opros2" class="form" />
          <center>'.$temp_array[ 'zagol'].'</center><br>';
          for( $i = 1; $i <= 20; $i++ )
              {
                  if( $temp_array[ "an".$i ] != "" )
                      {
                          $text_out .= '
          <input name="an" type="radio" size="12" value="'.$i.'" class="form" />&nbsp;'.$temp_array[ "an".$i ].'<br>';
                      }
              }
          $text_out .= '
          <br>
          <center>
          <input type="submit" value="Ответить" class="form" disabled="disabled" />
         
                  <br>'.
                  anchor( "opros3", 1, 1, 1, $temp_array['id'], "list" ).'Просмотр результатов тестирования.</a>
          </center>
        </form>';
        }
     $text_out = ' </td>
    </tr>
</table>
Однако браузер выдает ошибку:
} esle { <- эта скобка!
$text_out = '
Мне нужно чтобы без входа(регистрации через виджет Loginza) на сайт радио-кнопка голосования и кнопка подтверждения голоса были неоступны к нажатию, но видны, а после входа на сайт через регистрацию как пользователь радио-кнопка и кнопка подтверждения голоса были доступны. Возможно мной был не верно выбран метод через сессию? Регистрация происходит не на сервере где установлен сайт, а через существующую регистрационную запись где-либо в сети. Логизна отмечает/фиксирует вход на сайт.
С благодарностью за ответ.