PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (15): В начало « ... 6 7 8 9 [10] 11 12 13 14 ... » В конец

> Найдено сообщений: 213
Coder1994 Отправлено: 24 Декабря, 2010 - 13:03:52 • Тема: Не могу сделать мелочь в классе! • Форум: Программирование на PHP

Ответов: 15
Просмотров: 996
Здравствуйте! Имеетс класс постр. навигации.
PHP:
скопировать код в буфер обмена
  1. <?
  2. class Paging {
  3.  
  4. private $page_size = 10;
  5. private $link_padding = 10;
  6. private $page_link_separator = ' ';
  7. private $next_page_text = 'Далее->';
  8. private $prev_page_text = '<-Назад';
  9. private $result_text_pattern = 'Показано с %s по %s из %s';
  10. private $page_var = 'p';
  11.  
  12. private $mysqli;
  13. private $q;
  14. private $total_rows;
  15. private $total_pages;
  16. private $cur_page;
  17.  
  18. public function __construct($mysqli, $q='', $page_var='p')
  19. {
  20.     $this->db = $mysqli;
  21.     if ($q) $this->set_query($q);
  22.     $this->page_var = $page_var;
  23.     $this->cur_page = isset($_GET[$this->page_var]) && (int)$_GET[$this->page_var] > 0 ? (int)$_GET[$this->page_var] : 1;
  24. }
  25.  
  26. public function set_query($q)
  27. {
  28.     $this->q = $q;
  29. }
  30.  
  31. public function set_page_size($page_size)
  32. {
  33.     $this->page_size = abs((int)$page_size);
  34. }
  35.  
  36. public function set_link_padding($padding)
  37. {
  38.     $this->link_padding = abs((int)$padding);
  39. }
  40.  
  41. public function get_page($q='')
  42. {
  43.     if ($q) $this->set_query($q);
  44.  
  45.     $r = $this->db->query( $this->query_paging($this->q) );
  46.     $this->total_rows = array_pop($this->db->query('SELECT FOUND_ROWS()')->fetch_row());
  47.  
  48.     if ($this->page_size !== 0) $this->total_pages = ceil($this->total_rows/$this->page_size);
  49.    
  50.     if ($this->cur_page > $this->total_pages)
  51.     {
  52.         $this->cur_page = $this->total_pages;
  53.         if ( $this->total_pages > 0 ) $r = $this->db->query( $this->query_paging($this->q) );
  54.     }
  55.    
  56.     return $r;
  57. }
  58.  
  59. public function get_result_text()
  60. {
  61.     $start = (($this->cur_page-1) * $this->page_size)+1;
  62.     $end = (($start-1+$this->page_size) >= $this->total_rows)? $this->total_rows:($start-1+$this->page_size);
  63.  
  64.     return sprintf($this->result_text_pattern, $start, $end, $this->total_rows);
  65. }
  66.  
  67. public function get_page_links()
  68. {
  69.     if ( !isset($this->total_pages) ) return '';
  70.  
  71.     $page_link_list = array();
  72.  
  73.     $start = $this->cur_page - $this->link_padding;
  74.     if ( $start < 1 ) $start = 1;
  75.     $end = $this->cur_page + $this->link_padding-1;
  76.     if ( $end > $this->total_pages ) $end = $this->total_pages;
  77.  
  78.     if ( $start > 1 )  $page_link_list[] = $this->get_page_link( $start-1, $start - 2 > 0 ? '...' : '' );
  79.     for ($i=$start; $i <= $end; $i++)  $page_link_list[] = $this->get_page_link( $i );
  80.     if ( $end + 1 < $this->total_pages ) $page_link_list[] = $this->get_page_link( $end +1, $end + 2 == $this->total_pages ? '' : '...' );
  81.     if ( $end + 1 <= $this->total_pages ) $page_link_list[] = $this->get_page_link( $this->total_pages );
  82.  
  83.     return implode($this->page_link_separator, $page_link_list);
  84. }
  85.  
  86. public function get_next_page_link()
  87. {
  88.     return isset($this->total_pages) && $this->cur_page < $this->total_pages ? $this->get_page_link( $this->cur_page + 1, $this->next_page_text ) : '';
  89. }
  90.  
  91. public function get_prev_page_link()
  92. {
  93.     return isset($this->total_pages) && $this->cur_page > 1 ? $this->get_page_link( $this->cur_page - 1, $this->prev_page_text ) : '';
  94. }
  95.  
  96. private function get_page_link($page, $text='')
  97. {
  98.     if (!$text)    $text = $page;
  99.  
  100.     if ($page != $this->cur_page)
  101.     {
  102.         $reg = '/((&|^)'.$this->page_var.'=)[^&#]*/';
  103.         $url = '?'.( preg_match( $reg, $_SERVER['QUERY_STRING'] ) ? preg_replace($reg, '${1}'.$page, $_SERVER['QUERY_STRING']) : ( $_SERVER['QUERY_STRING'] ? $_SERVER['QUERY_STRING'].'&' : '' ).$this->page_var.'='.$page);
  104.         return '<a href="'.$url.'">'.$text.'</a>';
  105.     }
  106.     return '<span>'.$text.'</span>';
  107. }
  108.  
  109. private function query_paging()
  110. {
  111.     $q = $this->q;
  112.  
  113.     if ($this->page_size != 0)
  114.     {
  115.         //calculate the starting row
  116.         $start = ($this->cur_page-1) * $this->page_size;
  117.         //insert SQL_CALC_FOUND_ROWS and add the LIMIT
  118.         $q = preg_replace('/^SELECT\s+/i', 'SELECT SQL_CALC_FOUND_ROWS ', $this->q)." LIMIT {$start},{$this->page_size}";
  119.     }
  120.  
  121.     return $q;
  122. }
  123. }
  124. ?>

(Добавление)
Так вот проблема в:
PHP:
скопировать код в буфер обмена
  1. private function get_page_link($page, $text='')
  2. {
  3.     if (!$text)    $text = $page;
  4.  
  5.     if ($page != $this->cur_page)
  6.     {
  7.         $reg = '/((&|^)'.$this->page_var.'=)[^&#]*/';
  8.         $url = '?'.( preg_match( $reg, $_SERVER['QUERY_STRING'] ) ? preg_replace($reg, '${1}'.$page, $_SERVER['QUERY_STRING']) : ( $_SERVER['QUERY_STRING'] ? $_SERVER['QUERY_STRING'].'&' : '' ).$this->page_var.'='.$page);
  9.         return '<a href="'.$url.'">'.$text.'</a>';
  10.     }
  11.     return '<span>'.$text.'</span>';
  12. }

