Кажется, что в моем коде отсутствует что-то, что ограничивает почтовый метод и данные, не отправленные в мою базу данных. Тест соединения с базой данных успешно, но когда я отправляю форму с введенными данными ... перенаправляется на new_employee.php, что означает, что $ _POST ['submit'] является ложным, но задано имя формы = 'submit'.php post method сбой без ошибок
Вот код PHP
<?php
if (isset($_POST['submit'])) {
$first_name = $_POST["first_name"];
$last_name = $_POST["last_name"];
$dept_id = $_POST["dept_id"];
$position = $_POST["position"];
$hire_date = $_POST["hire_date"];
$salary = $_POST["salary"];
$bonus = $_POST["bonus"];
$end_date = $_POST["end_date"];
$sql = "insert into staff (first_name, last_name, dept_id, position, hire_date, salary, bonus, end_date)";
$sql .= " values ('{$first_name}', '{$last_name}', {$dept_id}, '{$position}', {$hire_date}, {$salary}, {$bonus}, {$end_date})";
$result = mysqli_query($connection, $sql);
if ($result) {
redirect_to("employee.php");
} else {
redirect_to("new_employee.php");
}
}?>
А вот HTML форма
<form action="new_employee.php" method="POST" role="form" class="form-horizontal">
<legend>Add new employee</legend>
<div class="col-md-10">
First Name: <input type="text" name="first_name" class="form-control" placeholder="First name">
Last Name: <input type="text" name="last_name" class="form-control" placeholder="Last name">
Department: <input type="text" name="dept_id" class="form-control" placeholder="Department">
Position: <input type="text" name="position" class="form-control" placeholder="Position">
Hire Date: <input type="text" name="hire_date" class="form-control" placeholder="Hire date">
Salary: <input type="text" name="salary" class="form-control" placeholder="Salary">
Bonus: <input type="text" name="bonus" class="form-control" placeholder="Bonus">
End Date: <input type="text" name="end_date" class="form-control" placeholder="Password">
<br/>
<div class="row text-right">
<input type="submit" name="submit" value="Save" class="btn btn-default" />
 
<button type="button" class="btn btn-default" aria-label="Left Align"><a href="employee.php">Cancel</a></button>
</div>
</div>
</form>
Любая помощь я могу получить здесь будут оценены.
Открытие
В соответствии с вашим кодом вы перенаправлены на 'new_employee.php', когда ваш запрос завершился неудачно, а не когда' $ _POST ['submit'] 'не установлен. Попробуйте повторить свой '$ sql' и попробовать его непосредственно в MySQL. Я предполагаю, что '$ hire_date',' $ pay', '$ bonus' или' $ end_date' являются строками и должны быть указаны. Если у любого из них есть такие символы, как '$', '-','/'и т. Кроме того, вы можете взглянуть на [Как предотвратить SQL-инъекцию в php] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) – Sean
@GoatMaster открывающий тег формы на самом деле не возится, я скорректировал формат. $ hire_date, $ зарплата, $ бонус и $ end_date - все значения NULL и не являются строковыми. Для моего теста только first_name, last_name, dept_id и положение обеспечивают с другими полями остается пустым После того, как я получу свой код права я буду работать на предотвращение SQL Injection – Mena