Форма WordPress не отправляется в базу данных при автозаполнении - PullRequest
0 голосов
/ 24 сентября 2018

Ну, как гласит заголовок, он не отправляется в базу данных, если он автозаполнен, но делает, если он не был.Я не хочу отключать автозаполнение, и я не уверен, почему он это делает.У меня нет ошибок в моих лог-файлах для PHP и MySQL в моей папке MAMP.Наконец, он перенаправляет на страницу подтверждения, даже если он не отправляется в базу данных при автозаполнении.

Мой код:

function request_private() {

if(isset($_POST['privateSubmit'])) {

    global $wpdb;

    $name = sanitize_text_field($_POST['privateName']);
    $phone = sanitize_text_field($_POST['privatePhone']);
    $email = sanitize_text_field($_POST['privateEmail']);
    $time = sanitize_text_field($_POST['privateTime']);
    $people = sanitize_text_field($_POST['privatePeople']);
    $type = sanitize_text_field($_POST['privateType']);
    $requests = sanitize_text_field($_POST['privateRequests']);
    $filter = sanitize_text_field($_POST['privateFilter']);
    $antiSpam = sanitize_text_field($_POST['privateAntiSpam']);

    if ($antiSpam === '8' && $name !== '' && $name !== ' ' && $phone !== '' && $phone !== ' ' && $time !== '' && $time !== ' ' && $people !== '' && $people !== ' ' && $type !== '' && $type !== ' ' && $filter === '') {

        $table = $wpdb->prefix . 'requests';

        $data = array(
            'name' => $name,
            'phone' => $phone,
            'email' => $email,
            'time' => $time,
            'people' => $people,
            'type' => $type,
            'requests' => $requests
        );

        $format = array(
            '%s',
            '%s',
            '%s',
            '%s',
            '%s',
            '%s',
            '%s'
        );

        $wpdb->insert($table, $data, $format);

        $url = get_page_by_title('Confirmation');

        wp_redirect( get_permalink($url) );

        $admin_email = get_option('admin_email');

        $admin_message = 'You have received a new private event from ' . $name . ' on/at ' . $time . '. More information can be found on WordPress under Forms > Private Events.';
        $customer_message = '' . $name . ', this is an email to confirm that we have received your request for a private event on ' . $time . '. We look forward to seeing you!';

        mail($admin_email, "Private Event Request Confirmation", $admin_message);
        mail($email, "Private Event Request Notification", $customer_message);

        exit();

    } else {
        return false;
    }

}

}

  add_action('init', 'request_private');

FAILED HTTP POST-запрос:

Запрос URL: http://localhost:5757/private-events/?ckcachecontrol=1537755652

Метод запроса: POST

Код состояния: 302 Найдено

Удаленный адрес: [:: 1]: 5757

Политика реферера: no-referrer-when-downgrade

Accept-Ranges: байты

Cache-Control: max-age = 0, без кеша, без хранилища, обязательно повторная проверка

Соединение: Keep-Alive

Content-Length: 0

Content-Type: text / html;кодировка = UTF-8

Дата: понедельник, 24 сентября 2018 г. 02:20:59 GMT

Keep-Alive: время ожидания = 5, макс = 100

Расположение: http://localhost:5757/confirmation/

Сервер: Apache / 2.2.34 (Unix) mod_wsgi / 3.5 Python / 2.7.13 PHP / 7.2.1 mod_ssl / 2.2.34 OpenSSL / 1.0.2j DAV / 2 mod_fastcgi / 2.4.6 mod_perl/2.0.9 Perl / v5.24.0

X-Powered-By: PHP / 7.2.1

Accept: text / html, application / xhtml + xml, application / xml; q =0,9, image / webp, image / apng, / ; q = 0,8

Accept-Encoding: gzip, deflate, br

Accept-Language: en-US,ru; q = 0,9, la; q = 0,8, fr; q = 0,7

Cache-Control: max-age = 0

Соединение: keep-alive

Содержимое-Длина: 222

Тип содержимого: application / x-www-form-urlencoded

Cookie: wordpress_test_cookie = WP + Cookie + check;wordpress_logged_in_cd9b744c619529c4988e0e94344eaf12 = администратор% 7C1537891968% 7CRSrR6dTZc4Vrj76lhdSRST31GpY77NksQJGVz2LcItd% 7Ce1ce57f16867a7ab2c527d02f11bb3f4390341db21a2623048226998f1550ff8;WP-настройки-1 = MFOLD% 3Не% 26libraryContent% 3Dbrowse% 26editor% 3Dtinymce% 26post_dfw% 3Doff% 26hidetb% 3D0% 26editor_expand% 3Don;wp-settings-time-1 = 1537719169

