Когда требуется делать правку кода на рабочем сайте, возникает потребность в обработке возможных ошибок, и делать это незаметно для пользователя. Для начала, потребуется определить собственную функцию обработки php ошибок.
Кратко изложу один из возможных вариантов конструкций:
Создаем условие, при котором скрипту станет известно, что я/ты его создатель (или пытаемся им быть). Для этого воспользуемся cookie's, например наличие cookie с именем «time6288456272719» = «234567u8». Обычный пользователь/интересующийся не поймет что она значит. Теперь в php проверяем эту cookie, и если она существует, пишем следующую конструкцию:
Создание этой самой записи, можно реализовать на js путем клика например, на значке копирайта в футере. Код может быть таким:
Естественно, можно делать и через авторизацию администратора, но идея существует.
Моя первая запись в блог может быть немного банальна и/или не профессиональна, прокомментируйте.
Спасибо за внимание.
Кратко изложу один из возможных вариантов конструкций:
Создаем условие, при котором скрипту станет известно, что я/ты его создатель (или пытаемся им быть). Для этого воспользуемся cookie's, например наличие cookie с именем «time6288456272719» = «234567u8». Обычный пользователь/интересующийся не поймет что она значит. Теперь в php проверяем эту cookie, и если она существует, пишем следующую конструкцию:
<?php /* * Проверим, наличие cookie и установим обработку ошибок. */ if ( isset($_COOKIE['time6288456272719']) && $_COOKIE['time6288456272719'] == "234567u8") { set_error_handler('ereporting'); // ereporting - наша функция для обработки ошибок set_exception_handler('ereporting'); } else { error_reporting(0); ini_set('display_errors', 'off'); ini_set('display_startup_errors', 'off'); } /* * $ereporing array = массив строк с ошибками */ $ereporing = array(); function ereporting($errno, $errstr, $errfile, $errline) { $r = ' | '; // '|' - разделитель, кому что больше нравится global $ereporting; // можно и так, можно и по ссылке $ereporting[] = $errno . $r . $errstr . $r . $errfile . $r . $errline; // запись в массив return true; } /* * Далее, функция чтения и уведомления в консоль разработчика. * Также, внизу фигурирует константа 'ROOT', предполагается ее отсутствие или иное написание * DOCUMENT_ROOT'a. * * Вызов функции можно делать в любом месте страницы, но лучше в конце. */ function ereportingRead() { global $ereporting; // также или по ссылке ?><script type="text/javascript">try{<?php // лучше поместить js в конструкцию try if ( is_array($ereporting) ) { foreach($ereporting as $line) { ?>console.warn("<?php echo str_replace(ROOT,'',$line);?>");<?php // выводим по одной линии } } else { ?>console.log('ok')<?php // или пишем что все в порядке } ?>}catch(e){}</script><?php }
Создание этой самой записи, можно реализовать на js путем клика например, на значке копирайта в футере. Код может быть таким:
/* * присвоим спецсимволу идентификатор, например так: <span id="d73ghd"></span> * вариантов реализации - много * можно еще обфусцировать, или написать непонятнослитноточкатиребезпереносов * Предполагается наличие jQuery и jQuery cookie (или др.) */ $('#d73ghd').click( function() { var c = 'time6288456272719'; return (!$.cookie(c)) ? $.cookie(c,'234567u8',{expires:1,path:'/'}) : $.cookie(c,null); } );
Естественно, можно делать и через авторизацию администратора, но идея существует.
Моя первая запись в блог может быть немного банальна и/или не профессиональна, прокомментируйте.
Спасибо за внимание.
