Шаблон Wordpress вызывает ошибку 404

Я создал страницу в Wordpress и использовал эту форму в качестве шаблона. Но когда я отправляю форму, она показывает Error 404 page not found.

Я пробовал различные скрипты на php, но не получил плодотворных результатов. Надеюсь на лучшие ответы. Спасибо :)

Вот моя кодировка

<?php
/*
template name: visit
*/

$servername= "localhost";
$username="root";
$password="";
$database="wp_chandan"; 


if(isset($_POST['name']) && isset($_POST['email']))
{

    $name=$_POST['name'];
    $email=$_POST['email'];
    var_dump($email);


    @mysql_connect($servername,$username,$password);
    @mysql_select_db($database);

    $query=mysql_query("insert into visitor_d (NAME,Email) values ('$name','$email') ");    
} ?>

<html>
    <head>  
        <?php get_header(); ?>
        <style type='text/css'>
        /* form elements */
        form {
            margin:100px; 
            padding: 10px 2px;
            background: #F5F5F5;  
            width: 50%;
            height:auto;
            border:1px solid green;
        }

        input {
            padding:2px;
            border:1px solid #eee;
            font: normal 1em Verdana, sans-serif;
            color:#777;
            align:center;
        }

        input.button { 
            font: bold 12px Arial, Sans-serif; 
            height: 24px;
            margin: 0;
            align:center;
            padding: 2px 3px; 
            color: #333;
            background: #e7e6e6 url(MarketPlace-images/button.jpg) repeat-x;
            border: 1px solid #dadada;
        }

        </style>
    </head>

    <form action="" method="POST">
        <fieldset>
            <legend><b><u>Visitor Details:</u></b></legend>
            Name: <input type="text" name="name" placeholder="Fill Name" required><br><br>
            Email: <input type="text" name="email" required placeholder="Enter Email"><br><br>
            <input type="submit" name="submit"><br>
        </fieldset>
    </form>
    <?php get_footer();?>
</html>

person Daniel    schedule 01.04.2016    source источник
comment
<html>, <head>, <style> должны быть в вашем header.php. Я также не вижу комментарий к шаблону /* Template Name: My Name */, поэтому не знаю, как вы смогли выбрать этот шаблон в бэкэнде.   -  person    schedule 01.04.2016
comment
Похоже, что нет маршрута для метода POST к этому url.   -  person akasummer    schedule 01.04.2016
comment
комментарий /* Имя шаблона: Мое имя */ Я использовал его, но здесь не отображается.   -  person Daniel    schedule 01.04.2016
comment
Вы должны очистить свой код и опубликовать его как есть.   -  person    schedule 01.04.2016
comment
Сладкий, ваш код полностью открыт для инъекций MySQL.   -  person Terry    schedule 01.04.2016
comment
что находится в вашем header.php и footer.php?   -  person    schedule 01.04.2016
comment
он вызывает верхний и нижний колонтитулы страницы   -  person Daniel    schedule 01.04.2016


Ответы (2)


html5 не любит пустой атрибут действия, он вызывает проблемы в некоторых браузерах. вы не выбрали стандарт, поэтому я предполагаю, что браузер по умолчанию использует html5

<form action="#" method="POST"> 

Установка действия как # должна работать, но нужно следить за тем, чтобы действия добавлялись до загрузки шаблона страницы, это, очевидно, может захватить $_POST, и перенаправления будут обычным явлением, так что это также может быть причиной.

также

Name: <input type="text" name="name" placeholder="Fill Name" required>

WP не любит, когда вы называете поле «имя», оно с чем-то конфликтует (я уже забыл причину)

 Name: <input type="text" name="aname" placeholder="Fill Name" required>
person David    schedule 01.04.2016

Убедитесь, что у вас нет зарезервированных терминов WordPress в атрибутах name в полях формы.

WordPress использует многие из этих зарезервированных терминов для внутренней перезаписи, и в результате, если вы используете атрибуты name, такие как «имя», это нарушает правила перезаписи WordPress и вызывает эту страницу 404 Not Found после отправки формы.

Подробнее см. здесь: http://www.lost-in-code.com/platforms/wordpress/wordpress-404-not-found-when-submitting-form/

person tribulant    schedule 07.05.2016
comment
Я думал, что схожу с ума, когда размещал форму на виртуальной странице (используя правила перезаписи) с пользовательским шаблоном, который всегда возвращал заголовок 404. простое изменение «name» на «_name» решило проблему. Большое спасибо! - person anastymous; 19.05.2017