Хост: localhost: 5757

Источник: http://localhost:5757

Источник: http://localhost:5757/private-events/?ckcachecontrol=1537755652

Upgrade-Небезопасные запросы: 1

Пользователь-агент: Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_13_6)

AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 69.0.3497.100 Safari / 537.36

ckcachecontrol: 1537755652

privateName: пример имени

privateEmail: email@email.com

privatePhone: 1111111111

privateTime: asd

privatePeople: asd

privateType: asd

privateRequests: asd

privateFilter:

privateAntiSpam: 8

privateSubmit: Отправить запрос

УСПЕШНЫЙ ЗАПРОС HTTP POST:

URL запроса: http://localhost:5757/private-events/

Метод запроса: POST

Код состояния: 302 Найдено

Удаленный адрес: [:: 1]: 5757

Политика реферера: no-referer-when-downgrade

Диапазон принятия: байты

Cache-Control: max-age = 0, без кэширования, без сохранения, необходимо повторно подтвердить

Соединение: Keep-Alive

Длина содержимого: 0

Тип содержимого: text / html;charset = UTF-8

Дата: понедельник, 24 сентября 2018 г. 02:43:14 GMT

Keep-Alive: время ожидания = 5, макс = 100

Расположение: http://localhost:5757/confirmation/

Сервер: Apache / 2.2.34 (Unix) mod_wsgi / 3.5 Python / 2.7.13 PHP / 7.2.1 mod_ssl / 2.2.34 OpenSSL / 1.0.2j DAV / 2 mod_fastcgi / 2.4.6 mod_perl/2.0.9 Perl / v5.24.0

X-Powered-By: PHP / 7.2.1

Accept: text / html, application / xhtml + xml, application / xml; q =0,9, image / webp, image / apng, / ; q = 0,8

Accept-Encoding: gzip, deflate, br

Accept-Language: en-US,ru; q = 0,9, la; q = 0,8, fr; q = 0,7

Cache-Control: max-age = 0

Соединение: keep-alive

Содержимое-Длина: 208

Тип содержимого: application / x-www-form-urlencoded

Cookie: wordpress_test_cookie = WP + Cookie + проверка;wordpress_logged_in_cd9b744c619529c4988e0e94344eaf12 = администратор% 7C1537891968% 7CRSrR6dTZc4Vrj76lhdSRST31GpY77NksQJGVz2LcItd% 7Ce1ce57f16867a7ab2c527d02f11bb3f4390341db21a2623048226998f1550ff8;WP-настройки-1 = MFOLD% 3Не% 26libraryContent% 3Dbrowse% 26editor% 3Dtinymce% 26post_dfw% 3Doff% 26hidetb% 3D0% 26editor_expand% 3Don;wp-settings-time-1 = 1537719169

Хост: localhost: 5757

Источник: http://localhost:5757

Источник: http://localhost:5757/private-events/

Upgrade-Небезопасные запросы: 1

Пользовательский агент: Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 69.0.3497.100 Safari / 537.36

privateName: пример имени

privateEmail: email@email.com

privatePhone: 1111111111

privateTime: asd

privatePeople: asd

privateType: asd

privateRequests:

privateFilter:

privateAntiSpam: 8

privateSubmit: отправить запрос

1 Ответ

0 голосов
/ 24 сентября 2018

Не имеет значения, заполняется ли форма с использованием автозаполнения или вручную.Если сгенерированные HTTP-запросы идентичны и отправлены на сервер в одинаковом состоянии, то запросы должны обрабатываться одинаково.Я вижу только три возможности.

  1. HTTP-запросы не идентичны.
  2. HTTP-сервер не был в идентичном состоянии.
  3. Процедура тестирования как-то неверна.

Я отправил успешные и неудачные HTTP-запросы, и были некоторые различия:

  1. У неудавшегося HTTP-запроса есть дополнительный параметр запроса ckcachecontrol и параметр POST ckcachecontrol.
  2. Параметр POST privateRequests имеет разные значения.
  3. Поля HTTP Date, Content-Length и Referer различаются.

Первый эксперимент, который необходимо предпринять, - удалить ckcachecontrol.параметр запроса и параметр POST ckcachecontrol из ошибочного запроса.(Возможно ли, что параметр запроса ckcachecontrol позволяет кешу сервера возвращать перенаправление HTTP на «http://localhost:5757/confirmation/" в обход обработки PHP?)

Если это не решит проблему, у меня есть дополнительные эксперименты, чтобыбежать. Должно быть объяснение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...