Ссылки на страницу выводятся не валидными со стандартами xHTML. Пример ссылки на страницу: http://example[dot]org/forum/theme.php?id=1&p=2
А должно быть - http://example[dot]org/forum/theme[dot]p[dot][dot][dot]id=1&amp;p=2
(Добавление)
Как я вижу дело в этих строках:
PHP:
скопировать код в буфер обмена
  1. $reg = '/((&|^)'.$this->page_var.'=)[^&#]*/';
  2.         $url = '?'.( preg_match( $reg, $_SERVER['QUERY_STRING'] ) ? preg_replace($reg, '${1}'.$page, $_SERVER['QUERY_STRING']) : ( $_SERVER['QUERY_STRING'] ? $_SERVER['QUERY_STRING'].'&' : '' ).$this->page_var.'='.$page);

но сколько я их не редачил ничего не изменялось, даже в хтаццесс прописал:
CODE (htmlphp):
скопировать код в буфер обмена
  1. php_value arg_separator.output "& amp;"
(уберите пробел, а то здесь не получается написать слитно, на этом форуме выводится &)
Coder1994 Отправлено: 07 Декабря, 2010 - 17:17:07 • Тема: Помогите • Форум: Программирование на PHP

Ответов: 5
Просмотров: 345
Mod Rewrite вам в помощь
Coder1994 Отправлено: 07 Декабря, 2010 - 14:27:32 • Тема: Некорректная работы парсера XML-данных с gismeteo • Форум: Программирование на PHP

Ответов: 3
Просмотров: 2064
Вот код файла вывода погоды:
PHP:
скопировать код в буфер обмена
  1. <?
  2. require_once 'class.weather.php';
  3. $w = new Weather; //Включаем класс
  4. $_GET['id'] = intval($_GET['id']);
  5. $w->ConnectCache("$_GET['id']_1.xml"); //Собираем информацию и КЕШруем её, ID города можно узнать по адрему http://informer.gismeteo.ru/xml.html?index=27612%CC%EE%F1%EA%E2%E0&&lang=ru
  6. echo $w->city;
  7. echo $w->weather;
  8. ?>

