Своя страница «Ошибка соединения с базой данных»
Периодически бывает нагрузка на сайт и светится пользователю эта ошибка ->
"Ошибка соединения с базой данных"
Подумал почему бы не поменять страницу на свою, и сообщить пользователю свою инфу, как бы чучуть не договорить но дать понять что сайт работает и нужно обновить страницу.
Как всегда пришлось искать на ENGLISH - в итоге нашел на русском , с ссылкой на оригинал, вот что получилось набросать.
<?php // custom WordPress database error page // Edit by Kolshix // УСТАНОВКА - добавить файл "db-error.php" в папку "ВАШ_САЙТ_РУ/wp-content/" при ошибке базы данных вордпресс обращается в эту папку - если файла "db-error.php" нет, будет указана стандартная страница WORDPRESS // вариации ошибок // 500 программное обеспечение работает, но есть серьезные внутренние проблемы, которые мешают запросам правильно обрабатываться. // 503 свидетельствует об образовании большой очереди запросов на сервере - когда перегружен сервер могут быть неполадки с соединением к БД, а это как раз та ошибка header('HTTP/1.1 503 Service Temporarily Unavailable'); header('Status: 503 Service Temporarily Unavailable'); header('Retry-After: 600'); // 1 hour = 3600 seconds // информируем бота что нужно попробовать ещё раз через установленное время // Уведомление на email // mail("your@email.com", "Database Error", "There is a problem with the database!", "From: Db Error Watching"); ?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Database Error</title> </head> <body> <center> <script> setTimeout("window.location.reload()", 9000); // время перезагрузки </script> <h1>Error Connection</h1> <style> a.button { color: white; text-decoration: none; user-select: none; background: rgb(76, 144, 232); padding: 9px; outline: none; border: 3px solid #3d6ea0; border-radius: 10px; } a.button:hover { background: rgb(86, 218, 72); } a.button:active { background: rgb(76, 144, 232); } </style> <script type="text/javascript"> function timer(){ var obj=document.getElementById('timer_inp'); obj.innerHTML--; if (obj.innerHTML==0){ setTimeout(function(){},1000); } else { setTimeout(timer,1000); } } setTimeout(timer,1000); </script> <h1><div>Wait: <span id="timer_inp">9</span> Or <a href='<?php echo "http://".$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"]; ?>' class="button">Refresh</a></div></h1> <img itemprop="url" src="/err_c.gif" width="300" height="300" > </center> </body> </html>
Поставил таймер и кнопку для нетерпеливых и параноиков с отключенным JS
Украсил максимально просто - можете сделать под свой вкус.
При добавлении к себе на хост нужно: добавить свою картинку и сделать сжатие JS и CSS
Как вам такая идея?
Напишите свое мнение и советы по улучшению
Хорошая идея! Правда такую ошибку редко видно. Но почему бы и не сделать ей красивую обработку.
Там статус 500 нужно возвращать - мелочи но все же... Такую оригинальную страницу смотри тут dead_db()
П.С. Не против если я из этой заметки статью-заметку сделаю? Правда не знаю когда, когда-нибудь...
П.П.С На будущее: картинки загружай через кнопку на этом сайте... Сравнительно недавно добавил такую возможность - удобнее и надежнее.
1 статью конечно делайте ( в интернете полно таких, но они пустые и ограничены 10 строками )
2 ошибку нужно 503 - в коде указано что ошибка временная, да и сам код направлен на перегрузки сервера, я часто их ловлю и не хочу терять пользователя ,
3 картинки поправлю, там анимированная должна быть