PHP.SU

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

Страниц (56): В начало « ... 48 49 50 51 52 [53] 54 55 56 »

> Найдено сообщений: 830
White Отправлено: 22 Июня, 2011 - 19:02:55 • Тема: MsSql • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 27
а причем mysql_query, если вы конектитесь к MS Sql Server???
может mssql_query?


CODE (htmlphp):
скопировать код в буфер обмена
  1. if (selected)
  2. echo 'ok';


может не selected а $selected?
White Отправлено: 22 Июня, 2011 - 18:55:45 • Тема: Проблеммы с сайтом • Форум: Apache и другие веб-серверы

Ответов: 10
Просмотров: 627
обновление нейм серверов по всему миру может занять 2 суток, подождите.
White Отправлено: 22 Июня, 2011 - 09:03:02 • Тема: проверка содержимого буфера вывода • Форум: Хранение данных, их вывод и обработка

Ответов: 1
Просмотров: 1030
Есть функция multithread(), которая должна стоять в скрипте перед записью чего либо в буфер вывода php (выполнение функций echo, print ...),
возможно ли проверить данное условие, и если да, то как.
(Добавление)
вопрос снят, типичный недогугл))) ob_get_contents()
White Отправлено: 21 Июня, 2011 - 15:11:14 • Тема: Менюшка поверх страницы. • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 1302
чистый JS: по ссылкам выше
JQuery: http://plugins[dot]jquery[dot]com/plugin[dot][dot][dot]/side-navigation как пример
White Отправлено: 21 Июня, 2011 - 07:55:53 • Тема: Класс для ведения логов • Форум: Пользовательские функции

Ответов: 2
Просмотров: 384
Цитата:
таб в восемь пробелов gedit или привычка??
У меня и то и то


geany (по сути тот же gedit, но мне как то больше по душе) + привычка Закатив глазки
White Отправлено: 20 Июня, 2011 - 22:11:26 • Тема: Класс для ведения логов • Форум: Пользовательские функции