(Добавление)
Код файла class.weather.php:
PHP:
скопировать код в буфер обмена
  1. ?
  2. class Weather {
  3.         var $city;
  4.         var $weather;
  5.         var $encode = 'utf-8'; // Кодировка в которой будут выводиться данные
  6.         var $patchimg = 'weather/';
  7.         var $patchcache = '/var/www/weather/cache_weather/'; //Директория для хранение КЕШ-файлов, обычно задаётся полный путь к директории (например: для Windows 'X:/cache/wth/' для *Unix '/usr/www/site/cache/wth/')
  8.         //Подключаемся с использованием КЕШа, т.е. данные будут сохраняться в файл.
  9.         function ConnectCache($url, $expire =7200){//
  10.                 $mtime = 0;
  11.                 $file_cacheid = $this->patchcache . md5($url); //Создаём переменую с Директорией и зашифрованым файлом
  12.                 if($file_cacheid) $s=true; else $s=false; // Проверяем создалась ли переменная
  13.         if(!file_exists($file_cacheid)) $s=false; //Проверяем есть ли уже созданый КЕШ-файл
  14.         if(!($mtime = @filemtime($file_cacheid))) $s=false; //Если нет переменной времени создания/изменения файлов то возвращаем false
  15.         if(($mtime + $expire) < time()){ //Проверяем устарел ли файл, проверяется в зависимости от установленой $expire по умолчанию она стоит 7200, т.е. данные будут обновляться каждые 2 часа
  16.             @unlink($file_cacheid); //Если устарел удаляем его.
  17.             $s=false;
  18.         }
  19.         else {
  20.            $s=true;
  21.         }
  22.                 if ((!$s)) { //Если устарел файл, то создаём новый
  23.                         if(file_exists($file_cacheid))
  24.                                 @unlink($file_cacheid); //удаляем его, если не удалён
  25.                         $url = 'http://informer.gismeteo.ru/xml/'.$url; //Генерируем URL
  26.                         $content = file_get_contents($url);
  27.                         $content = str_replace(array(''.chr(11).'',''.chr(13).'',''.chr(10).'',''.chr(9).'','\n','\r','/',' '),array(''),$content);
  28.                         $this->city=$this->pCity($content);
  29.                         $this->weather=$this->Parser($content);
  30.                         if($fp = @fopen($file_cacheid, 'w')) {
  31.                 fwrite($fp, ''.$this->city.'|'.$this->weather.'|'); //Записываем в файл в виде маски город|погода|, если изменить придёться поменять и способ разбивки, который парсит данные из файла.
  32.                 fclose($fp);
  33.             }
  34.             else {
  35.                 die('Unable to write cache.');
  36.             }
  37.  
  38.                 } else {
  39.                         $fp = @fopen($file_cacheid, 'r'); //Открываем КЕШ-файл
  40.                         $p = explode('|',fread($fp, filesize($file_cacheid))); //Cпособ рабития на массив |, читайм файл
  41.             fclose($fp);
  42.                        
  43.                         if ($this->encode !== 'windows-1251'){// Если кодировка не windows-1251 и требуется перекодирование
  44.                         $this->city = iconv ("windows-1251", $this->encode, $p[0]); //Задаём переменной $city название города из КЕш-файла с учетом необходимой кодировки
  45.                         $this->weather = iconv ("windows-1251", $this->encode, $p[1]); //Задаём переменной $weather дфнные погоды из КЕш-файла с учетом необходимой кодировки
  46.                 }
  47.                                 else{// Если кодировка windows-1251
  48.                         $this->city = $p[0]; //Задаём переменной $city название города из КЕш-файла
  49.                         $this->weather = $p[1]; //Задаём переменной $weather дфнные погоды из КЕш-файла
  50.                 }
  51.                
  52.                
  53.                
  54.                 }
  55.         }
  56.         //Парсим название города
  57.         function pCity($content){
  58.                 $str = "<TOWNindex=\"(.*)\"sname=\"(.*)\"latitude=\"(.*)\"longitude=\"(.*)\">";
  59.                 if (eregi($str,$content,$out)){
  60.                         return urldecode($out[2]);
  61.                 } else return 'Unknow';
  62.         }
  63.         //Парсим погоду
  64.         function Parser($content){
  65.                 if ($content){
  66.                         $str='<FORECASTday="([0-9]{1,2})"month="([0-9]{1,2})"year="([0-9]{4})"hour="([0-9]{1,2})"tod="([0-9]{1})"predict="([0-9]{1,3})"weekday="([0-9]{1})"><PHENOMENAcloudiness="([0-3])"precipitation="([0-9]{1,2})"rpower="([0-1])"spower="([0-1])"><PRESSUREmax="([0-9]{1,3})"min="([0-9]{1,3})"><TEMPERATUREmax="([-,0-9]{1,3})"min="([-,0-9]{1,3})"><WINDmin="([0-9]{1,3})"max="([0-9]{1,3})"direction="([0-9]{1})"><RELWETmax="([0-9]{1,3})"min="([0-9]{1,3})"><HEATmin="([-,0-9]{1,3})"max="([-,0-9]{1,3})"><FORECAST>'.
  67.                         '<FORECASTday="([0-9]{1,2})"month="([0-9]{1,2})"year="([0-9]{4})"hour="([0-9]{1,2})"tod="([0-9]{1})"predict="([0-9]{1,3})"weekday="([0-9]{1})"><PHENOMENAcloudiness="([0-3])"precipitation="([0-9]{1,2})"rpower="([0-1])"spower="([0-1])"><PRESSUREmax="([0-9]{1,3})"min="([0-9]{1,3})"><TEMPERATUREmax="([-,0-9]{1,3})"min="([-,0-9]{1,3})"><WINDmin="([0-9]{1,3})"max="([0-9]{1,3})"direction="([0-9]{1})"><RELWETmax="([0-9]{1,3})"min="([0-9]{1,3})"><HEATmin="([-,0-9]{1,3})"max="([-,0-9]{1,3})"><FORECAST>'.
  68.                         '<FORECASTday="([0-9]{1,2})"month="([0-9]{1,2})"year="([0-9]{4})"hour="([0-9]{1,2})"tod="([0-9]{1})"predict="([0-9]{1,3})"weekday="([0-9]{1})"><PHENOMENAcloudiness="([0-3])"precipitation="([0-9]{1,2})"rpower="([0-1])"spower="([0-1])"><PRESSUREmax="([0-9]{1,3})"min="([0-9]{1,3})"><TEMPERATUREmax="([-,0-9]{1,3})"min="([-,0-9]{1,3})"><WINDmin="([0-9]{1,3})"max="([0-9]{1,3})"direction="([0-9]{1})"><RELWETmax="([0-9]{1,3})"min="([0-9]{1,3})"><HEATmin="([-,0-9]{1,3})"max="([-,0-9]{1,3})"><FORECAST>'.                    
  69.                         '<FORECASTday="([0-9]{1,2})"month="([0-9]{1,2})"year="([0-9]{4})"hour="([0-9]{1,2})"tod="([0-9]{1})"predict="([0-9]{1,3})"weekday="([0-9]{1})"><PHENOMENAcloudiness="([0-3])"precipitation="([0-9]{1,2})"rpower="([0-1])"spower="([0-1])"><PRESSUREmax="([0-9]{1,3})"min="([0-9]{1,3})"><TEMPERATUREmax="([-,0-9]{1,3})"min="([-,0-9]{1,3})"><WINDmin="([0-9]{1,3})"max="([0-9]{1,3})"direction="([0-9]{1})"><RELWETmax="([0-9]{1,3})"min="([0-9]{1,3})"><HEATmin="([-,0-9]{1,3})"max="([-,0-9]{1,3})"><FORECAST>';
  70.                         if (eregi($str,$content,$out)){
  71.                                 return $this->arr($out);
  72.                         } else return ' Ошибка в данных сайта gismeteo.ru! ';
  73.                 } else return 'Ошибка! Соединения с '.$url.'';
  74.         }
  75.         //Задаём картинки для каждого типа осадков
  76.  
  77.         function imgcloud($n){
  78.                 $n=ceil($n);
  79.                 $cloudiness=array(
  80.                 '0' => "<img src=".$this->patchimg."0".(($n=='0' || $n=='4')?'_night':'').".gif style=\"float:left;margin-top:5px;\" alt=\"Ясно\" title=\"Ясно\">", //Тип погоды Ясно, путь к картинки задан ".$this->patchimg." , сама переменная задаётся выше. Данное действие означает ".(($n=='0' || $n=='4')?'_night':'')." добавлять или нет к картинки приставку _night, т.е. картинка показываюшаяя погоду в ночное время суток.
  81.                 '1' => "<img src=".$this->patchimg."1".(($n=='0' || $n=='4')?'_night':'').".gif style=\"float:left;margin-top:7px;\" alt=\"Малооблачно\" title=\"Малооблачно\">", //Тип погоды Малооблачно, далее по анологии, тип погоды находиться  в теге title=\" Малооблачно \", если вы не желаете использовать картинки просто удалите вот эти даннные <img src=".$this->patchimg."1".(($n=='0' || $n=='4')?'_night':'').".gif style=\"float:left;margin-top:7px;\" alt=\"Малооблачно\" title=\"Малооблачно\"> оставьте только одно слово Малооблачно.
  82.                 '2' => "<img src=".$this->patchimg."2".(($n=='0' || $n=='4')?'_night':'').".gif style=\"float:left;margin-top:7px;\" alt=\"Облачно\" title=\"Облачно\">",
  83.                 '3' => "<img src=".$this->patchimg."3.gif style=\"float:left;margin-top:5px;\" alt=\"Пасмурно\" title=\"Пасмурно\">");
  84.                
  85.                 return $cloudiness;
  86.         }
  87.         //Задаём картинки для каждого типа осадков
  88.         function imgprecip($n){
  89.                 $n=ceil($n);
  90.                 $precipitation=array(
  91.                 '4' => "<img src=".$this->patchimg."4.gif style=\"float:left;margin-top:5px;\" alt=\"Дождь\" title=\"Дождь\">" ,
  92.                 '5' => "<img src=".$this->patchimg."5.gif style=\"float:left;margin-top:5px;\" alt=\"Ливень\" title=\"Ливень\">",
  93.                 '6' => "<img src=".$this->patchimg."6.gif style=\"float:left;margin-top:5px;\" alt=\"Снег\" title=\"Снег\">",
  94.                 '7' => "<img src=".$this->patchimg."6.gif style=\"float:left;margin-top:5px;\" alt=\"Снег\" title=\"Снег\">",
  95.                 '8' => "<img src=".$this->patchimg."8.gif style=\"float:left;margin-top:5px;\" alt=\"Гроза\" title=\"Гроза\">",
  96.                 '9' => "<img src=".$this->patchimg."9".(($n=='0' || $n=='4')?'_night':'').".gif style=\"float:left;margin-top:5px;\" alt=\"нет данных\" title=\"нет данных\">",
  97.                 '10' => "<img src=".$this->patchimg."10".(($n=='0' || $n=='4')?'_night':'').".gif style=\"float:left;margin-top:5px;\" alt=\"Ясно\" title=\"Ясно\">");
  98.                
  99.                 return $precipitation;
  100.         }
  101.        
  102.         function arr($out){
  103.                 $month_array = array( '1' => 'января' , '2' => 'февраля' , '3' => 'марта' , '4' => 'апреля' , '5' => 'мая' , '6' => 'июня' , '7' => 'июля' ,
  104.                 '8' => 'августа' , '9' => 'сентября' , '10' => 'октября' , '11' => 'ноября' , '12' => 'декабря' );
  105.                 $tod = array( '0' => 'Ночью' , '1' => 'Утром' , '2' => 'Днем' , '3' => 'Вечером' , '4' => 'Ночью' );
  106.                 $rpower = array( '0' =>' возможен дождь/снег' , '1' => ' дождь/снег' );
  107.                 $spower = array( '0' =>' возможна гроза', '1' => ' гроза' );
  108.                 $direction = array( '0' => 'северный' , '1' => 'северо-восточный' , '2' => 'восточный' , '3' => 'юго-восточный' , '4' => 'южный' , '5' => 'юго-западный' ,
  109.                 '6' => 'западный' , '7' => 'северо-западный' );
  110.                 $direction = array( '0' => 'северный' , '1' => 'северо-восточный' , '2' => 'восточный' , '3' => 'юго-восточный' , '4' => 'южный' , '5' => 'юго-западный' ,
  111.                 '6' => 'западный' , '7' => 'северо-западный' );
  112.                 $weekday = array( '1' => 'воскресенье' , '2' => 'понедельник' , '3' => 'вторник' , '4' => 'среду' , '5' => 'четверг' , '6' => 'пятницу' , '7' => 'субботу' );
  113.                
  114.                 $day1 = $out[1]; //День ввиде DD
  115.                 $month1 = $month_array[ceil($out[2])]; //День ввиде названия месяца, данные храняться в $month_array выше
  116.                 $tod1 = $tod[ceil($out[5])]; //Время суток в виде Ночь, Утро, День,  Вечер, Ночь, данные храняться в $tod  выше
  117.                 $weekday1 = $weekday[$out[7]]; // название дня недели воскресенье, понедельник .. суббота,  данные храняться в $weekday выше
  118.                                
  119.                 $rpower1 = $rpower[$out[10]]; //Вид осадков, данные храняться в $rpower
  120.                 $spower1 = $spower[$out[11]]; //Вид осадков, данные храняться в $spower
  121.                 if (($out[8] < 4) and ($out[8] >= 0) and ($out[9]=='10')) {
  122.                         $cloudiness=$this->imgcloud($out[5]); //задаём массив картинок погоды используя функцию imgcloud()
  123.                         $cloudiness1 = $cloudiness[$out[8]]; //задаём картинку
  124.                 } else {
  125.                         $precipitation=$this->imgprecip($out[5]); //задаём массив картинок погоды используя функцию imgprecip()
  126.                         $precipitation1 = $precipitation[$out[9]]; //задаём картинку
  127.                 }
  128.                                
  129.                 $pressureMAX1 = $out[12]; //Минимальное атмосферное давление, в мм.рт.ст.
  130.                 $pressureMIN1 = $out[13]; //Максимальное атмосферное давление, в мм.рт.ст.
  131.                 $tempMIN1 = $out[15]; //Минимальная температура воздуха, в градусах Цельсия
  132.                 $tempMAX1 = $out[14]; //Максимальная температура воздуха, в градусах Цельсия
  133.                 $windMIN1 = $out[16]; //Минимальное значения средней скорости ветра, без порывов
  134.                 $windMAX1 = $out[17]; //Максимальное значения средней скорости ветра, без порывов
  135.                 $direction1 = $direction[$out[18]]; //направление ветра в румбах, 0 - северный, 1 - северо-восточный,  и т.д., данные храняться в $direction выше
  136.                 $relwenMIN1 = $out[20]; //Минимальная относительная влажность воздуха, в %
  137.                 $relwenMAX1 = $out[19]; //Максимальная относительная влажность воздуха, в %
  138.                 $heatMIN1 = $out[21]; //Минимальный комфорт - температура воздуха по ощущению одетого по сезону человека, выходящего на улицу
  139.                 $heatMAX1 = $out[22]; //Максимальный комфорт - температура воздуха по ощущению одетого по сезону человека, выходящего на улицу
  140.                 //Ниже по аналогии названы переменные изменно положение суток, т.е. можно выводить 3 положения на целые сутки, например  День пятницы Вчер пятницы и Ночь субботы.
  141.                 $day2 = $out[23];
  142.                 $month2 = $month_array[ceil($out[24])];
  143.                 $tod2 = $tod[ceil($out[27])];
  144.                 $weekday2 = $weekday[$out[29]];
  145.                                
  146.                 $rpower2 = $rpower[$out[32]];
  147.                 $spower2 = $spower[$out[33]];
  148.                                
  149.                 if (($out[30] < 4) and ($out[30] >= 0) and ($out[31]=='10')) {
  150.                         $cloudiness=$this->imgcloud($out[27]);
  151.                         $cloudiness2 = $cloudiness[$out[30]];
  152.                 } else {
  153.                         $precipitation=$this->imgprecip($out[27]);
  154.                         $precipitation2 = $precipitation[$out[31]];
  155.                 }
  156.                                
  157.                 $pressureMIN2 = $out[35];
  158.                 $pressureMAX2 = $out[34];
  159.                 $tempMIN2 = $out[37];
  160.                 $tempMAX2 = $out[36];
  161.                 $windMIN2 = $out[38];
  162.                 $windMAX2 = $out[39];
  163.                 $direction2 = $direction[$out[40]];
  164.                 $relwenMIN2 = $out[42];
  165.                 $relwenMAX2 = $out[41];
  166.                 $heatMIN2 = $out[43];
  167.                 $heatMAX2 = $out[44];
  168.  
  169.                 $day3 = $out[45];
  170.                 $month3 = $month_array[ceil($out[46])];
  171.                 $tod3 = $tod[ceil($out[49])];
  172.                 $weekday3 = $weekday[$out[51]];
  173.                                
  174.                 $rpower3 = $rpower[$out[54]];
  175.                 $spower3 = $spower[$out[55]];
  176.                                
  177.                 if (($out[52] < 4) and ($out[52] >= 0) and ($out[53]=='10')) {
  178.                         $cloudiness=$this->imgcloud($out[49]);
  179.                         $cloudiness3 = $cloudiness[$out[52]];
  180.                 } else {
  181.                         $precipitation=$this->imgprecip($out[49]);
  182.                         $precipitation3 = $precipitation[$out[53]];
  183.                 }
  184.                                
  185.                 $pressureMIN3 = $out[57];
  186.                 $pressureMAX3 = $out[56];
  187.                 $tempMIN3 = $out[59];
  188.                 $tempMAX3 = $out[58];
  189.                 $windMIN3 = $out[60];
  190.                 $windMAX3 = $out[61];
  191.                 $direction3 = $direction[$out[62]];
  192.                 $relwenMIN3 = $out[64];
  193.                 $relwenMAX3 = $out[63];
  194.                 $heatMIN3 = $out[65];
  195.                 $heatMAX3 = $out[66];
  196.  
  197. /*------------------------------------------------------------------------*/
  198.                 $day4 = $out[67];
  199.                 $month4 = $month_array[ceil($out[68])];
  200.                 $tod4 = $tod[ceil($out[71])];
  201.                 $weekday4 = $weekday[$out[73]];
  202.                                
  203.                 $rpower4 = $rpower[$out[76]];
  204.                 $spower4 = $spower[$out[77]];
  205.                                
  206.                 if (($out[74] < 4) and ($out[74] >= 0) and ($out[74]=='10')) {
  207.                         $cloudiness=$this->imgcloud($out[71]);
  208.                         $cloudiness4 = $cloudiness[$out[52]];
  209.                 } else {
  210.                         $precipitation=$this->imgprecip($out[49]);
  211.                         $precipitation4 = $precipitation[$out[75]];
  212.                 }
  213.                                
  214.                 $pressureMIN4 = $out[79];
  215.                 $pressureMAX4 = $out[78];
  216.                 $tempMIN4 = $out[81];
  217.                 $tempMAX4 = $out[80];
  218.                 $windMIN4 = $out[83];
  219.                 $windMAX4 = $out[82];
  220.                 $direction4 = $direction[$out[84]];
  221.                 $relwenMIN4 = $out[86];
  222.                 $relwenMAX4 = $out[85];
  223.                 $heatMIN4 = $out[87];
  224.                 $heatMAX4 = $out[88];
  225.  
  226. /*-------------------------------------------------*/
  227.                
  228.                 /*
  229.                 Выможете изменить ниже строчки, добавить переменные такие как $relwenMIN1, $relwenMIN2,$relwenMIN3 и теже самые тока $relwenMAX1.. и др
  230.                 Также выможете убрать переменные которые вам не нужны или изменить вид их вывода.
  231.                 Данные в данном виде подойдут для вывода их по бокам сайта, т.е. в блоках.
  232.                 */
  233.                 $content .= "<div style=\"border-top:1px dashed #999999;\">".$cloudiness1." ".$precipitation1." <span style=\"font-size:12px;\">".$day1.$month1." в ".$weekday1."</span> <br /><b style=\"font-size:12px;\">".$tod1."   <span title=\"комфорт ".$heatMIN1."..".$heatMAX1."°C\">".$tempMIN1."°C...".$tempMAX1."°C</span></b><br /> <span style=\"font-size:10px;\">ветер ".$windMIN1."-".$windMAX1."м/c ".$direction1."</span></div>";
  234.                 $content .= "<div style=\"border-top:1px dashed #999999;border-bottom:1px dashed #999999;\">".$cloudiness2." ".$precipitation2." <span style=\"font-size:12px;\">".$day2." ".$month2." в ".$weekday2."</span> <br /><b style=\"font-size:12px;\">".$tod2."   <span title=\"комфорт ".$heatMIN2."..".$heatMAX2."°C\">".$tempMIN2."°C...".$tempMAX2."°C</span></b><br /> <span style=\"font-size:10px;\">ветер ".$windMIN2."-".$windMAX2."м/c ".$direction2."</span></div>";
  235.                 $content .= "<div style=\"border-bottom:1px dashed #999999;\">".$cloudiness3." ".$precipitation3." <span style=\"font-size:12px;\">".$day3." ".$month3." в ".$weekday3."</span> <br /><b style=\"font-size:12px;\">".$tod3." <span title=\"комфорт ".$heatMIN3."..".$heatMAX3."°C\">".$tempMIN3."°C...".$tempMAX3."°C</span></b><br /> <span style=\"font-size:10px;\">ветер ".$windMIN3."-".$windMAX3."м/c ".$direction3."</span></div>";
  236.                 $content .= "<div style=\"border-bottom:1px dashed #999999;\">".$cloudiness4." ".$precipitation4." <span style=\"font-size:12px;\">".$day4." ".$month4." в ".$weekday4."</span> <br /><b style=\"font-size:12px;\">".$tod4." <span title=\"комфорт ".$heatMIN4."..".$heatMAX4."°C\">".$tempMIN4."°C...".$tempMAX4."°C</span></b><br /> <span style=\"font-size:10px;\">ветер ".$windMIN4."-".$windMAX4."м/c ".$direction4."</span></div>";     
  237.                 return $content; //Выводим выше строчки
  238.  
  239.        
  240.         }
  241. }
  242. ?>

