Скрипт голосования. Голосование на PHP своими руками

Обычно WordPress довольно стабилен и не огорчает владельца ошибками. Но бывают ситуации, когда движок начинает капризничать и выдавать предупреждения, ругаться непонятными для непосвященного человека словами. Давайте рассмотрим самые распространенные ошибки WordPress , разберемся, почему они возникают и как их можно исправить.

Я знаю, что эти советы давно наскучили, что вы знаете об этом и что я нудный тип, который постоянно пишет одно и тоже… Но с завидным постоянством я отвечаю на одни и те же вопросы, 90% которых возникают из-за несоблюдения нескольких довольно простых правил:

  • Не устанавливайте плагины, если не уверены в их надежности . Я знаю два источника, которым могу доверять в определенной мере: репозиторий WordPress и Codecanyon(магазин плагинов и скриптов). Конечно, там тоже хватает сомнительных решений, особенно это касается родного репозитория с плагинами.
  • Обновляйте WordPress . Разработчики не только исправляют ошибки, но и вносят некоторые дополнения, меняют механизмы ядра. Буквально вчера столкнулся с неработающим WooCommerce 2.0.5 на версии WordPress 3.4.1. Стоило обновить движок и все замечательно завелось.
  • Не ставьте экспериментов на работающем сайте . Неважно, три посетителя у вас в день или триста — гораздо разумнее сделать копию сайта и применить изменения на ней. Это убережет ваши нервы от стресса, а ваш сайт от ошибок и неполадок.
  • Делайте резервные копии . Это вообще краеугольный камень не только веб-разработки, но и любой деятельности, связанной с компьютерами.

Белый экран смерти (WSOD)

Знакомое выражение для пользователей Windows, там системная ошибка называется BSOD и отличается синим цветом экрана. Вот только в нашем случае перезагрузкой компьютера проблему не исправить

Обычно, WSOD не возникает на пустом месте и связан, чаще всего, с установкой какого-либо плагина, либо шаблона. Вся неприятность данной ошибки — она блокирует админ-панель и сам сайт. Откатиться можно только при помощи файлового менеджера хостинга или по FTP-протоколу.

Почему возникает WSOD?

  • установка плагина или шаблона, несовместимого с текущей версией движка
  • конфликт плагина с другим расширением или темой
  • обновление старого плагина, вызвавшее ошибку

В любом случае — отследить виновника несложно, если вы только что обновили некий плагин или шаблон. Как быть, если вы обновили одним махом 10-20 плагинов(невероятная ситуация, но все таки возможно и такое)? Очень просто…

  • переименовать каталог с плагинами (plugins1 к примеру) и создать новый с тем же названием, при этом движок перестанет видеть установленные плагины и можно будет включать их по одному, чтобы найти виновника.
  • переименовать текущий используемый шаблон , не забыв предварительно добавить стандартный шаблон (Twenty любой). После переименования WordPress переключится на доступную стандартную тему и можно будет зайти в админ-панель.

500 internal server error

Ошибка довольно неприятная, но редкая. Чаще всего связана с неправильным файлом в корневом каталоге сайта. Лечится довольно просто — достаточно удалить его, затем зайти в админ-панель WordPress, перейти в раздел постоянных ссылок и сохранить еще раз желаемую структуру. После сохранения — WordPress создаст новый файл htaccess и с очень большой вероятностью ошибка пропадет.

Кроме этого, есть еще множество других причин возникновения ошибки 500. Лучший способ выяснить причину — открыть файл error_log , который обычно находится в корне сайта(если хостер включил журналирование, конечно).

Есть неплохой стандартный вариант — необходимо включить режим отладки WordPress. Для этого добавьте в файл wp-config.php такую строку:

DEFINE ("WP_DEBUG", TRUE);

и затем уже смотреть журнал ошибок. В таком случае ошибка будет описана более подробно, что облегчит поиск и устранение.

Error establishing a database connection

