Программирование > PHP

Авторизация

<< < (5/7) > >>

Diesel:
Rodent создавай новые топики для новых вопросов

Меняздесьдавнонет:

--- Цитировать ---Neter:
я знаю о твоём мнении насчёт этих собак
--- Конец цитаты ---

Ничего ты не знаешь!
Ни-Че-Го!
Ты сам-то почитай свои оправдания!
Вчера я был слишком уставший, чтобы заниматься разжевыванием азов.
Делаю это сейчас.
Вот смотри, я тебя, неуча, сейчас буду тыкать носом.
Наглядно показывать, что имея наглость с малыми знаниями иметь свое собственное мнение, ты сам расставляешь себе грабли.

--- Цитировать ---@ Нужна для подавления ошибок . т.е. если человек не жмакнул кнопку
--- Конец цитаты ---

Твои слова?
А тебе известно о том, что переменная эта может быть не установлена, при том, что форма отправлена? Если просто нажать на ентер. Вот если бы у тебя не было собаки - ты бы этот момент увидел СРАЗУ! По нотайсу. Пришел бы на форум - а как это так - форма отправлена, а переменной нету. И тебе бы объяснили.
А собакой ты нотайс подавил. В переменных своих ты уверен. И ловил бы глюк хрен знает сколько времени.
воспитательная часть закончена. Переходим к практической.

Если надо проверить, есть такая переменная, или нет, то надо использовать функцию isset() и нотайсов не будет, и ясность во всем. Не выполняется условие? Значит, переменная не установлена. Копаем, почему. НО НЕ ЗАТЫКАЕМ ПРОГРАММЕ РОТ!
И не пишем программ, в которых ошибки являются их частью.
Хотя, по-моему, некоторые люди просто не в состоянии понять, что сообщения об ошибках сделаны ДЛЯ ПОМОЩИ, а не просто развлечение разработчиков, чтобы досадить несчастным программистам и их надо подавлять.

Если надо проверить, отправлена была форма, или нет, при условии, что форма одна на странице (что бывает в подавляющем большинстве случаев), достаточно проверить _SERVER[\'REQUEST_METHOD\']. Если форм много и все с одним экшеном, то нужно хидден поле, чтобы их отличить.

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

Дальше.
Этот твой  @$users
Вижу - исправил.
Опять же - за что ты не любишь примитивную функцию isset?
она гораздо короче, чем твой аррай кей екзистс и удобнее.
Тебе кажется, что обе эти функции все равно лишние?
Ну так учти, что в массиве никто логины с паролями не хранит, и весь этот пример притянут за уши.
то есть, проверять существование ключа одновременно со сравнением значения  требуется на самом деле достаточно редко.
В нормальном же применении массивов попытка обратиться к несуществующему индексу - ОШИБКА! Важная ошибка, о которой должен знать программист.
О которой он будет знать, если не затыкает своей программе рот.

Меняздесьдавнонет:
Rodent
Я тебе отвечу.
Однако предупреждаю - если начнутся стоны или обидки, то тема будет немедленно закрыта.
Я не обсуждаю здесь вопросы твоей гениальности ли убогости. Такое мнение может возникнуть ТОЛКО если
1. ты считаешь себя гением, а свое решение гениальным
2. твое рещение критикуется.
При адекватной же самооценке факт критики воспринимается не как попытка наехать, а как попытка помочь.

Сейчас ты наткнулся на первые грабли системы "запихнуть весь сайт в один файл". Оставив в стороне эстетическую сторону вопроса, я лишь скажу, что граблей таких будет много.
К примеру:
Вот на этом сайте выводится в заголовке окна (в теге title) название темы. А в твоем это сделать затруднительно.

Заплаток можно будет наставить много. Из-за них твой файл индекс, который не делает НИЧЕГО кроме того, что показывает другие файлы юзеру, будет ВСЕ ВРЕМЯ разрастаться.
Я считаю, что лучше обойтись без него вовсе. Без лишнего кода, без лишнего файла, без лишнего параметра в адресе.

Возьми, да раздели свой design.php на две части - верх и низ.
И подключай в каждом скрипте в нужных местах.
Таким образом разом снимутся все проблемы. Сохранится легкость смены дизайна. И скрипты приобретут гибкость.

Меняздесьдавнонет:

--- Цитировать ---$userName = trim(@$_POST["user"]);
$userPass = trim(@$_POST["pass"]);
if ($userName=="") { $error[]="Не заполнено поле \\"Имя\\""; }
if ($userPass=="") { $error[]="Не заполнено поле \\"Пароль\\""; }
--- Конец цитаты ---

заменяем на

if (!$userName=trim($_POST["user"])) $error[]=\'Не заполнено поле "Имя"\'; 
if (!$userPass=trim($_POST["pass"])) $error[]=\'Не заполнено поле "Пароль"\'; 

получается гораздо читабельнее и элегантнее.

Далее.
session_start(); имеет смысл делать только в случае удачной авторизации. Какой смысл стартовать сессию хакеру, к примеру, подбирающему проль?

--- Цитировать ---
$_SESSION[\'username\'] = "";
$_SESSION[\'userpass\'] = "";
--- Конец цитаты ---

это лишнее.

--- Цитировать ---$_SESSION[\'userpass\'] = $userPass;
--- Конец цитаты ---

А это - тем более!

Меняздесьдавнонет:
самое обидное, что учишь вас, учишь.
пишнешь километры текста. и в фак.
и каждому персонально.
А толку - ноль.
Или "я знаю твое мнение, но сделаю по-своему" или вообще "чего со своими замечаниями лезешь".

Тут еще один кадр был.
Задает идиотский вопрос, типа, "как получить 2х2=5" и в ответ на замечание выдающий сакраментальное "не знаешь, как сделать - молчи лучше!".

Эх. Прав Ксандер. Вырождаются форумы...

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Sitemap 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 28 
Перейти к полной версии