(Добавление)
Некорректность работы заклычается в том, что скрипт довольно часто очень долго грузит кэш, а иногда вообще выдаёт ошибку подключения...
В чём ошибка?
(Добавление)
Все пути указаны верно и права доступа 777 выставлены, $_GET['id'] тоже указывается верно
Coder1994 Отправлено: 06 Декабря, 2010 - 15:02:48 • Тема: Умник в чате • Форум: Работа с СУБД

Ответов: 5
Просмотров: 2932
Переписал код на mysqli, бот перестал выводить подсказки, т.е:
PHP:
скопировать код в буфер обмена
  1.  
  2. echo var_dump($umnik_vopros['otvet']);
  3. echo var_dump($umnik_vopros['vopros']);
  4.  

выводит: NULL NULL
Вот код:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $set['umnik_help'] = '30';
  4. $set['umnik_new'] = '30';
  5. $set['umnik_time'] = '90';
  6. $umnik_last = $mysqli->query("SELECT * FROM `chat_rooms`, `chat_posts` WHERE (`chat_rooms`.`umnik` = '1') ORDER BY `chat_posts`.`id` DESC");
  7. $umnik_last = $umnik_last->fetch_assoc();
  8.  
  9. if ($umnik_last!=NULL && $umnik_last['umnik_st']!=4 && $umnik_last['umnik_st']!=0)
  10. {
  11.         $umnik_vopros = $mysqli->query("SELECT * FROM `chat_quests` WHERE `id` = '$umnik_last[vopros]' LIMIT 1");
  12.         $umnik_vopros = $umnik_vopros->fetch_assoc();
  13.         $umnik_post = $mysqli->query("SELECT * FROM `chat_posts` WHERE `room_id` = '$_GET[id]' AND `text` like '%$umnik_vopros[otvet]%' AND `umnik_st` = '0' AND `time` >= '".($time-$umnik_last['time'])."' ORDER BY `id` ASC LIMIT 1");
  14.         $umnik_post = $umnik_post->fetch_assoc();
  15.         if($umnik_post!=NULL){
  16.                 $us = get_user($umnik_post['autor']);
  17.                 $add_credits=0;
  18.                 if ($umnik_last['umnik_st']==1){$add_credits=0.5;$pods='не используя подсказок';}
  19.                 if ($umnik_last['umnik_st']==2){$add_credits=0.1;$pods='используя одну подсказку';}
  20.                 if ($umnik_last['umnik_st']==3){$add_credits=0.05;$pods='используя обе посказки';}
  21.                 $msg="[b]$us[nick][/b] дал верный ответ на вопрос: [b]$umnik_vopros[vopros][/b] $pods.<br />\nЕго балланс увеличен на $add_credits кредитов.<br />\nСледующий вопрос будет через $set[umnik_new] секунд.";
  22.                 $mysqli->query("INSERT INTO `chat_posts` (`autor`, `umnik_st`, `time`, `text`, `room_id`, `quests`) values('0', '4', '$time', '$msg', '$_GET[id]', '$umnik_vopros[id]')");
  23.                 $mysqli->query("UPDATE `users` SET `credits` = '".($us['credits']+$add_credits)."' WHERE `id` = '$us[id]' LIMIT 1");
  24.         }
  25. }
  26.  
  27. $umnik_last1 = $mysqli->query("SELECT * FROM `chat_posts` WHERE `room_id` = '$_GET[id]' AND `umnik_st` = '1' ORDER BY id DESC");
  28. $umnik_last1 = $umnik_last1->fetch_assoc();
  29.  
  30. if ($umnik_last1!=NULL && $umnik_last['umnik_st']!=4 && $umnik_last1['time']<time()-$set['umnik_time'])
  31. {
  32.         $umnik_vopros = $mysqli->query("SELECT * FROM `chat_quests` WHERE `id` = '$umnik_last1[vopros]' LIMIT 1");
  33.         $umnik_vopros = $umnik_vopros->fetch_assoc();
  34.         $msg="На вопрос никто не ответил.<br />\nПравильный ответ: $umnik_vopros[otvet].<br />\nСледующий вопрос через $set[umnik_new] секунд.";
  35.         $mysqli->query("INSERT INTO `chat_posts` (`autor`, `umnik_st`, `time`, `text`, `room_id`, `quests`) values('0', '4', '$time', '$msg', '$_GET[id]', '$umnik_vopros[id]')");
  36. }
  37.  
  38. $umnik_last = $mysqli->query("SELECT * FROM `chat_posts` WHERE `room_id` = '$_GET[id]' AND `umnik_st` <> '0' ORDER BY id DESC");
  39. $umnik_last = $umnik_last->fetch_assoc();
  40.  
  41. if ($umnik_last==NULL || $umnik_last['umnik_st']==4 && $umnik_last['time']<time()-$set['umnik_new'])
  42. {
  43.         // задается вопрос
  44.         $k_vopr = $mysqli->query("SELECT * FROM `chat_quests`");
  45.         $k_vopr = $k_vopr->num_rows;
  46.         $umnik_vopros = $mysqli->query("SELECT * FROM `chat_quests` LIMIT ".rand(0,$k_vopr).", 1");
  47.         $umnik_vopros = $umnik_vopros->fetch_assoc();
  48.         $msg="[b]Вопрос:[/b] \"$umnik_vopros[vopros]\"<br />\n[b]Ответ:[/b] слово из ".mb_strlen($umnik_vopros['otvet'])." букв.";
  49.         $mysqli->query("INSERT INTO `chat_posts` (`autor`,`umnik_st`, `time`, `text`, `room_id`, `quests`) values('0', '1', '$time', '$msg', '$_GET[id]', '$umnik_vopros[id]')");
  50. }
  51.  
  52. if ($umnik_last!=NULL && $umnik_last['umnik_st']==1 && $umnik_last['time']<time()-$set['umnik_help'])
  53. {
  54.         $umnik_vopros = $mysqli->query("SELECT * FROM `chat_quests` WHERE `id` = '$umnik_last[vopros]' LIMIT 1");
  55.         $umnik_vopros = $umnik_vopros->fetch_assoc();
  56.     $_SESSION['rand'] = rand(0, mb_strlen($umnik_vopros['otvet']) - 1);
  57.     $help = '';
  58.         for ($i=0;$i<$_SESSION['rand'];$i++ ) {
  59.         $help.='*';
  60.         }
  61.         if (function_exists('iconv_substr'))
  62.                 $help.=iconv_substr($umnik_vopros['otvet'], $_SESSION['rand'], 1, 'utf-8');
  63.         else
  64.                 $help.=substr($umnik_vopros['otvet'], $_SESSION['rand'], 2);
  65.  
  66.         for ($i=0;$i<mb_strlen($umnik_vopros['otvet'])-$_SESSION['rand'];$i++ ) {
  67.         $help.='*';
  68.         }
  69.  
  70.         $msg="[b]Вопрос:[/b] \"$umnik_vopros[vopros]\"<br />\n[b]Первая подсказка:[/b] $help (".mb_strlen($umnik_vopros['otvet'])." букв)";
  71.         $mysqli->query("INSERT INTO `chat_posts` (`autor`,`umnik_st`, `time`, `text`, `room_id`, `quests`) values('0', '2', '$time', '$msg', '$_GET[id]', '$umnik_vopros[id]')");
  72. }
  73.  
  74. if ($umnik_last!=NULL && $umnik_last['umnik_st']==2 && $umnik_last['time']<time()-$set['umnik_help'])
  75. {
  76.         $umnik_vopros = $mysqli->query("SELECT * FROM `chat_quests` WHERE `id` = '$umnik_last[vopros]' LIMIT 1");
  77.         $umnik_vopros = $umnik_vopros->fetch_assoc();
  78.         $help = '';
  79.  
  80.         for ($i=0;$i<$_SESSION['rand'];$i++ ) {
  81.         $help.='*';
  82.         }
  83.  
  84.         if (function_exists('iconv_substr'))
  85.                 $help.=iconv_substr($umnik_vopros['otvet'], $_SESSION['rand']+1, 2, 'utf-8');
  86.         else
  87.                 $help.=substr($umnik_vopros['otvet'], $_SESSION['rand']+1, 4);
  88.  
  89.         for ($i=0;$i<mb_strlen($umnik_vopros['otvet'])-$_SESSION['rand']-2;$i++) {
  90.         $help.='*';
  91.         }
  92.  
  93.         $msg="[b]Вопрос:[/b] \"$umnik_vopros[vopros]\"<br />\n[b]Вторая подсказка:[/b] $help (".mb_strlen($umnik_vopros['otvet'])." букв)";
  94.         $mysqli->query("INSERT INTO `chat_posts` (`autor`,`umnik_st`, `time`, `text`, `room_id`, `quests`) values('0', '3', '$time', '$msg', '$_GET[id]', '$umnik_vopros[id]')");
  95. }
  96.  
  97. ?>