На мой взгляд — наиболее распространенная ошибка у начинающих. Может возникнуть в следующих случаях:

  • неверный параметр соединения с базой данных . Какой-то из трех параметров подключения (адрес, логин, пароль) неверен, нужно перепроверить файл wp-config.php . Важно ! Убедитесь, что каждый из них заключен в одинарные кавычки.
  • не работает сервер баз данных MySQL . Если у вас VPS — необходимо перезагрузить сервер, если обычный хостинг — обратиться в техподдержку, пускай проверяют.
  • пользователь не имеет доступа к изменению таблиц БД . Для исправления необходимо добавить пользователю права(я ставлю обычно полный доступ к БД), делается это при помощи панели управления хостингом

Warning: Cannot modify header information — headers already sent by …

Довольно частая ошибка, которая легко решается. Движок сам говорит, в каком файле проблема, а мы попробуем исправить ее. Для этого скачайте файл, который вызывает ошибку, это будет файл с расширением PHP.
Используя ваш любимый текстовый редактор удалите все пробелы и пустые строки перед ,После чего перезапишите файл на сервере — с вероятностью в 99,9% проблема будет решена.

Довольно часто эта ошибка возникает при сохранении файла в формате UTF-8 с BOM , как правильно заметили в комментариях. Для решения необходимо выбрать формат сохранения без BOM. Для опытных пользователей WP это само собой разумеющаяся вещь, а вот новички иногда очень мучаются

An automated WordPress update has failed to complete

Ошибка довольно редкая, но иногда встречается. Чаще всего возникает, когда мощности хостинга не хватает для завершения автоматического обновления. Я бы рекомендовал бежать от такого хостера Но если альтернативы нет, поможет обновление движка вручную в таком порядке:

  • Качаем последнюю версию с ru.wordpress.org (ну или на вашем родном языке) и распаковываем
  • Отключаем все плагины на сайте, если это возможно
  • По FTP заходим в корневую папку сайта и удаляем директории wp-includes и wp-admin
  • Копируем эти папки из распакованного дистрибутива WP
  • Заменяем файлы в корневой папке на содержимое корня дистрибутива
  • Важно ! Не трогайте папку wp-content, надеюсь понятно, почему

Briefly unavailable for scheduled maintenance. Check back in a minute.

Простая до безобразия ошибка, решающаяся удалением файла .maintenance из корня сайта. Возникает из-за неправильно завершившегося автоматического обновления. Если это так — вам поможет пункт выше. Но чаще всего просто автоматически не удаляется этот файл, только и всего.

FATAL ERROR: ALLOWED MEMORY SIZE OF -- BYTES EXHAUSTED

Эта ошибка WordPress возникает из-за недостатка памяти, выделенной для процесса PHP. Все, что вам нужно сделать, это увеличить количество памяти , если это возможно. Есть несколько способов сделать это:

  • Если вы можете редактировать файл php.ini, добавьте к нему строчку memory_limit = 64M (ну или найдите существующую и смените значение) и перезапустите сервер.
  • Отредактируйте.htaccess файл, расположенный в корневом каталоге, добавьте php_value memory_limit 64M.
  • Измените файл wp-config.php, добавьте DEFINE (‘WP_MEMORY_LIMIT, ’64M’);
  • Создаем php.ini файл внутри папки wp-admin c таким содержимым: memory_limit = 64M;

Какой-то из способов должен сработать Стоит заметить, что некоторые хостеры выделяют максимальный предел памяти на уровне 8-16М и не дают менять это значение. В таком случае я бы советовал замену хостинга.

Connection time out

Это классический симптом перегруженности сервера. Это означает, что сервер перегружен и не может завершить запрос, отправленный пользователем. Если это происходит довольно часто, то мой совет — менять хостинг. Если же возможности нет — нужно снижать нагрузку:

  • увеличиваем лимит памяти (читаем выше)
  • по возможности — деактивируем не совсем нужные плагины
  • переход на стандартный шаблон, вроде Twenty Twelve

Maximum execution time of 30 seconds exceeded

