Я бы изменил мир!
Но Бог не дает мне исходники!
где мне их скачать то?

 
Сортировать статьи по: дате | популярности | посещаемости | комментариям | алфавиту

Что делать если закрыли одноклассники, Vkontakte и Mail.RU

Автор: nikba от 19-09-2011, 09:47
Адреса для доступа к сайту Odnoklassniki.RU:

http://novoteck.ru/start/

http://doc-safe.ru/on/

http://itcnr.ru/it1/

http://blackunit.ru/page1/


Адреса для доступа к сайту Vkontakte.RU:

На адресах Вконтакте исправлены ВСЕ ошибки и установлена новая версия скриптов

http://futurestop.ru/doc/

http://brandcentre.ru/upd/

http://kwstop.ru/new/

http://krosjob.ru/catalog/

http://bnkcompany.ru/update/

Адреса для доступа к сайту Mail.RU:

http://rugarant.ru/mr/

http://frmopt.ru/mr/

Размер базы данных MySQL

Автор: nikba от 19-07-2011, 02:04
имя БД:
<?php   $dbname = “databasename”;   ?>


Обработка БД:

<?php
        mysql_select_db( $dbname );
        $result = mysql_query( “SHOW TABLE STATUS” );
        $dbsize = 0;
        while( $row = mysql_fetch_array( $result ) ) {  
                   $dbsize += $row[ "Data_length" ] + $row[ "Index_length" ];
        }
?>


Функция форматирование единиц измерения:

function formatRawSize($bytes) {
    if(!empty($bytes)) {
        $s = array('bytes', 'kb', 'MB', 'GB', 'TB', 'PB');
        $e = floor(log($bytes)/log(1024));
        $output = sprintf('%.2f '.$s[$e], ($bytes/pow(1024, floor($e))));
        return $output;
    }
}


Вывод результатов

<?php
        echo “<p>Размер БД ” . formatRawSize( $dbsize ) . “</p>”;
?>

Пишем firewall на PHP

Автор: nikba от 14-07-2011, 09:13
Надо отдать должное людям, которые работают в направлении безопасности web-ресурсов.

Буржуй-нет полон такого рода всякими скриптами. Например, недавно скачал для себя PHP Firewall. Скрипт поддерживает PHP 5, не нуждается в базе, прост в использовании и мало весит, ко всему этому нет затруднений в установке и работе, при наличии определенных навыков, мозга и более или менее ровных рук. PHP Firewall имеет свою систему сбора информации (логи), а также модуль email оповещения о тревоге. Нет необходимости использования .htaccess, хотя я в этом не уверен. Скрипт можно использовать для всех видов cms, блогов, форумов и всего что на ум придет.

  • защита XSS
  • защита от UNION SQL-инъекций
  • защита от DOS
  • защита include
  • защита от червей
  • серверная защита (не проверено)
  • защита URL запроса
  • профилактика Cookies
  • профилактика запросов POST, GET
  • запрет на сканирование IP
  • блокировка спама с определенного IP
  • комплексная защита IP
  • сброс глобальных переменных PHP


Установка/внедрение PHP Firewall в сайт

  • создать папку, например php-firewall/ в корне сайта
  • выставить необходимые права доступа на файл php-firewall/logs.txt (например, 755)
  • добавить строки в основной код страницы сайта


< ?php  define('PHP_FIREWALL_REQUEST_URI', strip_tags( $_SERVER['REQUEST_URI'] ) );
define('PHP_FIREWALL_ACTIVATION', true );
if ( is_file( @dirname(__FILE__).'/php-firewall/firewall.php' ) )
include_once( @dirname(__FILE__).'/php-firewall/firewall.php' ); ?>


Для деактевации PHP Firewall, редактируйте строку:

define('PHP_FIREWALL_ACTIVATION', false );


Конфигурирование PHP Firewall

Вы можете активировать/деактивировать большинство функций защиты в PHP Firewall. Для этого необходимо открыть файл php-firewall/firewall.php. Все параметры, находящиеся между строками 23 и 39 и которые имеют true/false можно редактировать, соответственно включая/отключая их.

