Как вы думаете чаще всего взламывают сайты? Чаще всего через SQL-инъекции, начиная с банальной авторизации под рутом (при абсолютно неграмотном скрипте) и заканчивая более изощренными вещами (при очень грамотном хакере).
Большинства инъекций можно избежать, попросту выполнив перед выполнением PHP-скрипта такой код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | function addslashes_for_array(&$arr) { foreach($arr as $k=>$v) { if (is_array($v)) { addslashes_for_array($v); $arr[$k] = $v; } else { $arr[$k] = addslashes($v); } } } function fix_magic_quotes_gpc() { if (!get_magic_quotes_gpc()) { addslashes_for_array($_POST); addslashes_for_array($_GET); addslashes_for_array($_COOKIE); } } fix_magic_quotes_gpc(); |
Единственное, что нужно далее учесть, так это то, что все данные, пришедшие от $_POST, $_GET, $_COOKIE будут всегда за экранированы от обратных слешей, кавычек и т. п.
Официально релиз языка программирования ,
вобравший в себя изменения, подготовленные в рамках проекта PHPNG. Новая ветка отличающейся кардинальной переработкой некоторых подсистем, значительной порцией и наличием , нарушающих совместимость. Скачок в номере версии не только подчёркивает значительность релиза, но и связывается с переходом к новой нумерации выпусков, при которой разработчики избавились от лишней цифры в значительных релизах (7.0 вместо 5.7.0).
Ключевые в PHP 7: Читать полностью »
Я использую большие изображения (высокого разрешения) а затем создаю их миниатюры (thumbnail).
Предположим, мне нужна миниатюра (эскиз), чья ширина должна быть максимум 200px. Теперь, создавая миниатюру/эскиз большого изображения нам также потребуется его высота. Итак, как же мы узнаем о его высоте по поддержанию соотношения сторон. Это может быть достигнуто при помощи простого математического уравнения.
Давайте все это сделаем при помощи кода. Я делаю это одним нажатием кнопки.
Недавно нужно было доработать календарь JQuery UI Datepicker. В настройках Datepicker можно задать показ кнопки «Сегодня» в левой нижней части календаря. Однако, при нажатии на кнопку происходит обычный возврат к сегодняшней дате, но не ее выбор. Если пользователь перемещается между месяцами, то кнопка быстро возвращает его к текущей дате.
Как и пользователи я понимаю кнопку «Сегодня», как выбор даты текущего дня с одновременным закрытием календаря.
В ходе очередных поисков по Интернету я пришел к следующему решению. После включения файла JQuery UI:
1 | <script type="text/javascript" src="js/jquery.ui.datepicker-ru.js" language="javascript"></script> |
необходимо добавить следующий код, чтобы переопределить функцию _gotoToday:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <script type="text/javascript">// <![CDATA[ $(function () { var _gotoToday = $.datepicker._gotoToday; $.datepicker._gotoToday = function( id ) { var target = $( id ), inst = this._getInst( target[0] ); if ( this._get( inst, 'gotoCurrent' ) && inst.currentDay ) { inst.selectedDay = inst.currentDay; inst.drawMonth = inst.selectedMonth = inst.currentMonth; inst.drawYear = inst.selectedYear = inst.currentYear; } else { var date = new Date(); inst.selectedDay = date.getDate(); inst.drawMonth = inst.selectedMonth = date.getMonth(); inst.drawYear = inst.selectedYear = date.getFullYear(); } this._selectDate( id, this._formatDate( inst, inst.selectedDay, inst.drawMonth, inst.drawYear ) ); } }); // ]]></script> |
Решения, которые я видел в Интернете работают, но в самом лучшем варианте после закрытия календаря курсор остается в поле для ввода, что меня не устраивало. В моем варианте я это исправил.