Каждый файл PHP имеет максимальное время своего выполнения. Если он не «укладывается» в отведенные настройками рамки, возникает эта ошибка. Чаще всего проблема возникает из-за неправильного функционирования дополнений (функция замыкается в цикле, к примеру). Для решения попробуйте сбросить каталог плагинов и текущий шаблон. Если это не сработает, значит ваш хостинг недостаточно мощный для вашего проекта, с соответствующими выводами.

Как вариант, можно попытаться увеличить максимальное время выполнения:

  • измените.htaccess в корневом каталоге WordPress, добавьте строку: php_value max_execution_time 60
  • измените, если есть возможность, файл php.ini, добавьте строку: max_execution_time = 60;

Ошибки, связанные со структурой БД

Я сталкивался только с двумя ошибками MySQL, возможно вариантов больше. Если у вас есть информация — поделитесь в комментариях, я дополню статью.

  • Ошибка 145 . Это значит, что структура БД повреждена и нуждается в восстановлении. При помощи phpMyAdmin или любого другого менеджера БД можно провести repair (восстановление стандартными средствами) Не забывайте про предварительный бэкап вашей базы
  • Ошибка 28 . Не связаннная с WordPress ошибка, которая относится к самому MySQL. Решается при помощи техподдержки хостинга.

Вроде ничего не забыл и самые распространенные ошибки WordPress описал. Если что-то осталось неясным или у вас возникла ситуация, которая тут не описана — пишите в комментариях, я попробую вам помочь.

Удачного дня


Комментариев: 28

  1. Ольга

    Большинство ошибок движка возникает из за того что темы или плагины не всегда совместимы с последней версией движка. Эти траблы устраняются просто удалением папки с кривым плагином или темой. При этом сам движок откатывается к теме по умолчанию и все в порядке.

  2. Зенков Андрей

    Не нужно ставить плангины, которые не внушают доверия, чтобы избежать ошибки. Не каждая версия WordPress с ними дружить. Ну а если на то пошло, то нужно обновить до последней версии

  3. Виталий

    Ребят, проблема с контактной формой. Я ее заполняю и нажимаю отправить а при отправке пишет » Ваше сообщение не было отправлено из за внутренней ошибки.» Подскажите в чем ошибка пожалуйста.

  4. Инга

    Да, с шаблоном всегда проблемы, лучше стандартные использовать + немного переработать

  5. Сергей

    Здравствуйте! У меня при запросе к несуществующей странице отдается неверный статус код, (т.е. вместо ошибки 404 выдает код 500) как это исправить на WP?

  6. Сергей

    Здравствуйте! В моем сайте http://modnaya-krasotka.ru на главной странице неправильно работает какой-то скрипт. Подскажите пожалуйста, как решить эту проблему?

  7. Андрей

    По поиску нашел эту статью про ошибки WordPress.
    К сожалению не нашел описание своей ошибки.
    Но на всякий случай спрошу, может кто знает.
    У меня шаблон с упрямством достойным лучшего применения в корне сайта создает папку год-месяц
    Из за этого перестают работать ссылки перемещения в архиве записей по месяцам. Ошибка выдается.
    Где то в шаблоне ошибочно определяется где нужно создавать эту папку. При этом в папке uploads такая же папка создается нормально, без проблем.
    Никто не сталкивался с таким? Не подскажете где искать ошибку?

  8. Елена

    Спасибо за статью, много полезной информации, которая обязательно когда-нибудь пригодится! Но я недавно столкнулась со странной проблемой. После установки новой версии WordPress при вводе комментария не высвечивается фраза премодерации о том, что комментарий скоро будет одобрен, а человека перебрасывает на эту же страницу, но без каких-либо сообщений от сайта. Раньше всё работало, но в какой момент произошла эта ошибка, сложно отследить — возможно, она появилась даже раньше обновления CMS. Откатила версию вордпресс — безрезультатно. Как вы думаете, в чём в этом случае может быть корень зла? Если честно, не знаю, что делать. Буду благодарна за любые советы.

  9. Константин

    Спасибо. Разобрался сам. Поустанавливал плагинов всяких ненужных вот и тупить стал шаблон))) Так что ребята не устанавливайте лишние — ненужные плагины это плохо:))

  10. Константин

    Добрый день. У меня не стандартная ошибка. Я сделал сайт на движке вордпресс, всё вроде шло нормально. Но в один прекрасный день просыпаюсь, захожду на сайт, а у меня мой шаблон установлен два раза (т.е. 2 раза повторяется при прокрутке вниз). Помогите решить проблему. Надеюсь на вашу поддержку. Заранее спасибо.

  11. Игорь

    Огромное спасибо за толковые советы

  12. Элина

    Здравствуйте!Помогите пожалуйста!Вчера после установки плагина jivosite на вордпресс,сначала заблокировался админ, то есть не могу зайти через свой логин пароль, выдает ошибку 121, и при попытке просто зайти на сайт,тоже выходит строка с той же ошибкой.Что мне делать?это вообще подлежит восстановлению?

  13. Юрий

    добрый вечер.я уже и не знаю что мне делать начитался, жуть… но все равно выдает ошибку.дело вот в чем: установил денвер, потом вордпрес, сделал базу данных, пользователя, но войти в админку не могу пишет «Одна или несколько таблиц базы данных недоступны» поченить…. поченить. и все дело стало показало что только две базы исправны, а остальные нет.как это испраить, что сделать не знаю. подскажите.
    создал таблицы с теми именами что не хватает,… поченить… ченить. все прошл успешно… удалите строчку в wp-config.php удалил и все сначала. попробывал ченить и отимизировать некоторые базы не смогло оптимизировать. что делать? в чем проблема? помогите.только что попробывал все стер и заново, все стало коректно, но в конце когда должна открыться станица с входом в вордрес высвечует просто белый фон с логотипом самого вордпреса и все.

  14. Федор

    Из всех ошибок у меня кажется только три. Ошибка 500, 404, Белый экран смерти тоже был и проблему решил, просто переустановив wordpress, Из всех проблем самая ощутимая эта ошибка 404 ео она кажется возникает после того как неправильно будешь переустанавливать постоянные ссылки.