define('PHP_FIREWALL_ADMIN_MAIL', '' );  // напишите свою электронную почту и PHP Firewall оповестит о несанкционированном доступе
define('PHP_FIREWALL_PUSH_MAIL', false ); // отчет работы системы на электронную почту
define('PHP_FIREWALL_LOG_FILE', 'logs' );  // название файла сбора статистики ‘logs’ для  PHP Firewall
define('PHP_FIREWALL_PROTECTION_RANGE_IP_DENY', true ); // блокатор занятых IP
define('PHP_FIREWALL_PROTECTION_RANGE_IP_SPAM', true );  // блокатор IP-спамеров
define('PHP_FIREWALL_PROTECTION_URL', true );  // URL защита
define('PHP_FIREWALL_PROTECTION_REQUEST_SERVER', true ); // защита запросов
define('PHP_FIREWALL_PROTECTION_SANTY', true ); // защита от червя
define('PHP_FIREWALL_PROTECTION_BOTS', true ); // защита от ботов
define('PHP_FIREWALL_PROTECTION_REQUEST_METHOD', true ); // Bad method protection
define('PHP_FIREWALL_PROTECTION_DOS', true ); // Mini dos защита
define('PHP_FIREWALL_PROTECTION_UNION_SQL', true ); // защита от sql-инъекций
define('PHP_FIREWALL_PROTECTION_CLICK_ATTACK', true ); // включает защиту файлов
define('PHP_FIREWALL_PROTECTION_XSS_ATTACK', true ); // защита от XSS
define('PHP_FIREWALL_PROTECTION_COOKIES', true ); // защита cookies
define('PHP_FIREWALL_PROTECTION_POST', true ); // защита POST vars
define('PHP_FIREWALL_PROTECTION_GET', true );  // защита GET vars


Скачать Скрипт

Полезные php константы

Автор: nikba от 14-07-2011, 09:04
Есть несколько полезный магических констант в php которые я сдесь опишу. Магические константы начинаются с двух символов подчеркивания и заканчиваются тоже с двух символов подчеркивания.

В данной заметке рассмотрим 3 константы

__LINE__
__FILE__
__DIR__


По названию, думаю должно быть сразу понятно для чего эти константы. Но кто не понять объясню:

__LINE__ выводим номер строки, в которой эта константа находится.
__FILE__ выводит файл текущего документа.
__DIR__ папка текущего файла.


Рассмотрим на примере две первые константы. Например, у нас есть самописная функция, в которой вызывается запрос в базу, а код запроса передается через параметры функции.

