Перейти к содержанию
Авторизация  
SD_TuXo

PHP Проверка длины текста

Рекомендуемые сообщения

Помогите сделать проверку длины заполняющего поля, нужно что бы если длина текста меньше 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 "Текст записан в базу.";
    }
}
?>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну как бы нужно проверять длину параметра "name", а не результата выполнения запроса.

 

  • Like 1
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, Formatter сказал:

ну как бы нужно проверять длину параметра "name", а не результата выполнения запроса.

 

Блин точно чёт я тупанул, поправил но дело в том что оно все равно заносит в базу если даже короткое сообщение 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если проверка у тебя осталась в том-же виде как и была, то нужно добавить остановку выполнения кода, ака "return" или "exit"

 

upd. ну и быть она должна до добавления в базу.

upd.2 одного сравнения длинны < 30 достаточно, либо же необходимо изменить вторую проверку на >= 30, ибо при длине текста в 30 символов - сообщения не будет

Изменено пользователем Formatter
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
<?
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;
    }
}
?>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

то уже устал за день)

 

<?
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 нужно бы обработать или убрать 

Изменено пользователем TURGOR
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем большое спасибо, я вот тоже накидал тут код не знаю верно или нет но работает

<?
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')");

}
?>

 

Изменено пользователем SD_TuXo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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 символов иль что там у тебя 

Изменено пользователем terege
дополнение

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я бы посоветовал использовать mb_strlen() в место strlen() если будете использовать кириллицу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...