Coder1994 Отправлено: 05 Декабря, 2010 - 15:54:25 • Тема: Умник в чате • Форум: Работа с СУБД

Ответов: 5
Просмотров: 2932
да, я хотел бы чтобы было по другому, чтобы слово подсказывалось на 50%, то есть если в слове 8 букв,то даётся четыре подсказки...
(Добавление)
ждёмс...
Coder1994 Отправлено: 05 Декабря, 2010 - 14:49:08 • Тема: Умник в чате • Форум: Работа с СУБД

Ответов: 5
Просмотров: 2932
Один знакомый написал скрипт, бота умника в чате, но проблема в том, что при подсказке умником ответа на вопрос,он подсказывает по одной букве по порядку (вначале первую, потом вторую),а мне нужно чтобы он подсказывал случайную букву.
Вот код:
PHP:
скопировать код в буфер обмена
  1. $set['umnik_help']='30';
  2. $set['umnik_new']='30';
  3. $set['umnik_time']='90';
  4. $num=rand(0,2);
  5. $umnik_last = mysql_fetch_assoc(mysql_query("SELECT * FROM `chat_posts` WHERE `chat_id` = '3' ORDER BY id DESC"));
  6. if ($umnik_last!=NULL && $umnik_last['umnik_st']!=4 && $umnik_last['umnik_st']!=0)
  7. {
  8. $umnik_vopros = mysql_fetch_assoc(mysql_query("SELECT * FROM `chat_vopros` WHERE `id` = '$umnik_last[vopros]' LIMIT 1"));
  9. $umnik_post = mysql_fetch_assoc(mysql_query("SELECT * FROM `chat_posts` WHERE `chat_id` = '3' AND `msg` like '%$umnik_vopros[otvet]%' AND `umnik_st` = '0' AND `time` >= '".($time-$umnik_last['time'])."' ORDER BY `id` ASC LIMIT 1"));
  10. if($umnik_post!=NULL){
  11. $inf=mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `id` = '$umnik_post[user_id]' LIMIT 1"));
  12. $add_credits=0;
  13. if ($umnik_last['umnik_st']==1){$add_credits=0.5;$pods='не используя подсказок';}
  14. if ($umnik_last['umnik_st']==2){$add_credits=0.1;$pods='используя одну подсказку';}
  15. if ($umnik_last['umnik_st']==3){$add_credits=0.05;$pods='используя обе посказки';}
  16. $msg="[b]$inf[nick][/b] самый первый дал верный ответ на вопрос: [b]$umnik_vopros[vopros][/b] $pods.<br/>\nИ получает $add_credits кредитов.<br/>\nСледующий вопрос будет через $set[umnik_new] сек.";
  17. mysql_query("INSERT INTO `chat_posts` (`user_id`, `umnik_st`, `time`, `msg`, `chat_id`, `vopros`) values('2', '4', '$time', '$msg', '3', '$umnik_vopros[id]')");
  18. mysql_query("UPDATE `users` SET `credits` = '".($inf['credits']+$add_credits)."' WHERE `id` = '$inf[id]' LIMIT 1");
  19. }
  20. }
  21. $umnik_last1 = mysql_fetch_assoc(mysql_query("SELECT * FROM `chat_posts` WHERE `chat_id` = '3' AND `umnik_st` = '1' ORDER BY id DESC"));
  22. if ($umnik_last1!=NULL && $umnik_last['umnik_st']!=4 && $umnik_last1['time']<time()-$set['umnik_time'])
  23. {
  24. $umnik_vopros = mysql_fetch_assoc(mysql_query("SELECT * FROM `chat_vopros` WHERE `id` = '$umnik_last1[vopros]' LIMIT 1"));
  25. $msg="На вопрос никто не ответил.<br/>\nПравильный ответ: $umnik_vopros[otvet].<br/>\nСледующий вопрос через $set[umnik_new] сек.";
  26. mysql_query("INSERT INTO `chat_posts` (`user_id`, `umnik_st`, `time`, `msg`, `chat_id`, `vopros`) values('2', '4', '$time', '$msg', '3', '$umnik_vopros[id]')");
  27. }
  28. $umnik_last = mysql_fetch_assoc(mysql_query("SELECT * FROM `chat_posts` WHERE `chat_id` = '3' AND `umnik_st` <> '0' ORDER BY id DESC"));
  29. if ($umnik_last==NULL || $umnik_last['umnik_st']==4 && $umnik_last['time']<time()-$set['umnik_new'])
  30. {
  31. // задается вопрос
  32. $k_vopr=mysql_result(mysql_query("SELECT COUNT(*) FROM `chat_vopros`"),0);
  33. $umnik_vopros = mysql_fetch_assoc(mysql_query("SELECT * FROM `chat_vopros` LIMIT ".rand(0,$k_vopr).", 1"));
  34. $msg="[b]Вопрос:[/b] \"$umnik_vopros[vopros]\"<br/>\n[b]Ответ:[/b] слово из ".mb_strlen($umnik_vopros['otvet'])." букв.";
  35. mysql_query("INSERT INTO `chat_posts` (`user_id`,`umnik_st`, `time`, `msg`, `chat_id`, `vopros`) values('2', '1', '$time', '$msg', '3', '$umnik_vopros[id]')");
  36. }
  37. if ($umnik_last!=NULL && $umnik_last['umnik_st']==1 && $umnik_last['time']<time()-$set['umnik_help'])
  38. {
  39. $umnik_vopros = mysql_fetch_assoc(mysql_query("SELECT * FROM `chat_vopros` WHERE `id` = '$umnik_last[vopros]' LIMIT 1"));
  40. if (function_exists('iconv_substr'))
  41. $help=iconv_substr($umnik_vopros['otvet'], 0, 1, 'utf-8');
  42. else
  43. $help=substr($umnik_vopros['otvet'], 0, 2);
  44. for ($i=$num;$i<mb_strlen($umnik_vopros['otvet'])-1 ;$i++ ) {
  45.         $help.='.';
  46. }
  47. $msg="[b]Вопрос:[/b] \"$umnik_vopros[vopros]\"<br/>\n[b]Первая подсказка:[/b] $help (".mb_strlen($umnik_vopros['otvet'])." букв)";
  48. mysql_query("INSERT INTO `chat_posts` (`user_id`,`umnik_st`, `time`, `msg`, `chat_id`, `vopros`) values('2', '2', '$time', '$msg', '3', '$umnik_vopros[id]')");
  49. }
  50. if ($umnik_last!=NULL && $umnik_last['umnik_st']==2 && $umnik_last['time']<time()-$set['umnik_help'])
  51. {
  52. $umnik_vopros = mysql_fetch_assoc(mysql_query("SELECT * FROM `chat_vopros` WHERE `id` = '$umnik_last[vopros]' LIMIT 1"));
  53. if (function_exists('iconv_substr'))
  54. $help=iconv_substr($umnik_vopros['otvet'], 0, 2, 'utf-8');
  55. else
  56. $help=substr($umnik_vopros['otvet'], 0, 4);
  57. for ($i=$num;$i<mb_strlen($umnik_vopros['otvet'])-2 ;$i++ ) {
  58.         $help.='.';
  59. }
  60. $msg="[b]Вопрос:[/b] \"$umnik_vopros[vopros]\"<br/>\n[b]Вторая подсказка:[/b] $help (".mb_strlen($umnik_vopros['otvet'])." букв)";
  61. mysql_query("INSERT INTO `chat_posts` (`user_id`,`umnik_st`, `time`, `msg`, `chat_id`, `vopros`) values('2', '3', '$time', '$msg', '3', '$umnik_vopros[id]')");
  62. }