Ответов: 2
Просмотров: 384
Возможно кому то пригодится, написано мной для ведения логов SQL запросов, но возможности применения значительно шире.
В начале кроткое API

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. /* Multypurpose logger class v1.0.0
  4.  * ### Functions ###
  5.  *              $log = log::start([$die_limit, $log_url, $log_ip, $log_time])
  6.  *                      Starts logger, arguments are optional and should be sent on first init,
  7.  *                      any further attempts will be ignored.
  8.  *                      If using inside functions $log = log::start should be called to get an access to object
  9.  *                      ### Arguments ###
  10.  *                      $die_limit - maximum rows in logger, if reached will cause script break (defaults to 0)
  11.  *                      $log_url - if set to 0, will not log url
  12.  *                      $log_ip - if set to 0, will not log ip
  13.  *                      $log_time - if set to 0, will not log time
  14.  *              $log->add($string)
  15.  *                      Adds new entry to logger with $string text
  16.  *              $log->build([$type])
  17.  *                      Returns log in string
  18.  *                      ### Arguments ###
  19.  *                      $type = ('html' || 'text' || 'plain'), defaults to 'html'
  20.  *                              'html' - build log as html table
  21.  *                              'text' - build as a text
  22.  *                              'plain' - build as serialized object string
  23.  *              $log->show([$row])
  24.  *                      Returns an object with parameters for $row(defaults to last string)
  25.  *                      $row - is a $row number to show
  26.  *                              returns $obj->string(entry text), [$obj->url, $obj->ip, $obj->time]*if set
  27.  *              $log->write($filename [, $type, $rewrite])
  28.  *                      Writes data to file ($filename)
  29.  *                      ### Arguments ###
  30.  *                      $type - ('html', 'text', 'plain') same as for build
  31.  *                      $rewrite - bool, if set will not append, but rewrite file
  32.  *
  33.  * Under condition and terms of GNU/GPL
  34.  * 2011, Oleg Kasian, o-kasian@yandex.ru
  35.  */
  36.  
  37. class log {
  38.        private $die_limit;
  39.        private $log_time;
  40.        private $log_ip;
  41.        private $log_url;
  42.        private $counter;
  43.        private $row;
  44.   private static $instance;
  45.  
  46.   private function __construct($die_limit, $log_time, $log_ip, $log_url) {
  47.                $this->die_limit=$die_limit;
  48.                $this->log_time=$log_time;
  49.                $this->log_ip=$log_ip;
  50.                $this->log_url=$log_url;
  51.                $this->counter=0;
  52.        }
  53.      
  54.   public function __clone() {}
  55.      
  56. //typical singleton construction function
  57.        public static function start($die_limit=0, $log_url=1, $log_ip=1, $log_time=1) {
  58.       if (!isset(self::$instance)) {
  59.           $c = __CLASS__;
  60.           self::$instance = new $c($die_limit, $log_time, $log_ip, $log_url);
  61.       }
  62.       return self::$instance;
  63.   }
  64.              
  65. //adds new string to log, any string to log must be set as an argument
  66.        public function add($string) {
  67.                $this->row[$this->counter]->string = $string;
  68.                if($this->log_url) $this->row[$this->counter]->url = $_SERVER["REQUEST_URI"];
  69.                if($this->log_ip) $this->row[$this->counter]->ip = $_SERVER['REMOTE_ADDR'];
  70.                if($this->log_time) $this->row[$this->counter]->time = time();
  71.                ++$this->counter;
  72.                $this->limit();
  73.        }
  74.  
  75. //builds log to str, argument(optional) $type=('html' || 'text' || 'plain')
  76.        public function build($type='html') {
  77.                switch(strtolower($type)) {
  78.                        case 'html':
  79.                                $output = '<h3>Site Log</h3><table style="width:100%" id="site_log">';
  80.                                $output .= '<tr><td><b>Text</b></td>';
  81.                                if($this->log_url) $output .= '<td><b>Url</b></td>';
  82.                                if($this->log_ip) $output .= '<td><b>Ip</b></td>';
  83.                                if($this->log_time) $output .= '<td><b>Time</b></td>';
  84.                                $output .= '</tr>';
  85.                                foreach($this->row as $value) {
  86.                                        $output .= '<tr><td>'.$value->string.'</td>';
  87.                                        if($this->log_url) $output .= '<td>'.($value->url).'</td>';
  88.                                        if($this->log_ip) $output .= '<td>'.($value->ip).'</td>';
  89.                                        if($this->log_time) $output .= '<td>'.date('r', $value->time).'</td>';
  90.                                        $output .= '</tr>';
  91.                                }
  92.                                $output .= '</table>';
  93.                        break;
  94.                        case 'text':
  95.                                foreach($this->row as $value) {
  96.                                        $output .= $value->string.' called';
  97.                                        if($this->log_url) $output .= ' at '.$value->url;
  98.                                        if($this->log_ip) $output .= ' by '.$value->ip;
  99.                                        if($this->log_time) $output .= ' time '.date('r', $value->time);
  100.                                        $output .= "\r\n";
  101.                                }
  102.                        break;
  103.                        case 'plain':
  104.                                        $output .= serialize($this->row);
  105.                        break;
  106.                        default:
  107.                                $output='bad argument for build: '.strtolower($type);
  108.                }
  109.                return $output;
  110.        }
  111.      
  112. //shows last row if no argument set, else shows row number $row(int value)
  113.        public function show($row='last') {
  114.                if(strtolower($row)=='last') {
  115.                        $output = $this->row[$this->counter-1];
  116.                } else {
  117.                        if((int)$row>($this->counter-1)) $output='no row exist'; else $output = $this->row[$row];
  118.                }
  119.                return $output;
  120.        }
  121.  
  122. //writes log to $file (local path must be set)
  123.        public function write($file, $type='text', $rewrite=0) {
  124.                if($rewrite) $fp = fopen($file, 'w'); else $fp = fopen($file, 'a');
  125.                fwrite($fp, $this->build($type));
  126.                fclose($fp);
  127.        }
  128.      
  129. //writes custom error message if limit is reached
  130.        private function limit() {
  131.                if($this->die_limit and $this->die_limit==$this->counter) {
  132.                        echo '<p style="display:block;color:red;background-color:yellow;border:1px solid red;">Log limit is reached. Will now stop.</p>';
  133.                        die();
  134.                }
  135.        }
  136. }
  137. ?>
  138.  
