Web Мастерская»Блог

Сообщество Web Мастеров. Тут собрано всё, чтобы написать свой первый сайт, запустить его в Интернет и поддерживать его в течении всей его работы.

Как проверить является ли число положительным | отрицательным на PHP

PHP
Чтобы выяснить: Является число положительным или отрицательным достаточно сравнить его с нулём, то есть больше или меньше нуля. Если число больше нуля, значит оно положительное, если меньше, значит отрицательное.
$n = -7;

if ($n > 0)
{
	echo 'Положительное число.';
}
else
{
	echo 'Отрицательное число.';
}

Можно в виде функции:
// Проверка числа (Положительное | Отрицательное)
function numberCheck($number)
{
	return $number > 0;
} // End: Проверка числа (Положительное | Отрицательное)

Проверить: Является ли число положительным:
if (numberCheck($n))
{
	echo 'Положительное число.';
}

Проверить: Является ли число отрицательным:
if (!numberCheck($n))
{
	echo 'Отрицательное число.';
}
...

Как разделить строку по символам, при первом его появлении

PHP
При помощи функции explode() мы можем разбить строку в массив, по указанному символу. В моём случае указанный символ (Разделитель) - это двоеточие (:):
$part = explode(':', $param);

И я получаю из строки: user:1 массив из двух элементов. Тут всё просто. Но когда мне приходит строка такого вида: origin:https://danfa.net, сценарий отрабатывает неправильно. Потому что PHP видит в строке два разделителя, первый, где и должен быть, второй в URL и разбивает строку в массив из трех элементов, вместо двух.

Чтобы функция разбивала строку в массив, только на первом разделители, следует использовать третий параметр функции explode(), что называется лимит. Делаем так:
$part = explode(':', $param, 2);

Готово....

Как включить / выключить дебаг или режим отладки в Oxwall

CMS
Для того, что включить дебаг и режим отладки в движке Oxwall, необходимо открыть: ow_includes/config.php, найти:
    /** 
    * Make changes in this block if you want to enable DEV mode and DEBUG mode
    */

    define('OW_DEBUG_MODE', false);
    define('OW_DEV_MODE', false);
    define('OW_PROFILER_ENABLE', false); 

Заменить на:
    /**
    * Make changes in this block if you want to enable DEV mode and DEBUG mode
    */

    define('OW_DEBUG_MODE', true);
    define('OW_DEV_MODE', true);
    define('OW_PROFILER_ENABLE', true);

То есть надо сменить false на true.
Готово, дебаг активирован.

Отключается дебаг путём замены true на false, в этих же строках.

Возможно, будет интересно: Блог: Поиск ошибок в PHP | Дебаг....

Как заблокировать IP адрес пользователя в Nginx

О том, как заблокировать IP в .htaccess, я рассказывал: Как заблокировать IP адрес пользователя в .htaccess, тут я расскажу, как заблокировать нежелательные IP адреса в Nginx, как это сделал я.

И так, у меня поселился один постоялец, крутится он на сайте круглые сутки, видимо это бот. Первые цифры IP: 141.8 - это неизменные цифры, остальные постоянно меняются. Было решено заблокировать его, для этого я открываю "etc/nginx/nginx.conf" и после: http { добавляю:
	deny 141.8.0.0/16;

Перечитываю конфигурацию Nginx командой:
nginx -s reload

Готово! Обратите внимание на то, как написан IP: 141.8.0.0/16 - первые две цифры (141.8), как есть, дальше следуют нули и /16 - это говорит о том, что цифры могут быть абсолютно любыми (диапазон). Если надо заблокировать, какой то конкретный IP, например: 141.8.142.114, пишем так:
	deny 141.8.142.114;

После добавления записи, которая кого то блокирует, в моем файле: "var/www/httpd-logs/danfa.net.error.log", появляются записи (Доступ закрыт...

Как заблокировать IP адрес пользователя в .htaccess

Сразу к делу! Допустим, нам необходимо заблокировать вот такой IP: xx.xx.xx.xxx, конечно, вместо иксов должны быть цифры, но в качестве пример, пойдет. Делаем так:
#User IP Banning
<Limit GET POST>
Order allow,deny
Deny from xx.xx.xx.xxx
Allow from All
</Limit>

Пример приведен с одним IP, чтобы заблокировать IP больше, просто, после строки:
Deny from xx.xx.xx.xxx

Добавляем Deny from тут IP и так каждый IP с новой строки:
#User IP Banning
<Limit GET POST>
Order allow,deny
Deny from xx.xx.xx.xxx
Deny from xx.xx.xx.xxx
Deny from xx.xx.xx.xxx
Deny from xx.xx.xx.xxx
Deny from xx.xx.xx.xxx
Allow from All
</Limit>

Если есть необходимость заблокировать все IP адреса, которые начинаются одинаково, например:
38.99.82.191
38.99.82.192
38.99.82.193

То тут необязательно писать каждый IP отдельно, достаточно написать так:
38.99.82.

И все IP, что начинаются на 38.99.82. будут заблокированы. Обратите внимание на точку в конце, если точку убрать, то блокироваться будут IP такого вида: 3...