Neter:
я знаю о твоём мнении насчёт этих собак
Ничего ты не знаешь!
Ни-Че-Го!
Ты сам-то почитай свои оправдания!
Вчера я был слишком уставший, чтобы заниматься разжевыванием азов.
Делаю это сейчас.
Вот смотри, я тебя, неуча, сейчас буду тыкать носом.
Наглядно показывать, что имея наглость с малыми знаниями иметь свое собственное мнение, ты сам расставляешь себе грабли.
@ Нужна для подавления ошибок . т.е. если человек не жмакнул кнопку
Твои слова?
А тебе известно о том, что переменная эта может быть не установлена, при том, что форма отправлена? Если просто нажать на ентер. Вот если бы у тебя не было собаки - ты бы этот момент увидел СРАЗУ! По нотайсу. Пришел бы на форум - а как это так - форма отправлена, а переменной нету. И тебе бы объяснили.
А собакой ты нотайс подавил. В переменных своих ты уверен. И ловил бы глюк хрен знает сколько времени.
воспитательная часть закончена. Переходим к практической.
Если надо проверить, есть такая переменная, или нет, то надо использовать функцию isset() и нотайсов не будет, и ясность во всем. Не выполняется условие? Значит, переменная не установлена. Копаем, почему. НО НЕ ЗАТЫКАЕМ ПРОГРАММЕ РОТ!
И не пишем программ, в которых ошибки являются их частью.
Хотя, по-моему, некоторые люди просто не в состоянии понять, что сообщения об ошибках сделаны ДЛЯ ПОМОЩИ, а не просто развлечение разработчиков, чтобы досадить несчастным программистам и их надо подавлять.
Если надо проверить, отправлена была форма, или нет, при условии, что форма одна на странице (что бывает в подавляющем большинстве случаев), достаточно проверить _SERVER[\'REQUEST_METHOD\']. Если форм много и все с одним экшеном, то нужно хидден поле, чтобы их отличить.
с $_POST["logon"] (вместо которого ты мне подсунул @$users) разобрались.
Далее.
@$_POST["user"]
Как мы уже проверили выше, фолрма пришла постом.
Значит, поля "юзер" и "пасс" в ней обязательно должны быть.
А вдруг их нету???
А если их нету, то это форс-мажорная ситуация! Это или хакер лезет, или ошибка какая-то. Так программисту НАОБОРОТ!!!! НАДО. ОБ. ЭТОМ. ЗНАТЬ!!!
Что форма передана. а переменные почему-то - нет.
Ну я совершенно не представляю, как можно быть настолько страусом.
Ты для заказчика что ли пишешь? Лишь бы скинуть? Ну так отключи сообщения об ошибках ВООБЩЕ ВСЕ. И дело с концом.
А если ты нормальный программист, если тебя волнует работоспособность программы, то ты должен
1. написать ее так, чтобы она в штатном режиме никаких ошибок не выдавала. Чтобы ошибки не были ее частью.
2. ТЩАТЕЛЬНО изучать все сообщения об ошибках, буде таковые появятся. Иисправлять.
ПРИЧИНУ исправлять, бестолочь! а не сообщение. Болезнь лечить, а не симптом!
3. Скрывать сообщения об ошибках от юзера - они ему не нужны.
display_errors=off
ПОКАЗЫВАТЬ сообщения программисту
log_errors=on
Дальше.
Этот твой @$users
Вижу - исправил.
Опять же - за что ты не любишь примитивную функцию isset?
она гораздо короче, чем твой аррай кей екзистс и удобнее.
Тебе кажется, что обе эти функции все равно лишние?
Ну так учти, что в массиве никто логины с паролями не хранит, и весь этот пример притянут за уши.
то есть, проверять существование ключа одновременно со сравнением значения требуется на самом деле достаточно редко.
В нормальном же применении массивов попытка обратиться к несуществующему индексу - ОШИБКА! Важная ошибка, о которой должен знать программист.
О которой он будет знать, если не затыкает своей программе рот.