White Отправлено: 20 Июня, 2011 - 22:08:09 • Тема: PHP Редактор tpl, css и html файлов • Форум: Напишите за меня, пожалуйста

Ответов: 22
Просмотров: 223
У меня нормально работает Ниндзя будем искать
White Отправлено: 20 Июня, 2011 - 17:01:15 • Тема: PHP Редактор tpl, css и html файлов • Форум: Напишите за меня, пожалуйста

Ответов: 22
Просмотров: 223
специально для вас в начале кода в комментариях маленький api, ваша ошибка говорит о том, что вы изменили значение переменной $workwith, для того чтобы отображать файлы только одного каталога $workwith='catalog'; $catalog="каталог с которым вы хотите работать" (например $catalog='/tpl')
White Отправлено: 19 Июня, 2011 - 21:08:41 • Тема: UI Accodion блокировка всех вкладок кроме текущей • Форум: JavaScript & VBScript

Ответов: 2
Просмотров: 1099
BlockUI http://jquery[dot]malsup[dot]com/block/#element
примените к отдельным элементам как в примере, более простого и элегантного решения не видел.
White Отправлено: 19 Июня, 2011 - 20:30:41 • Тема: PHP Редактор tpl, css и html файлов • Форум: Напишите за меня, пожалуйста

Ответов: 22
Просмотров: 223
1. После открытия текстовым редактором? Пример файла пож.
2. В начале скрипта добавил короткий конфиг, чуть изменил структуру 2 блока, измените значение переменной $catalog на требуемое(в домашней директории сайта, а не локальной фс!)

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. /* Configuration block
  4.  * $workwith = ('site' || 'catalog');
  5.  * $catalog - catalog name in site's home directory
  6.  */
  7. $workwith = 'catalog';
  8. $catalog = '/editor/workwith';
  9.  
  10. //Saving file if POST array send
  11. if($_POST['filename']) {
  12.         $fp = fopen($_POST['filename'], 'w');
  13.         fwrite($fp, $_POST['fileentry']);
  14.         fclose($fp);
  15. }
  16. ?>
  17.  
  18. <style>
  19. p {
  20.         padding: 2px;
  21.         margin: 0px;
  22. }
  23.  
  24. a, a:active {
  25.         color: black;
  26.         text-decoration: none;
  27. }
  28.      
  29. a:hover {
  30.         text-decoration: underline;
  31. }
  32.      
  33. td {
  34.         vertical-align:top;
  35. }
  36. </style>
  37.      
  38. <table style='width:100%'>
  39. <tr>
  40. <td style='width:300px; border-right:2px solid silver;'>
  41. <?PHP
  42. //Generating file navigation block
  43. switch(strtolower($workwith)) {
  44.         case 'site':
  45.                 if($_GET['path']) $path=$_GET['path']; else $path=$_GET['path']=str_replace("\\",'/',getcwd());
  46.                 if(strlen($_SERVER['DOCUMENT_ROOT'])<strlen($path)) echo '<a href="editor.php?path='.substr($path, 0, strrpos($path, '/')).'">../</a>';
  47.         break;
  48.         case 'catalog':
  49.                 $path = $_SERVER['DOCUMENT_ROOT'].$catalog;
  50.         break;
  51.         default:
  52.                 die('CONFIGURATION ERROR');
  53. }
  54. foreach(glob($path.'/*') as $obj) {
  55.         $filename=substr($obj, strlen($path)+1, strlen($obj)-strlen($path));
  56.         if(is_dir($obj) and strtolower($workwith)=='site') echo '<p><a href="editor.php?path='.$obj.'">'.$filename.'/</a></p>'; else {
  57.         if($_GET['path']) echo '<p><a href="editor.php?path='.$_GET['path'].'&file='.$obj.'">'.$filename.'</a></p>';
  58.         else echo '<p><a href="?file='.$obj.'"></a></p>';
  59.         }
  60. }
  61. ?>
  62.  
  63. </td>
  64. <td style="padding-left:5px;">
  65.  
  66. <?PHP
  67. //Generating file editor block
  68. if($_GET['path']) echo '<form action="editor.php?path='.$_GET['path'].'&file='.$_GET['file'].'" method=post>';
  69. else echo '<form action="editor.php" method=post>';
  70.    
  71. if($_GET['file']) {
  72.         $filename=$_GET['file'];
  73.         echo '<p>Current file: <b>'.$filename.'</b></p>';
  74.         echo '<input type=hidden name=filename value="'.$filename.'">';
  75. } else echo 'No file loaded';
  76. echo '<textarea rows=40; style="width:100%;" name=fileentry>';
  77. if($_GET['file']) {
  78.         $filerows=file($filename);
  79.         foreach($filerows as $value) {
  80.                 echo htmlspecialchars($value);
  81.         }
  82. }
  83. echo '</textarea>';
  84. echo '<input type=submit value="save" style="margin-top:10px;">';
  85. ?>
  86.  
  87. </form>
  88. </td>
  89. </tr>
  90. </table>
  91.  
