WORDPRESS FORM ACTION HELP

286
26 февраля 2017, 10:41

Здравствуйте. Создал форму, заполнил одно поле, хочу чтобы эта страница обновилась и вывела то, что я заполнил. Вот маленький код:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<form action="" method="POST" class="info-profile">
<input type="text" name="name" value="ROBERT SMITH">
<input type="submit">
</form>
</body>
<?php
if (!empty($_POST["name"])) 
 { echo " Получены новые вводные: имя - ".$_POST["name"];} 
 else { echo "Переменные не дошли. Проверьте все еще раз."; }
?>
</html>

Проблема в том, что данный код на локалке работает идеально, а вот на странице вордпреса я нажимаю отправить и он выдаёт сообщение - этой страницы не найдено. Как быть?

Answer 1

Предположение, что какой-либо код php будет выполняться на html-странице - неверное.

Надо создать файл .php. В нем:

<?php
?>
    <form action="" method="POST" class="info-profile">
        <input type="text" name="name" value="ROBERT SMITH">
        <input type="submit">
    </form>
<?php
    if (!empty($_POST["name"]))
        { echo " Получены новые вводные: имя - ".$_POST["name"];}
        else { echo "Переменные не дошли. Проверьте все еще раз."; }
?>

Посмотрите, как это работает на моем тестовом сайте: http://test.kagg.eu/so/632157.php

UPDATE

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

?>
<form action="" method="POST" class="info-profile">
  <input type="text" name="name" value="ROBERT SMITH">
  <input type="submit">
</form>
<?php
if (!empty($_POST["name"])) 
 { echo " Получены новые вводные: имя - ".$_POST["name"];} 
 else { echo "Переменные не дошли. Проверьте все еще раз."; }
?>

При нажатии на кнопку выводится ошибка 404.

Так происходит потому, что есть перечень зарезервированных слов в WordPress, которые не должны присутствовать в GET и POST запросах. Слово name находится в этом списке.

Вот как примерно должен выглядеть файл шаблона для страницы:

<?php
/*
Template Name: cv
*/
?>
    <form action="" method="POST" class="info-profile">
        <input type="text" name="cv_name" value="ROBERT SMITH">
        <input type="submit">
    </form>
<?php
    if ( isset($_POST['cv_name']) ) {
        echo " Получены новые вводные: имя - " . $_POST["cv_name"];
    }
    else {
        echo "Переменные не дошли. Проверьте все еще раз.";
    }
?>

Посмотреть работающий пример можно здесь.

Answer 2

Попробуйте

action="<?php bloginfo('template_directory');?>"
READ ALSO
PHP netBeans - при работе с SabreDev глючит IDE

PHP netBeans - при работе с SabreDev глючит IDE

Привет, понадобилось в проект добавить поддержку WebDav - для этого использовал проект SabreDev, проект большой

213
Обойти лицензию или создать кейген [требует правки]

Обойти лицензию или создать кейген [требует правки]

Всем приветДекодировал скрипт закрытый ioncude, в php не силен, но очень нужно обойти лицензию, или создать кейген, если есть тут мудрые люди, которые...

239
mysql упорядочить по возрастанию

mysql упорядочить по возрастанию

есть база данных с таблицей user, в ней в столбце rsite отображается информация с какого сайта пришел пользователейпытаюсь сделать вывод количества...

283
Как определить, какой шаблон подключён в данный момент?

Как определить, какой шаблон подключён в данный момент?

ЗдравствуйтеДопустим в админке wordpress для главной страницы магазина назначен определённый шаблон, т

185