Может кстати, вы подскажете можно ли упростить\улучшить этот код, а то мне кажется, что как-то кривовато выглядит?
(Добавление)
Что скажете?
Coder1994 Отправлено: 04 Декабря, 2010 - 12:26:16 • Тема: Определиение арбуза на PHP • Форум: Программирование на PHP

Ответов: 15
Просмотров: 1418
Всё разобрался в своей проблема,использовал за шаблон код OrmaJaver и Demot.
Спасибо всем, кто принимал участие в решении данной проблемы!
Coder1994 Отправлено: 03 Декабря, 2010 - 20:04:10 • Тема: Определиение арбуза на PHP • Форум: Программирование на PHP

Ответов: 15
Просмотров: 1418
Нужен вывод как на 2ip.ru
(Добавление)
OrmaJever пишет:
Как сечас выводит?
Как нужно что бы выводило?
(Добавление)
Как сечас выводит?
Как нужно что бы выводило?
Coder1994 пишет:
Мне нужно исправить скрипт, чтобы был верный вывод.

я шаманить не умею. Сложно понять как вам нужно что бы выводило Однако

нужен вывод как на 2ip.ru, а выводит,например оперу,как Opera 9.80
Coder1994 Отправлено: 03 Декабря, 2010 - 18:55:09 • Тема: Определиение арбуза на PHP • Форум: Программирование на PHP

