Поддержка Проблемы и решения Как получить URL с БД и открыть его в новой вкладке?

  • Мне нужно, чтобы юзер вводил промо-код в форме, нажимал Submit, делался запрос к БД, находился этот уникальный промо-код и соответствующий ему URL и открывалось новое окно с этим URL.
    Вот я создал виджет HTML

    <form method="get" id="searchform" action="">
    <input type="text" name="destination" id="destination" value="" />
    <input type="submit" id="searchsubmit" value="GO" />
    </form>

    Вот в function.php сделал поиск

    $q = $_GET["destination"];
    $result = $wpdb->get_results( "SELECT url FROM mytable WHERE target = ".$q);
    var_dump($result);

    Но как мне теперь из function.php открыть полученный URL?
    Может есть вообще проще метод решения этой задачи?

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • $q можно занести внутрь кавычек.
    и т.к. URL вы получаете уникальным, то его можно сразу запрашивать как переменную. get_var вместо get_results

    
    $result = $wpdb->get_var("SELECT url FROM mytable WHERE target = $q");
    echo "<script>window.location.href = '$result';</script>";

    и можно вместо functions.php использовать отдельный скрипт в файле обработчика (например: my_action_script.php), который вызывать из формы используя <form method="get" id="searchform" action="/my_action_script.php"

    Модератор Yui

    (@fierevere)

    ゆい

    господа, не следует забывать о том, что параметрам полученным из GET доверять нельзя и передавать их в SQL запрос не нужно без должной очистки
    https://codex.wordpress.org/Validating_Sanitizing_and_Escaping_User_Data

    https://developer.wordpress.org/reference/classes/wpdb/prepare/

    @wpgear большое спасибо.
    Говорят, можно ещё Аяксом, вроде как так правильнее, но это для меня темный лес.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Как получить URL с БД и открыть его в новой вкладке?» закрыта для новых ответов.