У меня есть один файл PHP, который принимает данные, а затем отображает их с помощью метода $ _POST. Я знаю, как проверить входные данные формы с помощью PHP:
if($data = "") {
echo "This Field Is Required";
}
Но я не знаю, как избежать формы отправки данных. Добавить новую строку в это заявление if? Я видел что-то связанное с заголовком: местоположения в этом посте - Остановить отправку с Пустые входные значения с использованием PHP, но я не думаю, что это будет работать для меня, потому что моя форма и процессор находятся в одном файле. Я уверен, что это просто, но очень сложно найти какой-либо ответ при просмотре веб-страниц. Спасибо за любую помощь :)
2 ответа
Это интерфейс (проверка на стороне клиента), вам также нужно проверить форму на своем PHP (на стороне сервера). Но используя html5 и js, вы можете запретить отправку формы, если она не проверена.
Для php вам нужно проверить на стороне сервера. Если он недействителен, вы не сохраняете его в базу данных и не должны перенаправлять пользователя. Вернуть некоторые сообщения об ошибках, запросить дополнительные данные / обязательные поля.
Пример:
$error = [];
if ($offer['year'] < 2014) {
$error['year'] = 'must be later than 2014';
}
...
if (count($error)) {
echo "your error msg here"
} else {
$db->insert('formtable', $form);
}
$(document).ready(function() {
// loader (after submit)
$('button[type="submit"]').click(function(e) {
let formValidity = $('#myform')[0].checkValidity();
if (formValidity) {
console.log('Submitted yep!');
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myform">
<input type="text" value="" required>
<button type="submit" value="submit">SUBMIT</button>
</form>
<div id="other">
Trigger the handler
</div>
Вот простой пример для проверки формы с использованием php.
Php:
$con = mysqli_connect("localhost","root","","db");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if (isset($_POST['submit'])) {
if (isset($_POST['submit'])) {
$fn = mysqli_real_escape_string($con,$_POST['fn']);
$ln = mysqli_real_escape_string($con,$_POST['ln']);
$tnc = mysqli_real_escape_string($con,$_POST['tnc']);
// validation
if (!empty($fn && $ln)) {
if ($tnc == 1) {
echo "Succeed.!";
}else{
echo "You must Accept Out T&C.!";
}
}else{
echo "Please fill the required field.!";
}
}
}
Html:
<form action="" method="post">
<input type="text" name="fn" />
<input type="text" name="ln" />
<input type="checkbox" name="tnc" value="1" >Accept T&C.</input>
<input type="submit" name="submit" />
</form>
Это может быть именно то, что вы хотите.
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.