В последнее время мне пришлось много раз устанавливать WordPress – несколько знакомых делали блоги и попросили помощи в установке, плюс пара клиентов, и несколько новых блогов для себя.
Хотя обычно наш любимый движок устанавливается легко и быстро, но иногда процесс установки не проходит так гладко, как хотелось бы. Устанавливая скрипт множество раз и сталкиваясь с ошибками установки, я смогла выделить типичные.
Попытаюсь проанализировать их в этом посте.

  • Главная – это, конечно же, неправильная кодировка баз данных.
    Проявляется она кракозябрами на странице. Узнайте кодировку, которая установлена на сервере хостера по умолчанию. Обычно это win-1251, но может быть и utf8.
    Чтобы у вас не возникло этой проблемы, после создания базы данных не спешите устанавливать WordPress - вместо этого откройте phpMyAdmin.

    Дальше вам нужно выбрать базу данных и если таблиц в базе еще не создано, о чем говорит сообщение: "Таблиц в базе данных не обнаружено", перейти на страницу phpMyAdmin и в окошке «Сопоставление соединения с MySQL» выбрать кодировку для сравнения.
    Если на сервере кодировка по умолчанию win-1251 – выбираете «utf8_general_ci».
    Если кодировка UTF-8, то сравнение в базе данных нужно выбрать UTF-8_unicode_ci.
    Если же таблицы в базе уже есть, найдите их список и обратите внимание на самую нижнюю строчку «Таблиц всего:» и «Сравнение». Проверьте, чтобы оно было выбрано правильно, так, как описано выше.
    Если сравнение выбрано неправильно, переходим на вкладку «Операции».
    Внизу вы увидите выпадающий список «Сравнение», где нужно выбрать нужное вам сравнение. После этого жмем «ОК».
    Проверьте, также, чтобы все файлы вашей темы были в кодировке utf8. Для этого нужен блокнот Notepad2 – обычный блокнот не дает возможности исправить кодировку.

  • При запуске инсталляционного файла скрипт выдает сообщение "Error establishing a database connection".
    Это значит, что недоступна база данных (mysql не отвечает). В таком случае, проверьте, чтобы название базы данных, логин и пароль в файле cоnfig.php совпадали с таковыми в созданной вами базе. Далее перезагрузите страницу, возможно это придется сделать несколько раз. Если не поможет – пишите хостеру.
    Самостоятельно с этим не справиться.
  • После закачки и попытки начать установку по адресу http://mydomain.com/wp-admin/install.php открывается пустая страница. При попытке открыть http://mydomain.com/index.php та же картина.
    Проверьте, верно ли вы загрузили файлы. В тот ли каталог? Создайте в папке с вашим сайтом файл index.html – он, обычно, загружается без всяких проблем. То есть добейтись, чтобы отображалась хоть какая-нибудь тестовая страница. Если не получится, то лучше обратиться к хостеру, он скажет что-то конкретное.
  • Установка проходит нормально, но не удается настроить ЧПУ или вообще загружается одна Главная страница, а остальные нет.
    Создайте в корне сайта файл.htaccess и установите на него права 777, скрипт сам запишет в него то, что ему нужно для работы ЧПУ. Или самостоятельно вставьте в этот файл следующий код:
    # BEGIN WordPress RewriteEngine On RewriteBase / RewriteCond % { REQUEST_FILENAME} !- f RewriteCond % { REQUEST_FILENAME} !- d RewriteRule . / index. php [ L] # END WordPress

    # BEGIN WordPress RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress

  • На сайте или в админке вылазят ошибки, такого типа:
    Warning: Cannot modify header information - headers already sent by
    Или вообще отображаются одни ошибки и ничего больше.
    Лечить так:
    Найти файл wp-config.php (в корне сайта), открыть его нормальным текстовым редактором, (например Notepad2 - http://www.flos-freeware.ch ), выбрать:
    Файл - Сохранить как - Кодировка UTF-8 (а не UTF-8 с сигнатурой).
    И нажать "Сохранить".
    Такие ошибки также могут появляться, если в этом файле код начинается не с первой строки – тогда, соответственно, убираем пустую строку.

Это, конечно, не все ошибки, появляющиеся при установке, просто наиболее часто встречающиеся.
Искренне надеюсь, что эта информация вам не пригодится.
P.S. Пост перенесен с http://wordpressru.blogspot.com/

Всем привет. В этой статье мы с вами рассмотрим красивый скрипт социального голосования для сайта. Основной плюс этого скрипта в том, что он написан на PHP и подходит для использования на различных .

Не секрет, что в социальных сетях ежедневно пропадают милионы пользователей, и наша с вами задача этих пользователей привлечь к себе на ресурс, причем используя пассивные методы привлечения. Вирусный трафик с социальных сетей, может быть реализован при помощи социального голосования. Каждый раз, когда пользователь голосует за что-то, ссылка на голосование появляется на его странице ВКонтакте, FaceBook или Twitter в зависимости от того, какой вариант голосования он выбрал.

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

Социальное голосование - Voting.

Итак, теперь перейдем непосредственно к скрипту. Для начала скачиваем , архив со скриптом социального голосования из двух вариантов выбора. В архиве имеется папка voting, в которой находятся все основные файлы скрипта:

  • vote_start_data - папка содержит два изображения 11.jpg и 12.jpg и другие файлы. Это изображения с размерами 150х150 px, которые выводятся при голосовании. Здесь, вам нужно заменить только эти два изображения на свои.
  • index - основной файл, выполнения сценариев. Этот файл не трогаем.
  • vote_start.php - скрипт социального голосования. Он хорошо прокомментирован, внесите свои изменения на ваше голосование.
  • vote11.php - файл выполняющий редирект (перенаправление) из социальной сети при выборе первого варианта голосования на необходимую вам страницу, как правило это страница с голосованием, но может быть использована и другая.
  • vote12.php - файл выполняющий редирект (перенаправление) из социальной сети при выборе второго варианта голосования на необходимую вам страницу, как правило это страница с голосованием, но может быть использована и другая.

Теперь давайте перейдем непосредственно к установке скрипта. После внесения всех изменений, закачайте папку voting из архива к себе на сервер в корневую папку сайта.

Теперь, можно приступить к добавлению социального голосования на свой сайт. Делается это очень просто. Для этого вам нужно в том месте страницы, где вы хотите вывести голосование вставить следующий код:

В результате всей работы у вас на сайте появится, вот такое социальное голосование:

В принципе на этом все. Ах да, чуть не забыл, если вы хотите сделать голосование с тремя или четыремя вариантами выбора или более, то исходники измененного скрипта, можете .

Скрипт для голосования своими руками на PHP и MySQL с использованием AJAX
(изменения от 03.01.2012)

Часто на различных сайтах мы видим блоки с опросом общественного мнения. Как сделать подобный скрипт, для проведения голосования на своем сайте, да еще и таким образом, чтобы при выборе нужного пункта страница не перегружалась целиком, а изменялся только блок с опросом и сразу показывал результаты. Об этом и пойдет речь в данной статье.

Важно!
Для того, чтобы пример работал корректно, необходимо:
1. Все файлы должны быть записаны в кодировке UTF-8.
2. Скрипты должны выполняться на веб-сервере, а не запускаться в браузере, как файл.

Рассмотрим пример.

Пример состоит из 5 различных файлов, рассмотрим каждый из них в отдельности.

Файл dbconnect.php

Служит для соединения с базой данных, для создания необходимой таблицы и для заполнения её примером нашего голосования.

Работа с базами данных описана в статье
« ».

В нашем случае база данных состоит из одной таблицы с тремя полями:
id – идентификатор записи;
title – название записи;
votes – количество голосов, отданных за эту запись.

Первоначально таблица заполняется следующими значениями:

Запись, для которой поле votes имеет значение NULL – считаем названием опроса, которое содержится в поле title.

Файл showcontent.js

Содержит в себе AJAX-функцию showContent() для обновления контента без перезагрузки страницы. Подробное описание работы данной функции приведено в статье «AJAX и JavaScript. Загрузка контента без перезагрузки страницы".

Файл functions.php

Содержит описание двух функций, применяющихся нами в программе.

Function drawForm() // отображение формы для голосования { $r=mysql_query ("SELECT * FROM vote WHERE votes is NULL"); $row=mysql_fetch_array($r); echo "

".$row["title"]."

"; echo "
"; $r=mysql_query ("SELECT * FROM vote WHERE votes is not NULL"); while ($row=mysql_fetch_array($r)) echo " {$row["title"]}
"; echo "
"; echo "
"; }

Функция drawResults() отображает результаты голосования.

Function drawResults() // отображение результатов { $r=mysql_query ("SELECT * FROM vote WHERE votes is NULL"); $row=mysql_fetch_array($r); echo "

".$row["title"]."

"; $r=mysql_query ("SELECT * FROM vote WHERE votes is not NULL"); while ($row=mysql_fetch_array($r)) echo "{$row["title"]}: {$row["votes"]}
"; }

Данные для построения формы и вывода результатов берутся из базы данных.

Файл index.php

При загрузке этой страницы мы сперва проверяем, было ли уже произведено голосование. Проверку осуществляем через переменную cookie, поскольку это является наиболее простым случаем. Если голосование произведено не было, то мы выводим в контейнер contentBody форму для голосования. Если же пользователь уже голосовал - выводим результаты поиска.

Файл vote.php

Программный код этого файла выполняется тогда, когда пользователь производит голосование. В этот момент мы создаем переменную cookie, для того, чтобы исключить повторное голосование, сохраняем результат голосования в базу данных и отображаем результаты.

// установка cookie для избежания повторного голосования с одного браузера. setcookie ("codething_vote","1"); // добавление выбранного варианта $select = $_REQUEST["select"]; mysql_query ("UPDATE vote SET votes = votes + 1 WHERE id = "$select""); // отображение результатов drawResults();

Поскольку, выполнение этого файла вызывается через AJAX функцию showContent(), то перезагрузки всей страницы не происходит и результаты выполнения файла помещаются в контейнер contentBody.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: