PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
JoyStick
Отправлено: 26 Января, 2012 - 14:35:41
Новичок
Покинул форум
Сообщений всего: 29
Дата рег-ции: Янв. 2012
Помог: 0 раз(а)
Нужно сделать проверку на пустые поля,
вот есть форма
PHP:
скопировать код в буфер обмена
< select name= 'sex' class = 'input' >
< option value= "" >
< option value= "u" > Унисекс
< option value= "m" > Муж
< option value= "w" > Жен
</ select>
вот обработка
PHP:
скопировать код в буфер обмена
$sql = mysql_query ( "INSERT INTO `_bd`.`texniki` (sex) VALUES('$sex ')" ) ;
if ( @ $sql == 'true' )
{ echo 'Данные добавлены!' ; }
if ( ! $sex )
{
echo 'Заполнены не все обязательные поля' ;
Не работает проверка, собственно как ее сделать)
Zuldek
Отправлено: 26 Января, 2012 - 14:39:00
Постоянный участник
Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010
Помог: 50 раз(а)
CODE (
htmlphp ):
скопировать код в буфер обмена
if ( ! isset ( $_POST [ 'sex' ] ) { echo "заполнены не все поля" ;
}
else {
$sex = $_POST [ 'sex' ] ;
$sql = mysql_query ( "INSERT INTO `_bd`.`texniki` (sex) VALUES('$sex ')" ) ; if ( @ $sql == 'true' ) {
echo 'Данные добавлены!' ;
}
(Отредактировано автором: 26 Января, 2012 - 14:42:35)
JoyStick
Отправлено: 26 Января, 2012 - 14:43:12
Новичок
Покинул форум
Сообщений всего: 29
Дата рег-ции: Янв. 2012
Помог: 0 раз(а)
Zuldek пишет: CODE (
htmlphp ):
скопировать код в буфер обмена
if ( ! isset ( $_POST [ 'sex' ] ) { echo "заполнены не все поля" ;
}
else {
$sex = $_POST [ 'sex' ] ;
$sql = mysql_query ( "INSERT INTO `_bd`.`texniki` (sex) VALUES('$sex ')" ) ; if ( @ $sql == 'true' ) {
echo 'Данные добавлены!' ;
}
А если у меня несколько полей?
Zuldek
Отправлено: 26 Января, 2012 - 14:51:44
Постоянный участник
Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010
Помог: 50 раз(а)
JoyStick пишет: Zuldek пишет: CODE (
htmlphp ):
скопировать код в буфер обмена
if ( ! isset ( $_POST [ 'sex' ] ) { echo "не заполнено поле sex" ;
}
elseif {
if ( ! isset ( $_POST [ 'color' ] ) { echo "не заполнено поле color" ;
}
........
else {
// обязательно фильтруйте данные из POST через регулярное выражение или приводите к числам
// нет смысла передавать тут строку пусть будет число 1 - муж или 2 - жен. потому приводим к числу.
$sex = ( int) $_POST [ 'sex' ] ;
$color = $_POST [ 'color' ] ;
$sql = mysql_query ( "INSERT INTO `_bd`.`texniki` (sex) VALUES('$sex ')" ) ; if ( @ $sql == 'true' ) {
echo 'Данные добавлены!' ;
}
А если у меня несколько полей?
JoyStick
Отправлено: 28 Января, 2012 - 11:46:11
Новичок
Покинул форум
Сообщений всего: 29
Дата рег-ции: Янв. 2012
Помог: 0 раз(а)
PHP:
скопировать код в буфер обмена
<?PHP
include 'connect.php' ;
if ( ! isset ( $_POST [ 'name' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( ! isset ( $_POST [ 'texnika' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( ! isset ( $_POST [ 'id_podxod' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( isset ( $_POST [ 'options' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( ! isset ( $_POST [ 'sex' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( ! isset ( $_POST [ 'kol_people' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( ! isset ( $_POST [ 'age' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( ! isset ( $_POST [ 'dostup' ] ) ) { echo 'заполнены не все поля' ; }
else {
$id_texnik = $_POST [ "id_texnik" ] ;
$name = $_POST [ "name" ] ;
$anotacia = $_POST [ "anotacia" ] ;
$texnika = $_POST [ "texnika" ] ;
$koment_spec = $_POST [ "koment_spec" ] ;
$id_podxod = $_POST [ "id_podxod" ] ;
$istochnik = $_POST [ "istochnik" ] ;
$sex = $_POST [ "sex" ] ;
$kol_people = $_POST [ "kol_people" ] ;
$age = $_POST [ "age" ] ;
$date_in = $_POST [ "date_in" ] ;
$dostup = $_POST [ "dostup" ] ;
$sql = mysql_query ( "INSERT INTO `navigat_bd`.`texniki` (id_texnik, name, anotacia, texnika, koment_spec, id_podxod, options, istochnik, sex, kol_people, age, dostup)
VALUES(NULL, '$name ','$anotacia ','$texnika ','$koment_spec ','$id_podxod ','$options ',
'$istochnik ','$sex ','$kol_people ','$age ','$dostup ')" ) ;
if ( $sql == 'true' )
{ echo '<center><font size="5"><p><b>Данные добавлены!</b></p></font></center>' ; }
else { echo '<center><font size="5" color="red"><p><b>Данные не добавлены!</b></p></font></center>' ; }
}
?>
Вот что у меня получилось и оно все равно добавляет пустые значения!!!
difight
Отправлено: 28 Января, 2012 - 12:06:03
Посетитель
Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011
Помог: 3 раз(а)
в 33 строке условие поставь если хоть одна переменная из добавляемых пуста то ничего не делать иначе добавлять и будет работать
(Добавление)
PHP:
скопировать код в буфер обмена
<?PHP
include 'connect.php' ;
if ( ! isset ( $_POST [ 'name' ] ) ) {
echo 'заполнены не все поля' ;
$error = 1 ;
}
elseif ( ! isset ( $_POST [ 'texnika' ] ) ) {
echo 'заполнены не все поля' ;
$error = 1 ;
}
elseif ( ! isset ( $_POST [ 'id_podxod' ] ) ) {
echo 'заполнены не все поля' ;
$error = 1 ;
}
elseif ( isset ( $_POST [ 'options' ] ) ) {
echo 'заполнены не все поля' ;
$error = 1 ;
}
elseif ( ! isset ( $_POST [ 'sex' ] ) ) {
echo 'заполнены не все поля' ;
$error = 1 ;
}
elseif ( ! isset ( $_POST [ 'kol_people' ] ) ) {
echo 'заполнены не все поля' ;
$error = 1 ;
}
elseif ( ! isset ( $_POST [ 'age' ] ) ) {
echo 'заполнены не все поля' ;
$error = 1 ;
}
elseif ( ! isset ( $_POST [ 'dostup' ] ) ) {
echo 'заполнены не все поля' ;
$error = 1 ;
}
else {
$id_texnik = $_POST [ "id_texnik" ] ;
$name = $_POST [ "name" ] ;
$anotacia = $_POST [ "anotacia" ] ;
$texnika = $_POST [ "texnika" ] ;
$koment_spec = $_POST [ "koment_spec" ] ;
$id_podxod = $_POST [ "id_podxod" ] ;
$istochnik = $_POST [ "istochnik" ] ;
$sex = $_POST [ "sex" ] ;
$kol_people = $_POST [ "kol_people" ] ;
$age = $_POST [ "age" ] ;
$date_in = $_POST [ "date_in" ] ;
$dostup = $_POST [ "dostup" ] ;
if ( $error != 1)
{
$sql = mysql_query ( "INSERT INTO `navigat_bd`.`texniki` (id_texnik, name, anotacia, texnika, koment_spec, id_podxod, options, istochnik, sex, kol_people, age, dostup)
VALUES(NULL, '$name ','$anotacia ','$texnika ','$koment_spec ','$id_podxod ','$options ',
'$istochnik ','$sex ','$kol_people ','$age ','$dostup ')" ) ;
}
if ( $sql == 'true' )
{ echo '<center><font size="5"><p><b>Данные добавлены!</b></p></font></center>' ; }
else { echo '<center><font size="5" color="red"><p><b>Данные не добавлены!</b></p></font></center>' ; }
}
?>
я бы вот так решил проблему
JoyStick
Отправлено: 28 Января, 2012 - 12:10:56
Новичок
Покинул форум
Сообщений всего: 29
Дата рег-ции: Янв. 2012
Помог: 0 раз(а)
difight пишет: в 33 строке условие поставь если хоть одна переменная из добавляемых пуста то ничего не делать иначе добавлять и будет работатьУлыбка
как? что не получилось...
(Добавление)
difight пишет: я бы вот так решил проблему Улыбка
все равно добавляет...
(Добавление)
разобрался, у теяб там ошибочка)
Саныч
Отправлено: 28 Января, 2012 - 12:15:06
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010
Откуда: Украина, Запорожье
Помог: 62 раз(а)
Цитата: PHP:
скопировать код в буфер обмена
if ( ! isset ( $_POST [ 'name' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( ! isset ( $_POST [ 'texnika' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( ! isset ( $_POST [ 'id_podxod' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( isset ( $_POST [ 'options' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( ! isset ( $_POST [ 'sex' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( ! isset ( $_POST [ 'kol_people' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( ! isset ( $_POST [ 'age' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( ! isset ( $_POST [ 'dostup' ] ) ) { echo 'заполнены не все поля' ; }
else {
PHP:
скопировать код в буфер обмена
if ( ! isset ( $_POST [ 'name' ] , $_POST [ 'texnika' ] , $_POST [ 'id_podxod' ] , $_POST [ 'sex' ] , $_POST [ 'kol_people' ] , $_POST [ 'age' ] , $_POST [ 'dostup' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( isset ( $_POST [ 'options' ] ) ) { echo 'заполнены не все поля' ; }
else {
-----Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
Panoptik
Отправлено: 28 Января, 2012 - 12:19:36
Постоянный участник
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011
Откуда: Одесса, Украина
Помог: 131 раз(а)
isset - проверяет существование переменной, но не наличие у нее значения
empty - проверяет содержимое переменной
поэтому isset пропускает пустые значения
(Добавление)
у вас стоит отрицание. нужно убрать восклицательный знак перед isset
JoyStick
Отправлено: 28 Января, 2012 - 12:22:31
Новичок
Покинул форум
Сообщений всего: 29
Дата рег-ции: Янв. 2012
Помог: 0 раз(а)
Panoptik пишет: isset - проверяет существование переменной, но не наличие у нее значения
empty - проверяет содержимое переменной
поэтому isset пропускает пустые значения
И.....???
(Добавление)
Panoptik пишет: у вас стоит отрицание. нужно убрать восклицательный знак перед isset
Не помогло
Panoptik
Отправлено: 28 Января, 2012 - 12:25:47
Постоянный участник
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011
Откуда: Одесса, Украина
Помог: 131 раз(а)
PHP:
скопировать код в буфер обмена
if ( ! isset ( $_POST [ 'name' ] ) ) //в этих местах вместо фразы ниже лучше бы написать какое именно поле не заполнено например "не заполнено поле name"
{ echo 'заполнены не все поля' ; }
elseif ( ! isset ( $_POST [ 'texnika' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( ! isset ( $_POST [ 'id_podxod' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( isset ( $_POST [ 'options' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( ! isset ( $_POST [ 'sex' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( ! isset ( $_POST [ 'kol_people' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( ! isset ( $_POST [ 'age' ] ) ) { echo 'заполнены не все поля' ; }
elseif ( ! isset ( $_POST [ 'dostup' ] ) ) { echo 'заполнены не все поля' ; }
else {
if ( $_POST [ 'name' ] && $_POST [ 'texnika' ] && $_POST [ 'id_podxod' ] && $_POST [ 'sex' ] && $_POST [ 'kol_people' ] && $_POST [ 'age' ] && $_POST [ 'dostup' ] ) {
//все поля заполнены можно добавлять данные
} else {
//заполнены не все поля
}
}
Поиск в теме | Версия для печати
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB