Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/30: Рейтинг темы: голосов - 30, средняя оценка - 4.50
 Аватар для stupidstudent
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241

Массив: если массив пуст, ничего не выводить

05.08.2012, 21:01. Показов 5708. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть массив ошибок $err, в котором собираются все ошибки которые допустил пользователь, при вводе данных в форму.
В файлике с формами, я его вывожу рядом с той формой, где произошла ошибка.
Т.к. еще не произошел ввод данных, и соответственно массив пуст, пхп жалуется:
PHP
1
Notice: Undefined index: name in ...
и выводить там нечего.
Так вот вопрос, какую проверку надо "забацать", чтобы если массив пуст - ничего не выводить?

PHP
1
$err = !empty($err) ? $err : null;
?

для понятия сути вопроса:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//.................................
 
if(!$name || is_numeric($name))
             $err['name'] = 'Введите правильное имя';
            elseif(!$email)
             $err['email'] = 'Введите правильный email!';
            elseif(!$subject)
             $err['subject'] = 'Введите тему письма';
            elseif(!$message)
             $err['message'] = 'Введите сообщение';
            elseif($spam != '11')
            {
                $err['spam'] = 'Введите проверку';
            }
                if(count($err) == 0)
 
//............................................
и кусок файла-формы:
HTML5
1
2
<label>Имя<font color="red">*</font>:</label>
    <input name="name" type="text"  maxlength="50" value="<?php echo htmlspecialchars($name); ?>"/> <font color="red"><?php echo $err['name']; ?></font><br />
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.08.2012, 21:01
Ответы с готовыми решениями:

Если пользователь ничего не ввел, выводить error
здравствуйте а какой нужно использовать чтоб если пользователь не чего не ввел выводить error знаю только что это else дальше не знаю

Проверка пуст ли массив?
В операторе ввода класса хотел реализовать проверку на то пуст массив или нет, и ели НЕТ то очистить его,чтобы создать по-новой. Логично,...

массив $_FILE пуст
есть форма регистрации &lt;form class=&quot;contact_form&quot; action=&quot;&quot; method=&quot;post&quot; name=&quot;contact_form&quot; enctype=&quot;multipart/form-data&quot;&gt; ...

10
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
05.08.2012, 21:21
ну можно и так, но не проще ли будет проверять нажатие клавиши формы?
PHP
1
2
3
if(isset($_POST['кнопка_формы'])) {
//выполняем код
}
0
 Аватар для stupidstudent
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
05.08.2012, 21:49  [ТС]
KOPOJI, нажатие кнопки проверяется, момент, где я выдрал код, этого не показывает

Добавлено через 11 минут
если кнопка не нажата, то ошибок выводится и не будет. А если нажать и допустить ошибку, например, в имени, то в
PHP
1
$err['name']
будет строка с сообщением о неправильном вводе данных, а в других переменных строк с сообщениями не будет и поэтому пхп нам сообщит
PHP
1
Notice: Undefined index: name in ...
во всех остальных частях массива(почта, тема, сообщение и т.д.)
0
 Аватар для stupidstudent
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
05.08.2012, 22:04  [ТС]
мои слова наглядно показывает скриншот:


смысл в том, чтобы выводить ошибку, которая соответствует форме рядом.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
05.08.2012, 22:15
PHP
1
2
3
4
5
6
if(isset($_POST['кнопка_формы'])) {
//выполняем код
// и выводим ошибки если есть, переприсваивая их
} else {
$err = '';
}
Добавлено через 21 секунду
ну или NULL
1
 Аватар для stupidstudent
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
05.08.2012, 22:32  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
PHP
1
2
3
4
5
6
if(isset($_POST['кнопка_формы'])) {
//выполняем код
// и выводим ошибки если есть, переприсваивая их
} else {
$err = '';
}
Добавлено через 21 секунду
ну или NULL
теже ошибки...
______
вот
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
if(isset($_POST['ok']))
        {
            if(!$name || is_numeric($name))
             $err['name'] = 'Введите правильное имя';
            elseif(!$email)
             $err['email'] = 'Введите правильный email!';
            elseif(!$subject)
             $err['subject'] = 'Введите тему письма';
            elseif(!$message)
             $err['message'] = 'Введите сообщение';
            elseif($spam != '11')
            {
                $err['spam'] = 'Введите проверку';
            }
                if(count($err) == 0)
                    {
                     mail($to, $subject, $message, $headers);
                     header('location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);                     
                     exit();            
                    }
           
        }
            
    else 
    {
    $err = null;
    }
0
 Аватар для Денис Н.
463 / 463 / 23
Регистрация: 17.08.2011
Сообщений: 1,488
05.08.2012, 23:38
PHP
1
error_reporting(E_ALL & ~E_NOTICE);
Добавлено через 20 минут
PHP
1
<input name="name" type="text"  maxlength="50" value="<?php echo htmlspecialchars($name); ?>"/> <font color="red"><?php echo isset($err['name'])?$err['name']:''; ?></font><br />
Во
1
 Аватар для stupidstudent
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
05.08.2012, 23:40  [ТС]
Цитата Сообщение от Денис Н. Посмотреть сообщение
PHP
1
error_reporting(E_ALL & ~E_NOTICE);
тааааааааккк, у меня стояло
PHP
1
error_reporting(E_ALL);
что значит & ~E_NOTICE?

Добавлено через 1 минуту
Цитата Сообщение от Денис Н. Посмотреть сообщение
PHP
1
<input name="name" type="text"  maxlength="50" value="<?php echo htmlspecialchars($name); ?>"/> <font color="red"><?php echo isset($err['name'])?$err['name']:''; ?></font><br />
Во
стоит, уже)))
спасибо)
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
06.08.2012, 09:38
это значит игнорировать ошибки уровня E_NOTICE

Добавлено через 3 минуты
http://www.php.net/manual/ru/e... stants.php
1
 Аватар для stupidstudent
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
06.08.2012, 13:50  [ТС]
закрыто
0
217 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 614
08.08.2012, 09:24
ну и? как?

зы: я бы попробовал сменить elseif на if, тогда бы показало ошибки сразу по всем полям.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.08.2012, 09:24
Помогаю со студенческими работами здесь

Массив: Написать программу, которая будет выводить заданный двумерный массив.
nxn 0111 1011 1101 1110

Массив: Сделать массив, который будет выводить таблицу по заданному примеру...
Надо сделать массив который будет выводить таблицу по данному примеру. Заранее спасибо. 1111111 0222220 0033300 0004000 0033300 ...

Задан массив из N чисел. Алгоритм и программа должна выводить исходный и новый массив
Задан массив из N чисел. Алгоритм и программа должна выводить исходный и новый массив, полученный в результате выполнения требований...

Как проверить пуст ли массив?
это продолжение темы. интересует грамотность записи If Массив(0) = &quot;&quot; Then ' вот эта проверка мне кажется неграмотная Добавлено...

Как грамотно проверить: пуст ли массив?
Создал массив, инициализировал его. Нужно его заполнить сведениями из другого массива, который обновляется постоянно (в ряде итераций). То...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru