#php #wordpress
#php #wordpress
Вопрос:
У меня простая форма
<form method="post" action="submit.php">
<?php wp_nonce_field( 'my_nonce' ); ?>
<label>First Name</label>
<input type="text" placeholder="John" name="applicant-firstname" />
<input type="submit" name="submit-button" id="submit-button" value="Submit" />
</form>
И в submit.php
<?php
global $wpdb;
if (!empty($_POST) amp;amp; isset( $_POST['submit-button'] )) {
global $wpdb;
$table = 'applicant';
$data = array(
'name' => $_POST['applicant-firstname']
);
$format = array(
'%s'
);
$success=$wpdb->insert( $table, $data, $format );
if($success){
wp_redirect( '/' );
wp_die();
}
}
?>
Проблема в том, что когда я нажимаю на кнопку отправки, я получаю URL, подобный http://example/submit.php
который приводит к 404 error
.
В базе данных также ничего не сохранено. Это правильный способ отправки пользовательской формы в базу данных в WordPress?
Комментарии:
1. является submit.php доступна ли она там, где находится ваша форма? чтобы проверить это, попробуйте добавить /submit.php со страницы, на которой у вас есть форма. (например: если у вас есть форма в mysite.com/formpage , затем попробуйте mysite.com/formpage/submit.php ) которая будет 404. Итак, что вы можете сделать, это переместить submit.php в root и измените это <form method=»post» action=»submit.php «> в <метод формы=»post» action=»/submit.php «>
2. Это единственный способ? Находиться в корневом каталоге?
3. И, кстати, этот возврат
Fatal error: Uncaught Error: Call to a member function insert() on null
4. нет, это не единственный способ, однако, ваш submit.php файл должен быть доступен из того места, где находится ваша форма
5. В этом случае, что может быть причиной недоступности?