Ответов: 15
Просмотров: 1418
Скажем так не ошибка, а баг. Мне нужно исправить скрипт, чтобы был верный вывод.
Coder1994 Отправлено: 03 Декабря, 2010 - 17:27:51 • Тема: Определиение арбуза на PHP • Форум: Программирование на PHP

Ответов: 15
Просмотров: 1418
И что значит?
(Добавление)
Мне б желательно, чтобы вы мне ошибку в коде исправили
Coder1994 Отправлено: 03 Декабря, 2010 - 16:54:11 • Тема: Определиение арбуза на PHP • Форум: Программирование на PHP

Ответов: 15
Просмотров: 1418
Здравствуйте!
Написал скрипт браузера, выводит что моя версия браузера Opera 9.80, хотя моя версия - 11.00
(Добавление)
вот строка выдаваемая $_SERVER['USER_AGENT'] - Opera/9.80 (X11; Linux x86_64; U; ru) Presto/2.7.39 Version/11.00
(Добавление)
PHP:
скопировать код в буфер обмена
  1. if (isset($_SERVER['HTTP_USER_AGENT']))
  2. {
  3. $ua=$_SERVER['HTTP_USER_AGENT'];
  4. $ua=strtok($ua, '/');
  5. $ua=strtok($ua, '('); // оставляем только то, что до скобки
  6. $ua=preg_replace('#[^a-z_\./ 0-9\-]#iu', null, $ua); // вырезаем все "левые" символы
  7.  
  8. // Опера мини тоже посылает данные о телефоне :)
  9. if (isset($_SERVER['HTTP_X_OPERAMINI_PHONE_UA']) && preg_match('#Opera#i',$ua))
  10. {
  11. $ua_om=$_SERVER['HTTP_X_OPERAMINI_PHONE_UA'];
  12. $ua_om=strtok($ua_om, '/');
  13. $ua_om=strtok($ua_om, '(');
  14. $ua_om=preg_replace('#[^a-z_\. 0-9\-]#iu', null, $ua_om);
  15. $ua='Opera Mini ('.$ua_om.')';
  16. }
  17.  
  18. }else $ua='Нет данных';

