У меня есть один файл PHP, который принимает данные, а затем отображает их с помощью метода $ _POST. Я знаю, как проверить входные данные формы с помощью PHP:

if($data = "") {
echo "This Field Is Required";
}

Но я не знаю, как избежать формы отправки данных. Добавить новую строку в это заявление if? Я видел что-то связанное с заголовком: местоположения в этом посте - Остановить отправку с Пустые входные значения с использованием PHP, но я не думаю, что это будет работать для меня, потому что моя форма и процессор находятся в одном файле. Я уверен, что это просто, но очень сложно найти какой-либо ответ при просмотре веб-страниц. Спасибо за любую помощь :)

2
Luke Cooper 24 Апр 2017 в 06:40

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>
1
Dalin Huang 24 Апр 2017 в 04:33

Вот простой пример для проверки формы с использованием 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>

Это может быть именно то, что вы хотите.

0
GNB 24 Апр 2017 в 04:23
43579426