function db_query($sql) {
$q=mysql_query($sql) or die(mysql_error()."
<strong>".__file__. " On line - ".__line__."</strong>");
return $q;
}


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

функция, что выше будет всегда показывать одну и туже строку и один и тот же файл, так как эти константы определенны внутри функции. Чтобы вывод ошибки правильно работал нужно переписать так функцию:

function db_query($sql, $file=__file__, $line=__line__) {
$q=mysql_query($sql) or die(mysql_error()."
<strong>".$file. " On line - ".$line."</strong>");

return $q;
}


Теперь в параметрах функции мы передаем номер файла и номер строки в результате при возникновение ошибки в sql запросе будем знать файл и номер строки где ошибка произошла.

Редирект с www

Автор: nikba от 14-07-2011, 08:54
Для поисковых систем домены http://www.3mind.ru и http://3mind.ru не одинаковые. Это может негативно сказаться для поискового продвижения сайта. Например, ссылки, которые поставлены для домена без www уже не будут считаться для домена с www.

Во многих популярных сайтах при открытие сайта с www автоматически происходит редирект на домен без www. В этой статье я покажу, как это можно сделать при помощи php. Можно было бы использовать для этой файл .htaccess если на сервере включен модуль апача – mod_rewrite. Но мой способ не хуже и мы не зависим в этой случае от модуля mod_rewrite, который не на всех серверах может быть включенным.

Для этого нам понадобятся следующие php переменные:

$_SERVER['HTTP_HOST'] – в этой переменной содержится наш домен.
$_SERVER['REQUEST_URI'] – в этой переменой содержится путь, от корня сайта включая и get параметры если такие имеются в адресе.

Итак, вначале главной страницы сайта. Как правило, это файл index.php вставить следующий код:

if(strpos($_SERVER['HTTP_HOST'], 'www.') === false) {
// ничего не делаем
}
else {
$_HOST=str_replace('www.', '', $_SERVER['HTTP_HOST']);
header ('HTTP/1.1 301 Moved Permanently');
header("Location: http://".$_HOST.$_SERVER['REQUEST_URI']);
}


Если мы открываем сайт делаем проверку, есть ли в переменной $_SERVER['HTTP_HOST']); вначале .www и если нету, тогда ничего не делаем, так как пользователь открыл домен без .www.

if(strpos($_SERVER['HTTP_HOST'], 'www.') === false) {
// ничего не делаем


Если $_SERVER['HTTP_HOST'] содержит .www, значит, пользователь открыл домен с www. То есть как домен третьего уровня. Поэтому делаем перенаправление. Первое, что делаем, посылаем заголовок – ‘HTTP/1.1 301 Moved Permanently’, что означает, что старый адрес навсегда перемещен на новый. Затем следующей строчкой делаем редирект используя переменные $_SERVER['HTTP_HOST'] и $_HOST (это $_SERVER['REQUEST_URI'] в которой убрали .www)

header ('HTTP/1.1 301 Moved Permanently');
header("Location: http://".$_HOST.$_SERVER['REQUEST_URI']);

Установка Smarty

Автор: nikba от 13-07-2011, 15:11
Качаем последний релиз Smarty.
Распаковываем папку libs в любое удобное место(можно в корень)

Создаем на веб-сервере(в корне) каталоги: cache, templates, templates_c и conf.

И каталогам cache и templates_c присваиваем права доступа 777
Теперь в каталоге conf создаем конфиг(config.php) для Smarty который подключаем в начале нашего index.php

config.php

define('SMARTY_DIR','libs/');
require_once(''.SMARTY_DIR.'/Smarty.class.php');
$smarty = new Smarty;
$smarty->template_dir = './templates/';
$smarty->compile_dir = './templates_c/';
$smarty->cache_dir = './cache/';
$smarty->caching=true;


index.php

require_once('conf/config.php');
$smarty->assign('DATE',date("H:i:s"));
$smarty->display('main.tpl.htm');


А в папке templates создаем main.tpl.htm следующего содержания:

Время {$DATE}

Наложение логитипа на изображение

Автор: nikba от 9-07-2011, 16:45
Для наложения логитипа на изображение мы воспользуемся функциями стандартной PHP библиотеки работы с изображениями GD

На входе путь к картинке, на которую накладываем лого, и путь к файлу с накладываемым изображением (С ПРОЗРАЧНОСТЬЮ, если нужно):


<?php
function SetLogo($filename, $logo)
{
    $srcImage = ImageCreateFromPNG($filename);

    $logoImage = ImageCreateFromPNG($logo);
    
    $srcWidth  = ImageSX($srcImage);
    $srcHeight = ImageSY($srcImage);
        
    $logoWidth  = ImageSX($logoImage);
    $logoHeight = ImageSY($logoImage);
        
    imageAlphaBlending($logoImage, false);
    imageSaveAlpha($logoImage, true);
    
    $trcolor = ImageColorAllocate($logoImage, 255, 255, 255);
    ImageColorTransparent($logoImage , $trcolor);
    
    imagecopy($srcImage, $logoImage, $srcWidth - $logoWidth,
        $srcHeight - $logoHeight, 0, 0, $logoWidth, $logoHeight);
                
    ImagePNG($filename, $srcImage);
        
    ImageDestroy($logoImage);
    ImageDestroy($srcImage);        
}
?>

Количество пользователей на сайте

Автор: nikba от 9-07-2011, 16:42
Показывает количество посетителей находящихся на сайте в данный момент.

<?php
session_start();  
  
function getUsersOnline() {  
   $count = 0;  
  
   $handle = opendir(session_save_path());  
   if ($handle == false) return -1;  
  
   while (($file = readdir($handle)) != false) {  
       if (ereg("^sess", $file)) $count++;  
   }  
   closedir($handle);  
  
   return $count;  
}  
?>


$usercount = getUsersOnline();
echo $usercount;

Redirect или перенаправление на другую страницу в PHP

Автор: nikba от 9-07-2011, 16:36
Redirect или перенаправление на другую страницу в PHP осуществляется путем отправки специального HTTP заголовка функцией header:

<?php
@header('Location: http://www.tigir.com/php.htm');
exit;
?>


Редирект с задержкой можно сделать так:

<?php
@header('Refresh: 3; URL=http://www.tigir.com/php.htm');
echo 'Через 3 сек. вы будете перенаправлены на новую страницу.';
exit;
?>

Как получить список таблиц базы данных MySQL из PHP?

Автор: nikba от 9-07-2011, 16:33
Для листинга таблиц в MySQL имеется специальный запрос SHOW TABLES, - мне лишь остается привести небольшой код, просто выбирающий в массив список таблиц базы данных MySQL:
function get_database_tables()
{
    $ret = array();
    $r = mysql_query("SHOW TABLES");
    if (mysql_num_rows($r)>0)
    {
        while($row = mysql_fetch_array($r, MYSQL_NUM))
        {
            $ret[] = $row[0];
        }
    }
    return $ret;
}
Назад Вперед
Наверх

Веб-мастер (англ. webmaster) — человек, профессионально или в качестве хобби занимающийся разработкой веб-сайтов в Интернете или корпоративных приложений в интранете.