В чём ошибка?
Coder1994 Отправлено: 30 Ноября, 2010 - 14:45:40 • Тема: Хочу написать скрипт лички (привата) • Форум: Программирование на PHP

Ответов: 11
Просмотров: 558
Ну так Вы дадите запрос для вывода писем? А то я сам как такое организовать не могу ообразить.
Coder1994 Отправлено: 30 Ноября, 2010 - 11:20:25 • Тема: Не выходит зарегистрироваться. • Форум: Программирование на PHP

Ответов: 17
Просмотров: 1343
PHP:
скопировать код в буфер обмена
  1. <?
  2. curl_setopt($cl, CURLOPT_REFERER , "http://http://skdl.chatovod.ru/service/");
  3. ?>
Coder1994 Отправлено: 30 Ноября, 2010 - 10:49:35 • Тема: Не выходит зарегистрироваться. • Форум: Программирование на PHP

Ответов: 17
Просмотров: 1343
этот ява-скрпит проверяет на правильность регистрации,а в частности вам мешает - url: "/service/"
Функции curl передавайте параметр REFERER, и всё должно работать.
Coder1994 Отправлено: 30 Ноября, 2010 - 10:32:44 • Тема: eregi обращает внимание на регистр букв • Форум: Программирование на PHP

Ответов: 14
Просмотров: 768
используйте preg_replace(); , erigi(); уже устарел.

Страниц (15): В начало « ... 6 7 8 9 [10] 11 12 13 14 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB