revvoodoo
  • 0
Гуру

Проверка формы сообщения на веб-сайте

  • 0

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

Я пробовал искать в Google, я действительно не думаю, что JS — это то, что я хочу использовать для этого. И любая другая проверка php, которую я тоже не могу заставить работать. Я уверен, что я как-то неправильно их включаю.

Вот что у меня есть: http://pastebin.com/rw4c6jZQ (полные строки шаблона 9-19 должны быть проверочными)

МОЙ сценарий обработки в конце шаблона:

    <?php 
if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) &&  $_POST['action'] == "new_post") { 

    // Do some minor form validation to make sure there is content 
    if (isset ($_POST['title'])) { 
        $title =  $_POST['title']; 
    } else { 
        echo 'Please enter the wine name'; 
    } 
    if (isset ($_POST['description'])) { 
        $description = $_POST['description']; 
    } else { 
        echo 'Please enter some notes'; 
    } 

    $tags = $_POST['post_tags']; 
    $winerating = $_POST['winerating']; 

    // ADD THE FORM INPUT TO $new_post ARRAY 
    $new_post = array( 
    'post_title'    =>   $title, 
    'post_content'  =>   $description, 
    'post_category' =>   array($_POST['cat']),  // Usable for custom taxonomies too 
    'tags_input'    =>   array($tags), 
    'post_status'   =>   'publish',           // Choose: publish, preview, future, draft, etc. 
    'post_type' =>   'post',  //'post',page' or use a custom post type if you want to 
    'winerating'    =>   $winerating
    ); 

    //SAVE THE POST 
    $pid = wp_insert_post($new_post); 

             //KEEPS OUR COMMA SEPARATED TAGS AS INDIVIDUAL 
    wp_set_post_tags($pid, $_POST['post_tags']); 

    //REDIRECT TO THE NEW POST ON SAVE 
    $link = get_permalink( $pid ); 
    wp_redirect( $link ); 

    //ADD OUR CUSTOM FIELDS 
    add_post_meta($pid, 'rating', $winerating, true);  

    //INSERT OUR MEDIA ATTACHMENTS 
    if ($_FILES) { 
        foreach ($_FILES as $file => $array) { 
        $newupload = insert_attachment($file,$pid); 
        // $newupload returns the attachment id of the file that 
        // was just uploaded. Do whatever you want with that now. 
        } 

    } // END THE IF STATEMENT FOR FILES 

} // END THE IF STATEMENT THAT STARTED THE WHOLE FORM 

//POST THE POST YO 
do_action('wp_insert_post', 'wp_insert_post'); 

Форму и все остальное можно увидеть в pastebin, чтобы увидеть все это в контексте. Спасибо большое!

Share
  1. Лучший способ проверки формы — комбинация JavaScript и PHP.

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

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

    Для проверки JavaScript я рекомендую плагин jQuery Validation. Это очень легко реализовать и настроить.

    Что касается вашей проверки PHP, вы можете попробовать добавить это для проверки пустых значений:$_POST['title'] != ''

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

      • 0
    • Кроме того, я использовал эту проверку php, я просто должен использовать ее неправильно в своем коде, так как она ничего не делает….

      • 0
    • Зачем избегать инструмента, который делает именно то, что вам нужно, с минимальными усилиями? Плагин jQuery — это не то же самое, что плагин WordPress, поэтому накладных расходов не так много.

      • 0
    • Я буду работать с ним и посмотреть, что я получу, спасибо за вклад….

      • 0
    • Я все это просмотрю, честно говоря, я понятия не имею, как это использовать. Но я посмотрю, что может найти кодекс и гугл….. Но я всегда открыт для предложений, если у кого-нибудь они есть? Спасибо за наводки!

      • 0
    • Многое из этого похоже на дезинфекцию ввода? Я действительно не после того, что в данный момент. Я просто в настоящее время ищу способ проверить, были ли заполнены обязательные поля. Если они есть, отправьте форму. Если нет, отобразите сообщения об ошибках. filter_var выглядит многообещающе, но я не могу понять, что мне нужно. Независимо от того, что я делаю, форма сразу же отображается с сообщением об ошибке, и я не могу понять, как его использовать, чтобы остановить публикацию формы, если обязательные поля пусты.

      • 0
  2. я думаю, правильный путь через php — это функции esc_attr* WordPress и все функции в этом файле: wp-includes/formatt ing.php

    Также используйте возможности PHP: filter_var

    • 0

Оставить ответ

You must login to add an answer.