У меня проблема со значением по умолчанию для $ _POST []; Итак, у меня есть html-форма с текстовыми полями, и информация отправляется на php-скрипт. PHP-скрипт имеет SQL-запрос, который отправляется в мою базу данных. Но если мой текстовый файл в форме html пуст, запрос не имеет значения. Поэтому я хочу установить свой пост в значение по умолчанию 0, чтобы оно возвращало значение по крайней мере.
Так вот пример HTML формы (Это не мой actuall сценарий. Просто пример.
<form action="testscript.php" method="POST">
<input type="id" name="ID"/>
<input type="text" name="test"/>
<input type="submit" value="Send"/>
</form>
Ok так что этот сценарий будет посылать как идентификатор и тест Textboxes всегда будет иметь числовое значение. И он посылает информацию testscript.php
Вот testscript.php пример
$conn = mysqli_connect('host', 'dbuser', 'dbpass', 'dbname');
$id = $_POST['id'];
$test = $_POST['test'];
$sql = "INSERT INTO test_table (id, test) VALUES ($id, $test)";
if (mysqli_query($conn, $query)) {
echo "Success";
} else {
echo "Failed" . mysqli_error($conn);
}
Хорошо, так что теперь, если я представить мой HTML формы PHP скрипт без inserti нг любой текст в текстовые поля запроса будет выглядеть следующим образом
INSERT INTO test_table (id, test) VALUES (,)
Но запрос должен быть, как этот
INSERT INTO test_table (id, test) VALUES (0, 0)
Зв Я знаю, что могу использовать атрибут value в теге html, но тогда значение будет видно в текстовом поле, и я этого не хочу.
И я знаю, что я могу сделать если Постулаты, чтобы значение по умолчанию, как этот
if (isset($_POST['test'])) {
$test = $_POST['test'];
} else {
$test = 0;
}
Но теперь проблема в том, что я должен был бы сделать, если Постулаты для каждого текстового поля и мой HTML формы имеют более чем 100 текстовых полей. Поэтому я не хочу, чтобы stat для каждого текстового поля, потому что тогда мой скрипт будет большим, и это займет несколько часов.
Итак, есть ли способ установить значение по умолчанию для всех текстовых полей без использования, если statment в php или атрибуте value в форме html?
вы уязвимы для [SQL-инъекций] (http://bobby-tables.com), и да, если вы хотите сделать безопасную базу данных, вы прочитаете эту ссылку, и вы также найдете решение проблемы «Я не хочу проверять 100 полей самостоятельно». –
Вы можете сократить это выражение тройным, и именно так это делается большинством из нас, потому что вам нужно проверить 'isset ($ _ POST ['test']) в любом случае, чтобы избежать неопределенных указательных уведомлений. '$ test = isset ($ _ POST ['test'])? $ _POST ['test']: 0; ' –
Я уверен, что даже пустые входы вернут true на' isset ($ _ POST ['test']) ', вы можете проверить на'! Empty ($ _ POST ['test']) ' – VIDesignz