SD_TuXo 4 Опубликовано 8 апреля, 2019 Помогите сделать проверку длины заполняющего поля, нужно что бы если длина текста меньше 30 символов выбивает ошибку а если больше то заносит в базу я вот накидал код но что то не хочет работатьХТМЛ Форма <div> <form method="POST" action=""> <center><input name="name" type="text" placeholder="Текст"/></center> <input type="submit" value="Отправить"/> </form> </div> PHP Код <? if (isset($_POST['name'])){ // Переменные с формы $name = $_POST['name']; // Параметры для подключения $db_host = "localhost"; $db_user = "Логин БД"; // Логин БД $db_password = "Пароль БД"; // Пароль БД $db_base = 'Имя БД'; // Имя БД $db_table = "Имя Таблицы БД"; // Имя Таблицы БД // Подключение к базе данных $mysqli = new mysqli($db_host,$db_user,$db_password,$db_base); // Если есть ошибка соединения, выводим её и убиваем подключение if ($mysqli->connect_error) { die('Ошибка : ('. $mysqli->connect_errno .') '. $mysqli->connect_error); } $result = $mysqli->query("INSERT INTO ".$db_table." (name) VALUES ('$name')"); if (strlen($result)<30) { echo "Короткий текст."; } else if (strlen($result)>30) { echo "Текст записан в базу."; } } ?> Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Formatter 14 Опубликовано 8 апреля, 2019 ну как бы нужно проверять длину параметра "name", а не результата выполнения запроса. 1 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SD_TuXo 4 Опубликовано 8 апреля, 2019 6 минут назад, Formatter сказал: ну как бы нужно проверять длину параметра "name", а не результата выполнения запроса. Блин точно чёт я тупанул, поправил но дело в том что оно все равно заносит в базу если даже короткое сообщение Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Formatter 14 Опубликовано 8 апреля, 2019 (изменено) Если проверка у тебя осталась в том-же виде как и была, то нужно добавить остановку выполнения кода, ака "return" или "exit" upd. ну и быть она должна до добавления в базу. upd.2 одного сравнения длинны < 30 достаточно, либо же необходимо изменить вторую проверку на >= 30, ибо при длине текста в 30 символов - сообщения не будет Изменено 8 апреля, 2019 пользователем Formatter 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
TURGOR 33 Опубликовано 8 апреля, 2019 <? if (isset($_POST['name'])){ // Переменные с формы $name = $_POST['name']; // Параметры для подключения $db_host = "localhost"; $db_user = "Логин БД"; // Логин БД $db_password = "Пароль БД"; // Пароль БД $db_base = 'Имя БД'; // Имя БД $db_table = "Имя Таблицы БД"; // Имя Таблицы БД // Подключение к базе данных $mysqli = new mysqli($db_host,$db_user,$db_password,$db_base); // Если есть ошибка соединения, выводим её и убиваем подключение if ($mysqli->connect_error) { die('Ошибка : ('. $mysqli->connect_errno .') '. $mysqli->connect_error); } if (strlen($result)<30) { echo "Короткий текст."; return false; } else { $result = $mysqli->query("INSERT INTO ".$db_table." (name) VALUES ('$name')"); echo "Текст записан в базу."; return true; } } ?> Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Formatter 14 Опубликовано 8 апреля, 2019 1 minute ago, TURGOR said: <? if (isset($_POST['name'])){ // Переменные с формы $name = $_POST['name']; // Параметры для подключения $db_host = "localhost"; $db_user = "Логин БД"; // Логин БД $db_password = "Пароль БД"; // Пароль БД $db_base = 'Имя БД'; // Имя БД $db_table = "Имя Таблицы БД"; // Имя Таблицы БД // Подключение к базе данных $mysqli = new mysqli($db_host,$db_user,$db_password,$db_base); // Если есть ошибка соединения, выводим её и убиваем подключение if ($mysqli->connect_error) { die('Ошибка : ('. $mysqli->connect_errno .') '. $mysqli->connect_error); } if (strlen($result)<30) { echo "Короткий текст."; return false; } else { $result = $mysqli->query("INSERT INTO ".$db_table." (name) VALUES ('$name')"); echo "Текст записан в базу."; return true; } } ?> твой код не заработает скажет что хз что за переменная $result Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
TURGOR 33 Опубликовано 8 апреля, 2019 (изменено) то уже устал за день) <? if (isset($_POST['name'])){ // Переменные с формы $name = $_POST['name']; // Параметры для подключения $db_host = "localhost"; $db_user = "Логин БД"; // Логин БД $db_password = "Пароль БД"; // Пароль БД $db_base = 'Имя БД'; // Имя БД $db_table = "Имя Таблицы БД"; // Имя Таблицы БД // Подключение к базе данных $mysqli = new mysqli($db_host,$db_user,$db_password,$db_base); // Если есть ошибка соединения, выводим её и убиваем подключение if ($mysqli->connect_error) { die('Ошибка : ('. $mysqli->connect_errno .') '. $mysqli->connect_error); } if (strlen($name)<30) { echo "Короткий текст."; } else { $result = $mysqli->query("INSERT INTO ".$db_table." (name) VALUES ('$name')"); echo "Текст записан в базу."; } } ?> хотя и $result нужно бы обработать или убрать Изменено 8 апреля, 2019 пользователем TURGOR 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SD_TuXo 4 Опубликовано 8 апреля, 2019 (изменено) Всем большое спасибо, я вот тоже накидал тут код не знаю верно или нет но работает <? if (isset($_POST['name'])){ // Переменные с формы $name = $_POST['name']; // Параметры для подключения $db_host = "localhost"; $db_user = "Логин БД"; // Логин БД $db_password = "Пароль БД"; // Пароль БД $db_base = 'Имя БД'; // Имя БД $db_table = "Имя Таблицы БД"; // Имя Таблицы БД // Подключение к базе данных $mysqli = new mysqli($db_host,$db_user,$db_password,$db_base); // Если есть ошибка соединения, выводим её и убиваем подключение if ($mysqli->connect_error) { die('Ошибка : ('. $mysqli->connect_errno .') '. $mysqli->connect_error); } if (strlen($name)<30) { exit("Короткий текст."); } else if (strlen($name) >= 30) { echo "Текст записан в базу."; } $result = $mysqli->query("INSERT INTO ".$db_table." (name) VALUES ('$name')"); } ?> Изменено 8 апреля, 2019 пользователем SD_TuXo Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
terege 110 Опубликовано 8 апреля, 2019 (изменено) 2 часа назад, SD_TuXo сказал: Всем большое спасибо, я вот тоже накидал тут код не знаю верно или нет но работает <? if (isset($_POST['name'])){ // Переменные с формы $name = $_POST['name']; // Параметры для подключения $db_host = "localhost"; $db_user = "Логин БД"; // Логин БД $db_password = "Пароль БД"; // Пароль БД $db_base = 'Имя БД'; // Имя БД $db_table = "Имя Таблицы БД"; // Имя Таблицы БД // Подключение к базе данных $mysqli = new mysqli($db_host,$db_user,$db_password,$db_base); // Если есть ошибка соединения, выводим её и убиваем подключение if ($mysqli->connect_error) { die('Ошибка : ('. $mysqli->connect_errno .') '. $mysqli->connect_error); } if (strlen($name)<30) { exit("Короткий текст."); } else if (strlen($name) >= 30) { echo "Текст записан в базу."; } $result = $mysqli->query("INSERT INTO ".$db_table." (name) VALUES ('$name')"); } ?> Ты уверен что этот рабочий. Я вот нет боле менее верен у TURGOR и вообше все это надо превратить в функцию и будет лучше Соединение (получение данных и соединение)-> обработка (проверка ошибок и правил)-> Выполнение результата (верного или ложного)-> завершение ( очистка и разъединение сессии) и + со стороны клиента проверку еще бы сделал на запрет публикацию меньше 30 символов иль что там у тебя Изменено 8 апреля, 2019 пользователем terege дополнение Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
k0ss11 302 Опубликовано 20 июня, 2019 Я бы посоветовал использовать mb_strlen() в место strlen() если будете использовать кириллицу. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты