Поддержка Проблемы и решения Проклятые плагины. Вопрос по форме.

  • Очередной вопрос по поводу моей беспомощности в синтаксисе.

    Дано(1): форма в админке плагина

    <form action="/wp-content/plugins/mad_sape/welcome.php" method="post">
    <input type="text" name="new_code" />
    <input type="submit" />
    </form>

    Дано(2): страница с полученным текстом из формы, который замечательно выводится

    <html>
    <body>
    <center>
    <?php
    echo "Код был заменён на: <b>" . $_POST["new_code"] . ".</b>";
    ?>
    </center>
    <br />
    </body>
    </html>

    Нужно: выполнить запрос к БД со страницы

    wp-content/plugins/mad_sape/welcome.php

    …используя $_POST[«new_code»].

    Проблема:

    wp-content/plugins/mad_sape/welcome.php

    …не имеет вызова API WordPress’а и любые попытки обращения к базе с этой страницы оказываются полным fail’om.
    Вопрос: как организовать запрос к БД с параметром $_POST[«new_code»]?

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • http://codex.wordpress.org/Integrating_WordPress_with_Your_Website
    ознакомься с примерами внимательно

    Дописал

    <?php require(‘wp-blog-header.php’); ?>
    <?php
    $table_name = $wpdb->prefix . «madsape»;
    $sql = «DROP TABLE $table_name«;
    $sql = «CREATE TABLE $table_name (code VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (code)) ENGINE = MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;»;
    require_once(ABSPATH . ‘wp-admin/includes/upgrade.php’);
    dbDelta($sql);
    $rows_affected = $wpdb->insert($table_name, array(‘code’ => $_POST[«new_code»]));
    add_option(«sape_code», $sape_code);
    }

    echo «Код Sape был заменён на: <b>» . $_POST[«new_code»] . «.</b>»;
    ?>

    …ошибок не вызывает, но и толку нет 🙁

    странно что ошибок нет
    во первых если ты запускаешь напрямую файл wp-content/plugins/mad_sape/welcome.php то должен знать что wp-blog-header.php находится в корне WP поэтому
    <?php require(‘../../../wp-blog-header.php’); ?> +- один уровень могу ошибиться
    во вторых, у тебя в коде есть еще грубая ошибка!
    и в третьих нафига ты связался с таблицами? сериализуй и храни данные в файле там же у них так и сделано, или даже уже, раз ты подгружаешь wp-blog-header.php, используй таблицу wp_options и функции add_option() get_option() update_option

    Stur, огромнейшее спасибо, уж извините за такого тугодума как я, но теперь всё работает 😀

    <?php
    global $wpdb;
    $table_name = $wpdb->prefix . «madsape»;
    $wpdb->query(«DROP TABLE IF EXISTS $table_name»);
    $sql = «CREATE TABLE $table_name (code VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (code)) ENGINE = MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;»;
    require_once(ABSPATH . ‘wp-admin/includes/upgrade.php’);
    dbDelta($sql);
    $rows_affected = $wpdb->insert($table_name, array(‘code’ => $_POST[«new_code»]));

    echo «Код Sape был заменён на: <b>» . $_POST[«new_code»] . «.</b>»;
    ?>

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «Проклятые плагины. Вопрос по форме.» закрыта для новых ответов.