White Отправлено: 17 Июня, 2011 - 13:34:14 • Тема: Структура сайта, общий вопрос PHP • Форум: Работа с файловой системой и файлами

Ответов: 10
Просмотров: 8733
Цитата:
+надо ещё генератор sitemap собрать )))

а в чем проблема?
White Отправлено: 17 Июня, 2011 - 12:50:43 • Тема: Отображение div'a • Форум: HTML, Дизайн & CSS

Ответов: 8
Просмотров: 1814
Цитата:
Есть дизайн. И я определяю расположение блоков согласно дизайну.


Перефразирую вопрос, в каких случаях вам надо отображать этот блок, а в каких нет.
White Отправлено: 17 Июня, 2011 - 12:47:24 • Тема: Структура сайта, общий вопрос PHP • Форум: Работа с файловой системой и файлами

Ответов: 10
Просмотров: 8733
для себя я попытался объединить все то что мне нравится в определенных CMS, получился некий гибрид Joomla+Modx
от Modx:
1.Неограниченная вложенность ссылок.
2.Использование репозиториев для загрузки и установки дополнений(проект разрабатывается под GNU/GPL)
3.Полная масштабируемость (система даже больше CMF)

от Joomla:
1.Простота оформления шаблонов.
2.Похожая система дополнений.
3.Использование Mootools(планирую заменить на JQuery, его функциональности здесь достаточно)

+немного от себя:
1.файловый менеджер,
2.Система бэкапа/переноса сайта
3.Система SimpleAdmin для создания альтернативной админ панели, полностью масштабируемой под пользователя.
4.Модуль seo мониторинга

P.S. Целью написания является "научиться чему-то". На данный момент работает около 60% описанного функционала, так что до выпуска первой альфы еще долго.
White Отправлено: 17 Июня, 2011 - 09:36:22 • Тема: Отображение div'a • Форум: HTML, Дизайн & CSS

Ответов: 8
Просмотров: 1814
Цитата:
Есть многостраничный сайт, и есть div, отображать который нужно только на некоторых страницах


Согласно чему вы для себя, определяете где нужно отображать этот блок а где нет?
White Отправлено: 17 Июня, 2011 - 09:27:50 • Тема: Структура сайта, общий вопрос PHP • Форум: Работа с файловой системой и файлами

Ответов: 10
Просмотров: 8733
создал синглтон logger;
работу с SQL осуществлял только собственными функциями, то есть например:

mysql_query('SELECT * FROM `table_name`);

заменено функцией

db_readtable('tablename')

внутри каждой подобной функции помимо проверки всех ее параметров с целью исключения возможности sql inject, есть обработчик ошибок и логгер, которые записывают значения в
logger, например $logger->sqllog('Function db_readtable called at '.$_SERVER['REQUEST_URI']), добавляет к str свойству $logger->log новую строку

Цитата:
ограничение по количеству обращений к бд

если добавить в начале каждой функции работы с бд проверку содержимого свойства $logger->log на количество строк, можно узнать, сколько раз происходило обращение к бд, и если оно превышает какой то установленный тобой лимит сделать что-то вроде die('превышен лимит обращений к бд').

P.S. Я не ограничивал подключения к бд, я только записывал их в отдельный файл, чтобы в последующем знать, какие участки кода требуют оптимизации

Страниц (56): В начало « ... 48 49 50 51 52 [53] 54 55 56 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB