<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>3mind.ru - Всё для веб-мастера</title>
<link>http://3mind.ru/</link>
<language>ru</language>
<description>3mind.ru - Всё для веб-мастера</description>
<generator>DataLife Engine</generator><item>
<title>Инструкция по Jailbreak Blackra1n для 3.1.2</title>
<guid isPermaLink="true">http://3mind.ru/apple/148-instrukciya-po-jailbreak-blackra1n-dlya-312.html</guid>
<link>http://3mind.ru/apple/148-instrukciya-po-jailbreak-blackra1n-dlya-312.html</link>
<description><![CDATA[1. Blackra1n делает только Jailbreak всех девайсов имеющих прошивку 3.1.2.<br /><br />2. Обладатели iPod Touch 3G и iPhone 3GS с последней версией Bootrom! Blackra1n пока делает только привязанный jailbreak - после каждой перезагрузки девайса, надо снова включать blackra1n и делать джейл<br /><br />3. Blackra1n НЕ устанавливает не Cydia, не Icy. Он устанвливает программу для их скачивания. Возможность скачать через Edge/3G/WiFi есть.<br /><br />4.Подключаем iPhone/iPod к iTunes. Нажимаем shift + правой кнопкой мыши на обновить.<br /><!--TBegin--><a href="http://3mind.ru/uploads/posts/2011-11/1322686547_42fa5fc99cda.jpg" onclick="return hs.expand(this)" ><img align="left" src="http://3mind.ru/uploads/posts/2011-11/thumbs/1322686547_42fa5fc99cda.jpg" alt='Инструкция по Jailbreak Blackra1n для 3.1.2' title='Инструкция по Jailbreak Blackra1n для 3.1.2'  /></a><!--TEnd--><br />]]></description>
<category><![CDATA[Apple]]></category>
<dc:creator>nikba</dc:creator>
<pubDate>Wed, 30 Nov 2011 23:02:15 +0200</pubDate>
</item><item>
<title>Средства мониторинга во FreeBSD</title>
<guid isPermaLink="true">http://3mind.ru/freebsd/147-sredstva-monitoringa-vo-freebsd.html</guid>
<link>http://3mind.ru/freebsd/147-sredstva-monitoringa-vo-freebsd.html</link>
<description><![CDATA[Операционная система FreeBSD как и другие альтернативные системы имеет на своем борту средства для мониторинга процессов, информации о дисках а также информацию о сетевых соединениях.Поскольку визуально эти средства расположенны в недрах каталогов , попробуем рассмотреть некоторые из них , перечислив их назначение.<br /><br /><b>Информация о дисках:</b><br /><br /><i>1. mount</i> – показывает смонтированные подразделы и флаги из монтирования<br /><i>2. df </i>– показывает смонтированные подразделы, их размер и свободное место на них<br /><i>3. fdisk /dev/ad0</i> – показывает информацию о диске ad0 и разделах на нем<br /><i>4. disklabel /dev/ad0s1 </i>– показывает список подразделов в первом разделе диска ad0<br /><i>5. swapinfo</i> – показывает список подразделов свопинга на дисках и их использование<br /><i>6. fstat </i>– показывает список открытых файлов (имена файлов не выводятся)<br /><i>7. pstat -f</i> – выводит список открытых файлов (имена файлов не выводятся)<br /><i>8. systat</i> -vmstat n – каждые n секунд выводит количество транзакций с диском в секунду, объем записанных/считанных данных на диск в секунду, средний размер транзакции и процент времени в течение которого диск был занят работой.<br /><i>9. iostat </i>– выводит информацию, аналогичную systat -vmstat, но не выводит занятости диска по времени и может выводить среднюю статистику с момента загрузки.<br /><i>10. vmstat</i> – выводит количество операций на диске в секунду<br /><i>11. /stand/sysinstall</i> – можно посмотреть и изменить разметку диска и монтирование<br /><i>12. less /etc/fstab</i> – таблица монтирования при загрузке<br /><br /><b>Информация о процессоре и памяти</b><br /><br /><i>1. systat -vmstat n</i> – вывод показателей загрузки (number of jobs in the run queue averaged over 1, 5 and 15 min), состояния памяти (в страницах), количества процессов в группах, количество вызовов специальных функций ядра (traps, interrupts, system calls, network software interrupts), использование процессора, трансляции имен, активность свопа, прерывания, а также информацию по использованию диска (см)<br /><i>2. top </i>– аналогичная информация в сокращенном виде + использование памяти и свопа в мегабайтах, список процессов, отсортированных по использованию процессора.<br /><i>3. ps afx </i>– список запущенных процессов и время процессора на каждый<br /><br /><b>Информация о сети<br /></b><br /><i>1. ifconfig</i> – список сетевых интерфейсов с ip-адресами, масками, mac-адресами, типами карт и их статусами (названия карточек можно посмотреть в файле конфигурации ядра)<br /><i>2. systat -ifstat n</i> – объем трафика за n секунд на всех сетевых интерфейсах<br /><i>3. netstat</i> – вывод активных сетевых соединений (сокетов)<br /><i>4. systat -netstat n</i> – аналог netstat в реальном времени<br /><i>5. systat -ip n</i> – таблица IP-пакетов и ошибок по типам за n секунд<br /><i>6. systat -tcp n </i>– таблица TCP-пакетов и ошибок по типам за n секунд<br /><i>7. systat -icmp n</i> – таблица ICMP-пакетов и ошибок по типам за n секунд<br /><i>8. netstat -ibt</i> – список интерфейсов, разбитых по ip-адресам (!) с объемом трафика на каждом, количеством ошибок, коллизий, значением watchdog-таймера<br /><i>9. netstat -r </i>– таблица маршрутизации<br /><i>10. arp -a</i> – таблица ARP<br /><i>11. tcpdump -i rl0 host 192.168.61.20 and port 80</i> – сниффер пакетов на интерфейсе rl0, фильтрующий пакеты, содержащие адрес 192.168.61.20 и порт 80<br /><i>12. trafshow -i rl0</i> – программа для сортировки и вывода сетевых потоков (устанавливается дополнительно пакетом или из портов)<br /><br /><b>Службы времени</b><br /><br /><i>1. date </i>– выводит текущее время и дату<br /><i>2. w </i>– выводит, сколько времени назад система загрузилась и залогиненных пользователей<br /><i>3. last</i> – выводит историю перезагрузок и входов пользователей]]></description>
<category><![CDATA[FreeBSD]]></category>
<dc:creator>nikba</dc:creator>
<pubDate>Wed, 28 Sep 2011 09:30:39 +0300</pubDate>
</item><item>
<title>Что делать если закрыли одноклассники, Vkontakte и Mail.RU</title>
<guid isPermaLink="true">http://3mind.ru/programming/146-chto-delat-esli-zakryli-odnoklassniki-vkontakte-i-mailru.html</guid>
<link>http://3mind.ru/programming/146-chto-delat-esli-zakryli-odnoklassniki-vkontakte-i-mailru.html</link>
<description><![CDATA[<b>Адреса для доступа к сайту Odnoklassniki.RU:</b><br /><br />http://novoteck.ru/start/ <br /><br />http://doc-safe.ru/on/<br /><br />http://itcnr.ru/it1/<br /><br />http://blackunit.ru/page1/<br /><br /><br /><b>Адреса для доступа к сайту Vkontakte.RU:</b><br /><br />На адресах Вконтакте исправлены ВСЕ ошибки и установлена новая версия скриптов<br /><br />http://futurestop.ru/doc/<br /><br />http://brandcentre.ru/upd/<br /><br />http://kwstop.ru/new/<br /><br />http://krosjob.ru/catalog/<br /><br />http://bnkcompany.ru/update/<br /><br /><b>Адреса для доступа к сайту Mail.RU:</b><br /><br />http://rugarant.ru/mr/<br /><br />http://frmopt.ru/mr/<br />]]></description>
<category><![CDATA[Программирование]]></category>
<dc:creator>nikba</dc:creator>
<pubDate>Mon, 19 Sep 2011 09:47:27 +0300</pubDate>
</item><item>
<title>Размер базы данных MySQL</title>
<guid isPermaLink="true">http://3mind.ru/programming/145-razmer-bazy-dannyh-mysql.html</guid>
<link>http://3mind.ru/programming/145-razmer-bazy-dannyh-mysql.html</link>
<description><![CDATA[<b>имя БД:</b><br /><!--code1--><div class="scriptcode"><!--ecode1-->&#60;?php&nbsp;&nbsp; $dbname = “databasename”;&nbsp;&nbsp; ?&#62;<!--code2--></div><!--ecode2--><br /><br /><b>Обработка БД:</b><br /><!--code1--><div class="scriptcode"><!--ecode1--><br />&#60;?php<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql_select_db&#40; $dbname &#41;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result = mysql_query&#40; “SHOW TABLE STATUS” &#41;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$dbsize = 0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&#40; $row = mysql_fetch_array&#40; $result &#41; &#41; {&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $dbsize += $row&#91; &#34;Data_length&#34; &#93; + $row&#91; &#34;Index_length&#34; &#93;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /> ?&#62;<br /><!--code2--></div><!--ecode2--><br /><br /><b>Функция форматирование единиц измерения:</b><br /><!--code1--><div class="scriptcode"><!--ecode1--><br />function formatRawSize&#40;$bytes&#41; {<br />&nbsp;&nbsp;&nbsp;&nbsp;if&#40;!empty&#40;$bytes&#41;&#41; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$s = array&#40;&#39;bytes&#39;, &#39;kb&#39;, &#39;MB&#39;, &#39;GB&#39;, &#39;TB&#39;, &#39;PB&#39;&#41;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$e = floor&#40;log&#40;$bytes&#41;/log&#40;1024&#41;&#41;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$output = sprintf&#40;&#39;%.2f &#39;.$s&#91;$e&#93;, &#40;$bytes/pow&#40;1024, floor&#40;$e&#41;&#41;&#41;&#41;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $output;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><!--code2--></div><!--ecode2--><br /><br /><b>Вывод результатов</b><br /><!--code1--><div class="scriptcode"><!--ecode1--><br />&#60;?php<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo “&#60;p&#62;Размер БД ” . formatRawSize&#40; $dbsize &#41; . “&#60;/p&#62;”;<br /> ?&#62;<br /><!--code2--></div><!--ecode2-->]]></description>
<category><![CDATA[Программирование]]></category>
<dc:creator>nikba</dc:creator>
<pubDate>Tue, 19 Jul 2011 02:04:16 +0300</pubDate>
</item><item>
<title>15 .htaccess секретов для SEO</title>
<guid isPermaLink="true">http://3mind.ru/seo/144-15-htaccess-sekretov-dlya-seo.html</guid>
<link>http://3mind.ru/seo/144-15-htaccess-sekretov-dlya-seo.html</link>
<description><![CDATA[<b>1) Конечно же, правилом хорошего тона является страничка на которую будут перенаправляться Ваши читатели в случае каких-либо серверных ошибок.<br /></b>Самые распространенные ошибки - это 403, 404, 500.<br /><br />403 - пользователь не прошел аутентификацию, запрет на доступ.<br />404 - запрашиваемый документ (файл, директория) не найден.<br />500 - внутренняя ошибка сервера (к примеру, ошибка в синтаксисе файла .htaccess).<br /><!--code1--><div class="scriptcode"><!--ecode1-->ErrorDocument 401 /error/401.html<br />ErrorDocument 403 /error/403.html<br />ErrorDocument 404 /error/404.html<br />ErrorDocument 500 /error/500.html<!--code2--></div><!--ecode2--><br /><br />Где 40Х.html - это странички, которые увидит пользователь в случае определенной серверной ошибке.<br /><br /><b>2) В последнее время (к сожалению) все чаще и чаще приходится прибегать к блокировке определенноко IP адреса для входа на Ваш сайт.<br /></b><br /><!--code1--><div class="scriptcode"><!--ecode1-->allow from all<br />deny from 145.186.14.122<br />deny from 124.15<!--code2--></div><!--ecode2--><br /><br />Здесь нужно быть предельно аккуратным, так как блокируя всего один IP-адрес Вы можете заблокировать целую организацию, выходящую на просторы интернета под одним IP!!!!<br /><br /><b>3) 301 редирект для битых или старых ссылок.<br /></b><br /><!--code1--><div class="scriptcode"><!--ecode1-->Redirect 301 /d/file.html http&#58;//www.htaccesselite.com/r/file.html<!--code2--></div><!--ecode2--><br /><br /><b>4) Установка e-mail администратора на сервер. Используется, как адрес по умолчанию.<br /></b><br />ServerSignature EMail<br />SetEnv SERVER_ADMIN admin@3mind.ru<br /><br /><b>5) Часто требуется перенаправить пользователя на определенную страничку при обращении к заданной директории или домашней страничке сайта.<br /></b><br /><!--code1--><div class="scriptcode"><!--ecode1-->DirectoryIndex &#60;нужная страница&#62;<!--code2--></div><!--ecode2--><br /><br />Можно указывать несколько страниц:<br /><!--code1--><div class="scriptcode"><!--ecode1-->DirectoryIndex index.shtml index.php index.php3 index.html index.htm<!--code2--></div><!--ecode2--><br /><br /><b>6) Очень важный момент - это защита Ваших, так называемых, “горячих ссылок”. Другими словами, как защитить Ваши файлы или картики от ссылок на них с других ресурсов, тем самы, избежать серьезных неприятностей и раздутого трафика<br /></b><br /><!--code1--><div class="scriptcode"><!--ecode1-->Options +FollowSymlinks<br /># Protect Hotlinking<br />RewriteEngine On<br />RewriteCond %{HTTP_REFERER} !^$<br />RewriteCond %{HTTP_REFERER} !^http&#58;//&#40;www\.&#41;?domainname\.com/ &#91;nc&#93;<br />RewriteRule .*\.&#40;gif|jpg|png&#41;$ http&#58;//domainname.com/img/hotlink_f_o.png &#91;nc&#93;<!--code2--></div><!--ecode2--><br /><br /><b>7) Иногда требуется перенаправлять всех пользователей на другой сайт, кроме некоторых IP. <br /></b><br /><!--code1--><div class="scriptcode"><!--ecode1-->ErrorDocument 403 http&#58;//www.youdomain.com<br />Order deny,allow<br />Deny from all<br />Allow from 124.34.48.165<br />Allow from 102.54.68.123<!--code2--></div><!--ecode2--><br /><br /><b>8 ) Интересный и не менее важный способ защиты от сетевых вирусов и сканеров, при котором вредоностный запрос будет перенаправлен на другой ресурс.<br /></b><br /><!--code1--><div class="scriptcode"><!--ecode1-->redirect /_vti_bin http&#58;//www.ну-ну-ну.com<br />redirect /scripts http&#58;//www.ну-ну-ну.com<br />redirect /MSADC http&#58;//www.ну-ну-ну.com<br />redirect /c http&#58;//www.ну-ну-ну.com<br />redirect /d http&#58;//www.ну-ну-ну.com<br />redirect /_mem_bin http&#58;//www.ну-ну-ну.com<br />redirect /msadc http&#58;//www.ну-ну-ну.com<br />RedirectMatch &#40;.*&#41;\cmd.exe$ http&#58;//www.ну-ну-ну.com$1<!--code2--></div><!--ecode2--><br /><br /><b>9) Теперь о склеивании имен домена(из примера выше)<br /></b><br />Пример 1 - Редирект с domain.com на www.domain.com<br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->RewriteEngine On<br />RewriteBase /<br />RewriteCond %{HTTP_HOST} !^www.domain.com$ &#91;NC&#93;<br />RewriteRule ^&#40;.*&#41;$ http&#58;//www.domain.com/$1 &#91;L,R=301&#93; <!--code2--></div><!--ecode2--><br /><br />Пример 2 - Редирект с www.domain.com на domain.com<br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->RewriteEngine On<br />RewriteBase /<br />RewriteCond %{HTTP_HOST} !^domain.com$ &#91;NC&#93;<br />RewriteRule ^&#40;.*&#41;$ http&#58;//domain.com/$1 &#91;L,R=301&#93; <!--code2--></div><!--ecode2--><br /><br /><b>10) Тоже очень важный момент для SEO - это сокращение ссылок. Привести длинные и “некрасивые” ссылки в читабельный вид можно так:<br /></b><br />Пример обработки динамической страницы http://mp3rare.com/download.php?type=mp3&file=muzik в вид - http://mp3rare.com/files/mp3/muzik.zip можно так:<br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->Options +FollowSymlinks<br />RewriteEngine on<br />RewriteRule ^files/&#40;.+&#41;/&#40;.+&#41;.zip download.php?type=$1&amp;file=$2 &#91;nc&#93;<!--code2--></div><!--ecode2--><br /><br /><b>11) Можно заблокировать несанкционированный доступ к Вашему .htaccess файлу инициируя 403 ошибку сервера. </b><br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->&#60; Files .htaccess &#62;<br />order allow,deny<br />deny from all<br />&#60; /Files &#62;<!--code2--></div><!--ecode2--><br /><br />Таким же способом можем защитить любой файл.<br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->&#60; Files raznoblog.jpg &#62;<br />order allow,deny<br />deny from all<br />&#60; /Files &#62;<!--code2--></div><!--ecode2--><br /><br /><b>12) Определение часового пояса для сервера.</b><br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->SetEnv TZ America/Indianapolis<!--code2--></div><!--ecode2--><br /><br /><b>13) Часто на сервере, при нажатии на ссылку с видео, фотографии или музыкального файла, открывается Windows Media Player или другое приложение для его чтения или демонстрации. Чтобы запретить это и показывать приглашение “Сохранить Как…” (”Save As”) делаем следующее:</b><br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->AddType application/octet-stream .avi .mpg .mov .pdf .xls .mp4<!--code2--></div><!--ecode2--><br /><br /><b>14) Также очень интересная возможность кеширования возожна в файле .htaccess </b><br /><br /><!--code1--><div class="scriptcode"><!--ecode1--># год<br />Header set Cache-Control “public”<br />Header set Expires “Thu, 29 Jun 2010 20&#58;00&#58;00 GMT”<br />Header unset Last-Modified<!--code2--></div><!--ecode2--><br /><br /><b>15) Можно защитить файл или группу файлов паролем.</b><br /><!--code1--><div class="scriptcode"><!--ecode1-->&#60; Files login.php &#62;<br />Order deny,allow<br />Deny from all<br />AuthName “htaccess password prompt”<br />AuthType Basic<br />AuthUserFile /home/askapache.com/.htpasswd<br />Require valid-user<br />&#60; /Files &#62;<br /><br />А это защита группы файлов.<br /><br />&#60; FilesMatch &#34;^&#40;exec|env|doit|phpinfo|w&#41;\.*$&#34;&#62;<br />Order deny,allow<br />Deny from all<br />AuthName “htaccess password prompt”<br />AuthUserFile /.htpasswd<br />AuthType basic<br />Require valid-user<br />&#60; /FilesMatch&#62; <!--code2--></div><!--ecode2-->]]></description>
<category><![CDATA[Раскрутка сайта]]></category>
<dc:creator>nikba</dc:creator>
<pubDate>Sun, 17 Jul 2011 23:38:23 +0300</pubDate>
</item><item>
<title>Пишем firewall на PHP</title>
<guid isPermaLink="true">http://3mind.ru/programming/143-pishem-firewall-na-php.html</guid>
<link>http://3mind.ru/programming/143-pishem-firewall-na-php.html</link>
<description><![CDATA[Надо отдать должное людям, которые работают в направлении безопасности web-ресурсов.<br /><br />Буржуй-нет полон такого рода всякими скриптами. Например, недавно скачал для себя PHP Firewall. Скрипт поддерживает PHP 5, не нуждается в базе, прост в использовании и мало весит, ко всему этому нет затруднений в установке и работе, при наличии определенных навыков, мозга и более или менее ровных рук. PHP Firewall имеет свою систему сбора информации (логи), а также модуль email оповещения о тревоге. Нет необходимости использования .htaccess, хотя я в этом не уверен. Скрипт можно использовать для всех видов cms, блогов, форумов и всего что на ум придет.<br /><br /><!--dle_list--><ul><li> защита XSS<br /></li><!--dle_li--><li>     защита от UNION SQL-инъекций<br /></li><!--dle_li--><li>     защита от DOS<br /></li><!--dle_li--><li>     защита include<br /></li><!--dle_li--><li>     защита от червей<br /></li><!--dle_li--><li>     серверная защита (не проверено)<br /></li><!--dle_li--><li>     защита URL запроса<br /></li><!--dle_li--><li>     профилактика Cookies<br /></li><!--dle_li--><li>     профилактика запросов POST, GET<br /></li><!--dle_li--><li>     запрет на сканирование IP<br /></li><!--dle_li--><li>     блокировка спама с определенного IP<br /></li><!--dle_li--><li>     комплексная защита IP<br /></li><!--dle_li--><li>     сброс глобальных переменных PHP <br /></li></ul><!--dle_list_end--><br /><br /><b>Установка/внедрение PHP Firewall в сайт</b><br /><br />    <!--dle_list--><ul><li>    создать папку, например php-firewall/ в корне сайта<br /></li><!--dle_li--><li>    выставить необходимые права доступа на файл php-firewall/logs.txt (например, 755)<br /></li><!--dle_li--><li>    добавить строки в основной код страницы сайта<br /></li></ul><!--dle_list_end--><br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->&#60; ?php&nbsp;&nbsp;define&#40;&#39;PHP_FIREWALL_REQUEST_URI&#39;, strip_tags&#40; $_SERVER&#91;&#39;REQUEST_URI&#39;&#93; &#41; &#41;;<br />define&#40;&#39;PHP_FIREWALL_ACTIVATION&#39;, true &#41;;<br />if &#40; is_file&#40; @dirname&#40;__FILE__&#41;.&#39;/php-firewall/firewall.php&#39; &#41; &#41;<br />include_once&#40; @dirname&#40;__FILE__&#41;.&#39;/php-firewall/firewall.php&#39; &#41;; ?&#62;<!--code2--></div><!--ecode2--><br /><br /><b>Для деактевации PHP Firewall, редактируйте строку:</b><br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->define&#40;&#39;PHP_FIREWALL_ACTIVATION&#39;, false &#41;;<!--code2--></div><!--ecode2--><br /><br /><b>Конфигурирование PHP Firewall</b><br /><br />Вы можете активировать/деактивировать большинство функций защиты в PHP Firewall. Для этого необходимо открыть файл php-firewall/firewall.php. Все параметры, находящиеся между строками 23 и 39 и которые имеют true/false можно редактировать, соответственно включая/отключая  их.<br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->define&#40;&#39;PHP_FIREWALL_ADMIN_MAIL&#39;, &#39;&#39; &#41;;&nbsp;&nbsp;// напишите свою электронную почту и PHP Firewall оповестит о несанкционированном доступе<br />define&#40;&#39;PHP_FIREWALL_PUSH_MAIL&#39;, false &#41;; // отчет работы системы на электронную почту<br />define&#40;&#39;PHP_FIREWALL_LOG_FILE&#39;, &#39;logs&#39; &#41;;&nbsp;&nbsp;// название файла сбора статистики ‘logs’ для&nbsp;&nbsp;PHP Firewall<br />define&#40;&#39;PHP_FIREWALL_PROTECTION_RANGE_IP_DENY&#39;, true &#41;; // блокатор занятых IP<br />define&#40;&#39;PHP_FIREWALL_PROTECTION_RANGE_IP_SPAM&#39;, true &#41;;&nbsp;&nbsp;// блокатор IP-спамеров<br />define&#40;&#39;PHP_FIREWALL_PROTECTION_URL&#39;, true &#41;;&nbsp;&nbsp;// URL защита<br />define&#40;&#39;PHP_FIREWALL_PROTECTION_REQUEST_SERVER&#39;, true &#41;; // защита запросов<br />define&#40;&#39;PHP_FIREWALL_PROTECTION_SANTY&#39;, true &#41;; // защита от червя<br />define&#40;&#39;PHP_FIREWALL_PROTECTION_BOTS&#39;, true &#41;; // защита от ботов<br />define&#40;&#39;PHP_FIREWALL_PROTECTION_REQUEST_METHOD&#39;, true &#41;; // Bad method protection<br />define&#40;&#39;PHP_FIREWALL_PROTECTION_DOS&#39;, true &#41;; // Mini dos защита<br />define&#40;&#39;PHP_FIREWALL_PROTECTION_UNION_SQL&#39;, true &#41;; // защита от sql-инъекций<br />define&#40;&#39;PHP_FIREWALL_PROTECTION_CLICK_ATTACK&#39;, true &#41;; // включает защиту файлов<br />define&#40;&#39;PHP_FIREWALL_PROTECTION_XSS_ATTACK&#39;, true &#41;; // защита от XSS<br />define&#40;&#39;PHP_FIREWALL_PROTECTION_COOKIES&#39;, true &#41;; // защита cookies<br />define&#40;&#39;PHP_FIREWALL_PROTECTION_POST&#39;, true &#41;; // защита POST vars<br />define&#40;&#39;PHP_FIREWALL_PROTECTION_GET&#39;, true &#41;;&nbsp;&nbsp;// защита GET vars<!--code2--></div><!--ecode2--><br /><br /><a href="http://securos.org.ua/wp-content/uploads/2010/06/PHP_Firewall_102.zip" target="_blank">Скачать Скрипт</a>]]></description>
<category><![CDATA[Программирование]]></category>
<dc:creator>nikba</dc:creator>
<pubDate>Thu, 14 Jul 2011 09:13:57 +0300</pubDate>
</item><item>
<title>Полезные php константы</title>
<guid isPermaLink="true">http://3mind.ru/programming/142-poleznye-php-konstanty.html</guid>
<link>http://3mind.ru/programming/142-poleznye-php-konstanty.html</link>
<description><![CDATA[Есть несколько полезный магических констант в php которые я сдесь опишу. Магические константы начинаются с двух символов подчеркивания и заканчиваются тоже с двух символов подчеркивания.<br /><br />В данной заметке рассмотрим 3 константы<br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->__LINE__<br />__FILE__<br />__DIR__<!--code2--></div><!--ecode2--><br /><br />По названию, думаю должно быть сразу понятно для чего эти константы. Но кто не понять объясню:<br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->__LINE__ выводим номер строки, в которой эта константа находится.<br />__FILE__ выводит файл текущего документа.<br />__DIR__ папка текущего файла.<!--code2--></div><!--ecode2--><br /><br />Рассмотрим на примере две первые константы. Например, у нас есть самописная функция, в которой вызывается запрос в базу, а код запроса передается через параметры функции.<br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->function db_query&#40;$sql&#41; {<br />$q=mysql_query&#40;$sql&#41; or die&#40;mysql_error&#40;&#41;.&#34;<br />&#60;strong&#62;&#34;.__file__. &#34; On line - &#34;.__line__.&#34;&#60;/strong&#62;&#34;&#41;;<br />return $q;<br />}<!--code2--></div><!--ecode2--><br /><br />В функции выше при ошибке вызывается функция die, которая прекращает работу скрипта и выводит сообщение, которое определенно в ее параметрах. Только в примере выше номер строки в которой произошла ошибка будет выведена неправильно, так как вызов функции происходит в любом месте скрипта или даже в другом файле.<br /><br />функция, что выше будет всегда показывать одну и туже строку и один и тот же файл, так как эти константы определенны внутри функции. Чтобы вывод ошибки правильно работал нужно переписать так функцию:<br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->function db_query&#40;$sql, $file=__file__, $line=__line__&#41; {<br />$q=mysql_query&#40;$sql&#41; or die&#40;mysql_error&#40;&#41;.&#34;<br />&#60;strong&#62;&#34;.$file. &#34; On line - &#34;.$line.&#34;&#60;/strong&#62;&#34;&#41;;<br /><br />return $q;<br />}<!--code2--></div><!--ecode2--><br /><br />Теперь в параметрах функции мы передаем номер файла и номер строки в результате при возникновение ошибки в sql запросе будем знать файл и номер строки где ошибка произошла.]]></description>
<category><![CDATA[Программирование]]></category>
<dc:creator>nikba</dc:creator>
<pubDate>Thu, 14 Jul 2011 09:04:09 +0300</pubDate>
</item><item>
<title>Редирект с www</title>
<guid isPermaLink="true">http://3mind.ru/programming/141-redirekt-s-www.html</guid>
<link>http://3mind.ru/programming/141-redirekt-s-www.html</link>
<description><![CDATA[Для поисковых систем домены <b>http://www.3mind.ru</b> и <b>http://3mind.ru</b> не одинаковые. Это может негативно сказаться для поискового продвижения сайта. Например, ссылки, которые поставлены для домена без <b>www </b>уже не будут считаться для домена с <b>www</b>.<br /><br />Во многих популярных сайтах при открытие сайта с <b>www </b>автоматически происходит редирект на домен без <b>www</b>. В этой статье я покажу, как это можно сделать при помощи <b>php</b>. Можно было бы использовать для этой файл .htaccess если на сервере включен модуль апача – <b>mod_rewrite</b>. Но мой способ не хуже и мы не зависим в этой случае от модуля mod_rewrite, который не на всех серверах может быть включенным.<br /><br />Для этого нам понадобятся следующие <b>php </b>переменные:<br /><br /><b>$_SERVER['HTTP_HOST']</b> – в этой переменной содержится наш домен.<br /><b>$_SERVER['REQUEST_URI']</b> – в этой переменой содержится путь, от корня сайта включая и get параметры если такие имеются в адресе.<br /><br />Итак, вначале главной страницы сайта. Как правило, это файл index.php вставить следующий код:<br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->if&#40;strpos&#40;$_SERVER&#91;&#39;HTTP_HOST&#39;&#93;, &#39;www.&#39;&#41; === false&#41; {<br />// ничего не делаем<br />}<br />else {<br />$_HOST=str_replace&#40;&#39;www.&#39;, &#39;&#39;, $_SERVER&#91;&#39;HTTP_HOST&#39;&#93;&#41;;<br />header &#40;&#39;HTTP/1.1 301 Moved Permanently&#39;&#41;;<br />header&#40;&#34;Location&#58; http&#58;//&#34;.$_HOST.$_SERVER&#91;&#39;REQUEST_URI&#39;&#93;&#41;;<br />}<!--code2--></div><!--ecode2--><br /><br />Если мы открываем сайт делаем проверку, есть ли в переменной <b>$_SERVER['HTTP_HOST']</b>); вначале .<b>www </b>и если нету, тогда ничего не делаем, так как пользователь открыл домен без .<b>www</b>.<br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->if&#40;strpos&#40;$_SERVER&#91;&#39;HTTP_HOST&#39;&#93;, &#39;www.&#39;&#41; === false&#41; {<br />// ничего не делаем<!--code2--></div><!--ecode2--><br /><br />Если <b>$_SERVER['HTTP_HOST']</b> содержит .<b>www</b>, значит, пользователь открыл домен с <b>www</b>. То есть как домен третьего уровня. Поэтому делаем перенаправление. Первое, что делаем, посылаем заголовок – ‘<b>HTTP/1.1 301 Moved Permanently</b>’, что означает, что старый адрес навсегда перемещен на новый. Затем следующей строчкой делаем редирект используя переменные <b>$_SERVER['HTTP_HOST']</b> и <b>$_HOST</b> (это <b>$_SERVER['REQUEST_URI'] </b>в которой убрали .<b>www</b>)<br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->header &#40;&#39;HTTP/1.1 301 Moved Permanently&#39;&#41;;<br />header&#40;&#34;Location&#58; http&#58;//&#34;.$_HOST.$_SERVER&#91;&#39;REQUEST_URI&#39;&#93;&#41;;<!--code2--></div><!--ecode2-->]]></description>
<category><![CDATA[Программирование]]></category>
<dc:creator>nikba</dc:creator>
<pubDate>Thu, 14 Jul 2011 08:54:55 +0300</pubDate>
</item><item>
<title>Установка Smarty</title>
<guid isPermaLink="true">http://3mind.ru/programming/140-ustanovka-smarty.html</guid>
<link>http://3mind.ru/programming/140-ustanovka-smarty.html</link>
<description><![CDATA[Качаем последний релиз <a href="http://www.smarty.net/download" target="_blank">Smarty</a>.<br />Распаковываем папку libs в любое удобное место(можно в корень)<br /><br />Создаем на веб-сервере(в корне) каталоги:<i> cache, templates, templates_c и conf.</i><br /><br />И каталогам cache и templates_c присваиваем права доступа 777<br />Теперь в каталоге conf создаем конфиг(config.php) для Smarty который подключаем в начале нашего index.php<br /><br /><b>config.php</b><br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->define&#40;&#39;SMARTY_DIR&#39;,&#39;libs/&#39;&#41;;<br />require_once&#40;&#39;&#39;.SMARTY_DIR.&#39;/Smarty.class.php&#39;&#41;;<br />$smarty = new Smarty;<br />$smarty-&#62;template_dir = &#39;./templates/&#39;;<br />$smarty-&#62;compile_dir = &#39;./templates_c/&#39;;<br />$smarty-&#62;cache_dir = &#39;./cache/&#39;;<br />$smarty-&#62;caching=true;<!--code2--></div><!--ecode2--><br /><br /><b>index.php</b><br /><br /><!--code1--><div class="scriptcode"><!--ecode1-->require_once&#40;&#39;conf/config.php&#39;&#41;;<br />$smarty-&#62;assign&#40;&#39;DATE&#39;,date&#40;&#34;H&#58;i&#58;s&#34;&#41;&#41;;<br />$smarty-&#62;display&#40;&#39;main.tpl.htm&#39;&#41;;<!--code2--></div><!--ecode2--><br /><br />А в папке templates создаем <b>main.tpl.htm</b> следующего содержания:<br /><br />Время {$DATE}]]></description>
<category><![CDATA[Программирование]]></category>
<dc:creator>nikba</dc:creator>
<pubDate>Wed, 13 Jul 2011 15:11:46 +0300</pubDate>
</item><item>
<title>Хакеры не дают компании Sony ни дня покоя</title>
<guid isPermaLink="true">http://3mind.ru/138-hakery-ne-dayut-kompanii-sony-ni-dnya-pokoya.html</guid>
<link>http://3mind.ru/138-hakery-ne-dayut-kompanii-sony-ni-dnya-pokoya.html</link>
<description><![CDATA[<!--dle_media_begin:http://www.youtube.com/watch?v=W6iONcp3a6M--><iframe title="YouTube video player" width="425" height="325" src="http://www.youtube.com/embed/W6iONcp3a6M?rel=0" frameborder="0" allowfullscreen></iframe><!--dle_media_end-->]]></description>
<category><![CDATA[---]]></category>
<dc:creator>nikba</dc:creator>
<pubDate>Sat, 09 Jul 2011 17:06:14 +0300</pubDate>
</item></channel></rss>
