Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Работа с файлами и массивами
Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2016
Помог: 0 раз(а)
Здравствуйте. Написала обработчик формы, чтобы данные с нее записывались в файл и позже выводились в таблицу, но вот возникла проблема, уже неделю не могу решить никак - если пользователь пропустил что-то в форме (ничего не указал), то у меня всё сдвигается потом в таблице.
Например надо записать ФИО, пользователь отправил ИО, получится у меня в поле Фамилии запишется его имя, а отчество в поле имени итд.
Проблемы в коде - как сделать / исправить, чтобы если поле не заполнено, то писалось "не заполнено" и чтобы если нет картинки то писалось тоже "нет картинки", а не путь к картинке
Вот сама форма
Покинул форум
Сообщений всего: 17
Дата рег-ции: Апр. 2016 Откуда: Minsk перебираюсь в Питер
Помог: 1 раз(а)
Логично нужно прикрутить валидатор форм на JS какой-то, например на JQuery есть валидатор. Лучше чем изобретать велосипед использовать готовые варианты
kuller
Отправлено: 28 Апреля, 2016 - 20:15:39
Частый посетитель
Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009
Покинул форум
Сообщений всего: 17
Дата рег-ции: Апр. 2016 Откуда: Minsk перебираюсь в Питер
Помог: 1 раз(а)
kuller пишет:
а если js отключить, и все нет проверки )))
Так а зачем пользователь будет отключать если это хинты для пользователя, а не обработчик? Я так понял тут просто нужны подсказки, что пользователь забыл, а что нет.
kuller
Отправлено: 29 Апреля, 2016 - 16:54:52
Частый посетитель
Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009
Помог: 2 раз(а)
Pinkya_rabbit пишет:
kuller пишет:
а если js отключить, и все нет проверки )))
Так а зачем пользователь будет отключать если это хинты для пользователя, а не обработчик? Я так понял тут просто нужны подсказки, что пользователь забыл, а что нет.
погрешность искать в php. мало ли js не пропускает что та, а это может повлиять на уязвимость. Вообще не зависимо какая там валидация на js, любые приходящие дынные должны проверяться на стороне сервера, а не клиента.
difight
Отправлено: 29 Апреля, 2016 - 17:46:03
Посетитель
Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011
Помог: 3 раз(а)
Цитата:
а если js отключить, и все нет проверки )))
ну как вариант запретить вход на сайт с отключенным js =).
Ну в любом случае, конечно, все равно нужно проверять все приходящие данные на сервере.
inna22
Отправлено: 02 Мая, 2016 - 07:10:50
Новичок
Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2016
Помог: 0 раз(а)
К сожалению, решения с js и обязательным полем для заполнения не подходят.
Преподаватель дал подсказку - проверить массив ( или строку? ) и если там пусто, то писать, что не заполнено.
Только не могу понять как это реализовать. Знаю о isset, !empty итд, но как ими воспользоватся?
Получается на данный момент, что с пустыми полями у меня записывается вот так: ,,/Lab4/Image/ т.е не всё. По идее должно быть
Фамилия,Имя,Год,Пол,Интерес1;Интерес2,Картинка
значит пустым должно быть
,,,,,картинка
или же если ничего не заполнено
пусто,пусто,пусто,пусто,пусто,пусто.
Подскажите как исправить, прошу вас
ytrewq123
Отправлено: 02 Мая, 2016 - 16:49:44
Посетитель
Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014
Помог: 0 раз(а)
Пока кто то умнее появится, попробуйте так, может поможет вам ещё что то придумать.
Это ваш препод вам подсказал так делать? Или сами сообразили до такого?
1. Чтобы не делать так ($year==''||$year=='Выберите Год') для html-списка задается значение(value) по умолчанию - либо пустое, либо прочерк. При проверке числа приводятся к integer, строковые значения к string(хотя бы для начала, о тонкостях приведений к типам в php можете сами поискать).
2. if ($key=='apply') данная проверка ничего вам не дает.
3. возвращаясь к пункту 0 - если работаете с массивом, то работайте с массивом!
4. один только isset ничего вам не даст. Нужно либо isset && !empty либо вместо isset - array_key_exists
5. 'Image//'.$_FILES['photo']['name'] - никогда не пишите путь к файлам/директориям в php с использованием двойных слешей. Windows понимает одинарный обратный слеш. Исключение составляют unc-пути(//share/folder/).
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.