Intereting Posts
Почему я получаю фатальную ошибку при вызове конструктора родителя? PHP – Строка поиска для определенного массива слов и совпадение с необязательным + или – получить php DateInterval в общей сложности 'minutes' Предотвратить фальшивый цикл запросов ajax для PHP Symfony2 & Doctrine: создание пользовательского SQL-запроса Получить значение ассоциативного массива с переменной как ключ Это инъекция зависимостей, и это плохая практика? Как создать ответ электронной почты / метод, чтобы закодировать ответ? Yii Записывает таблицу, но не все выбранные данные извлекаются Слушатель событий после обновления Ajax WinXP – запуск PHP: невозможно загрузить динамическую библиотеку php_ibm_db2.dll Перенаправление на новую страницу, когда пользователь использует Internet Explorer Что такое использование одной трубы? ' В аргументе функции Do? Позвольте пользователю загрузить XML-файл Ошибка: Неизвестный столбец '' в 'списке полей' Ошибка MySQL

Почему я получаю «POST http: //54.xx.xx.xx/wp-admin/admin-ajax.php 500 (Internal Server Error)» при использовании WordPress + Ajax?

Это первый раз, когда я использую ajax для WP. Я работаю над простой формой контакта, и по какой-то причине, когда я нажимаю кнопку «Отправить», я получаю сообщение об ошибке:

на консоли:

POST http://54.xxx.xx.xx/wp-admin/admin-ajax.php 500 (Internal Server Error)jquery.js?ver=1.11.1:4 m.ajaxTransport.sendjquery.js?ver=1.11.1:4 m.extend.ajaxmain.js:66 (anonymous function)jquery.js?ver=1.11.1:3 m.event.dispatchjquery.js?ver=1.11.1:3 m.event.add.r.handle 

по хромам «Сети»:

 Remote Address:54.xx.xx.xx:80 Request URL:http://54.xx.xx.xx/wp-admin/admin-ajax.php Request Method:POST Status Code:500 Internal Server Error Request Headersview source Accept:*/* Accept-Encoding:gzip, deflate Accept-Language:en-US,en;q=0.8 Connection:keep-alive Content-Length:73 Content-Type:application/x-www-form-urlencoded; charset=UTF-8 Cookie:wp-settings-1=editor%3Dtinymce%26posts_list_mode%3Dlist; wp-settings-time-1=1424359234 Host:54.xx.xx.xx Origin:http://54.xxx.xx.xx Referer:http://54.xxx.xx.xx/?page_id=73 User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36 X-Requested-With:XMLHttpRequest Form Dataview sourceview URL encoded action:submit_contact_form fullname:test email:test@gmail.com text:test Response Headersview source Access-Control-Allow-Credentials:true Access-Control-Allow-Origin:http://54.xxx.xx.xx Cache-Control:no-cache, must-revalidate, max-age=0 Connection:close Content-Length:0 Content-Type:text/html; charset=UTF-8 Date:Thu, 26 Feb 2015 16:10:19 GMT Expires:Wed, 11 Jan 1984 05:00:00 GMT Pragma:no-cache Server:Apache/2.4.7 (Ubuntu) X-Content-Type-Options:nosniff X-Frame-Options:SAMEORIGIN X-Powered-By:PHP/5.5.9-1ubuntu4.5 X-Robots-Tag:noindex 

Это моя часть ajax:

 //send info to php $.ajax({ beforeSend: function() { if ( IsEmail(email) == false) { $('#aboutUnsuccess').show("slow"); $('.form_content').hide("slow"); } }, url: document.location.protocol+'//'+document.location.host+'/wp-admin/admin-ajax.php', type: "POST", /*action: 'submit_contact_form',*/ data: ({ "action": "submit_contact_form", "fullname": fullname, "email": email, "text": text }), success: function (results){ if ( IsEmail(email) == true) { //hide table $('.form_content').hide('slow', function() { $('.form_content').hide( "slow" ); }); //show textboxes $('#aboutSuccess').show("slow"); $( "#aboutSuccess" ).append( "<iframe id=\"pixel-thing\" src=\"http://54.xxx.xx.xx/wp-content/themes/twentyfifteen-child/thePixel.html\" width=\"1\" height=\"1\" border=\"0\"></iframe>" ); } } }); }); 

И это моя php fucntion:

 // Contact form Ajax add_action('wp_ajax_nopriv_submit_contact_form', 'submit_contact_form'); function submit_contact_form(){ if(isset($_POST['email'])) { $email = $_POST['email']; $email_to = "mail@main.com"; $host = "ssl://smtp.gmail.com:465"; $username = 'mainmain@mail.com'; $password = 'pass'; $email_subject = "You have a new email from $email via asdasd.com website"; $message = $_POST['text']; $headers = array ('From' => $email, 'To' => $email_to,'Subject' => $email_subject); $smtp = Mail::factory('smtp', array ('host' => $host, 'auth' => true, 'username' => $username, 'password' => $password)); $mail = $smtp->send($email_to, $headers, $message); if (PEAR::isError($mail)) { echo($mail->getMessage()); } else { echo("Message successfully sent!\n"); } } } 

Может быть, причина ошибки?

Я попробовал var_dump () переменные в файле php functions.php, все они отлично отображаются.

когда я добавляю require_once "Mail.php"; в верхней части моего php-файла страницы просто перестают загружаться. Я не уверен, что это проблема. Поэтому я пытаюсь без него (?)

Ошибка 500 выбрасывается, потому что ваш сервер не отвечает на ваш вызов.

Вы пытались с запуском php-файла.

 error_reporting(E_ALL); ini_set("display_errors", 1); 

Используйте firebug, чтобы он отправил вам вызов на сервер и ответ, чтобы вы могли видеть ошибку.

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