За последние 24 часа нас посетили 19536 программистов и 1602 робота. Сейчас ищут 920 программистов ...

Как происходит проверка?

Тема в разделе "Прочие вопросы по PHP", создана пользователем urits, 27 окт 2013.

  1. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    блин да я не против проверки на стороне сервера - я просто говорю что в данном решении все запросы обрабатываются сервером - которые можно было отбросить сразу на корню .. скажем при отсутствии ввода данных вообше..
     
  2. Yadfewm

    Yadfewm Активный пользователь

    С нами с:
    20 июл 2009
    Сообщения:
    223
    Симпатии:
    0
    Блин, в рамку и на стену, золотые слова.
     
  3. Stokmam

    Stokmam Новичок

    С нами с:
    27 окт 2013
    Сообщения:
    12
    Симпатии:
    0
    Может я конечно делаю не совсем правильно, но я сначала делаю проверку с помощью js на заполнение форм (что-бы было удобно пользователю), ну и потом уже на стороне сервера делаю проверку на заполнение обязательных форм..
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    есть такой html5-атрибут requre='true'; Делает поля обязательными для заполнения, поручая браузеру самому за этим проследить. В остальном все верно, проверка у клиента и на сервере - не взаимоисключающие вещи. Нужно и то и то.
     
  5. deblogger

    deblogger Новичок

    С нами с:
    11 июл 2013
    Сообщения:
    200
    Симпатии:
    0
    Колхоз. В городе делают так: повесив на каждое поле событие потери фокуса проверяют и, если все флаги подняты - только тогда кпонка Submit становится активной. А чтобы юзер видел где он был но накосячил - там обведено красным. А где ввел и угадал - зеленым. А где не трогал - белым по умолчанию. Это называется графический интерфейс.

    Можно даже приборную панель реализовать - зациклить проверку, скажем раз в сек - чтобы не чухаться с разнообразным поведением браузеров в отношении такого рода событий.

    Кроме того при построении формы JS передаются и все эти вопли насчет "ой, вы телефон забыли!"
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Мой вам совет, сначала делайте все на сервере, убедитесь, что не придет "ерунда", а потом вешайте украшения js.
     
  7. deblogger

    deblogger Новичок

    С нами с:
    11 июл 2013
    Сообщения:
    200
    Симпатии:
    0
    Если пришла "ерунда" после проверок в агенте - значит юзвер слишком умный и появляется моральное право послать его на 3 цифры: 404.

    Добавлено спустя 2 минуты 16 секунд:
    В этом и заключается суть "украшений" которые существенно упрощают обработку запроса. Поскольку уже не надо вошкаться с вежливыми сообщениями и сохранениями данных в сесиии, восстановления данным и прочей тряхомудией.

    Пришло - затипировал, неправильно - нах.

    Другими словами все проверки перемещаются во времени - из будущего в прошлое. Снабдив ява-скрипт всеми необходимыми данными для проверки вы ее уже сделали, поскольку нормально яву не обойти. Для ненормальных же предусмотрено место на параше.

    Добавлено спустя 8 минут 22 секунды:
    Вот оно, читатель не понимает зачем это все делается и готов делать два раза, и думает а зачем два раза если можно один раз:

    Это не два раза. Это ровно 1 раз когда вы проверяете нормальность данных в агенте, и 1 раз на сервере когда проверяете нормальность пользователя. Нормальность данных и нормальность пользователя - вещи разные. Проверок 2, но каждая вещь проверяется единожды.

    Добавлено спустя 2 минуты 23 секунды:
    И по разному.
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    Извините - не осилил.
    Как это "проверять нормальность пользователя"? Я бы хотел уметь так делать, научи или дай ссылку, пожалуйста!
    Конкретно - в форме три поля: имя, номер телефона, город. Что надо проверить в агенте, а что на сервере?
     
  9. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    deblogger, не мелите ерунды, js лишь остановит исполнение запроса, дабы не дрочить сервак, "но некоторые думают, что js-хватает, а php лишь запишет в базу, после запроса".

    Школьные годы............

    Вообще js осужден быть дыркой, он ей останется всегда.
    Пользователь может исполнить любой скрипт и отправить вам его, следовательно от суда кара сервера настигает, внезапно.

    Не нужно минуя сервер делать проверку js, так делают многие (в основном новички или <слово>).

    Для правильного использования js прежде чем отправлять запросы, убедитесь в том, что у вас все на сервере проверено корректно.
    JS хитрый и не нужно ему доверять весь сервер.=(

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

    Да и вообще не делайте оторванных файлов по которым можно пройти по адресу...
     
  10. deblogger

    deblogger Новичок

    С нами с:
    11 июл 2013
    Сообщения:
    200
    Симпатии:
    0
    Короче, не дошло. Потому что понимать не хотите.

    Господи, да что вы вообще можете проверить в агенте? Написать конкретный скрипт для конкретной формы для конкретной страницы - это?

    Ну хотя бы так. Значит материально объясняю. Пользователь не может нажать кнопку субмить пока не введет все требуемые данные правильно. Это реализуемо? - Это реализуемо как два пальца об асфальт.

    Чтобы пользователь не ломал голову над серой кнопкой отправки формы ему даются цветные подсказки и даже ткстом в баллонах. Это реализуемо? Элементарно.

    Таким образом пользователь _не_ может отгрузить неправильные данные. Пользователь может отгрузить только правильные данные которые зажгут кнопку type="submit". Правильно? Правильно.

    Риторические вопросы продолжаются. Что будет означать приход неправильных данных на сервер? Варианты: 1) ява-скрипт глючит; 2) что-то отвалилось по дороге; 3) php-скрипт глючит; 4) пользователь нарисовал свою собственную форму и минуя все проверки отгрузил ее содержание. Ваш ответ? Берете подсказку зала или звонок в правительство?

    Драматическая развязка: правильный ответ номер 4. Из которого вытекает что неправильные данные пришедшие после надежной проверки в агенте - фейк. И, значит, юзер - ненормальный. Ну, типа кулхацкер. Которого можно и нужно послать нах. А не ворачивать ему страницу ввода с восстановлением всех данных из сессии или куков, типа, не соизволите ли милостивый государь захерачить нам еще одну самопальную форму.

    Объяснил?

    Добавлено спустя 4 минуты 22 секунды:
    Само собой в его сессии вести подсчет попыток. Более 3-х - имейл в ФСБ.

    Добавлено спустя 4 минуты 17 секунд:
    Какова стандартная процедура? п1. Данные = сессия, поля = данный. Юзер вводит, жмет отправить. Проверка. Не прошла - к п. 1 через пагу сообщения об ошибке. Так вот JS избавляет от такого геморроя. В чем и смысл. Проверка делается 1 раз, затем проверяется то что вышло с проверки. Второй эшелон имеет другой смысл. Ошибка во втором эшелоне означает попытку добиться взаимности незаконным путем.
     
  11. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    А где вариант: пользователь в браузере отключил нафиг JavaScript?
     
  12. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    А нефиг выделяться из толпы и вообще, в ФСБ разберутся )
     
  13. deblogger

    deblogger Новичок

    С нами с:
    11 июл 2013
    Сообщения:
    200
    Симпатии:
    0
    Без первого эшелона вы не можете знать заранее - ошибся юзер при вводе формы или злонамеренно пытается найти дырки в скрипте. С первым эшелоном вы можете знать ошибся юзер при вводе или злонамеренно пытается найти дырки в скрипте.

    ЖС проверка, еще метафору придумал - типа зеленого сигнала светофора. Законопослушные пешеходы идут на зеленый. Введя этот эшелон вы получаете возможность отделить овец от козлищ которые норовят на красный.

    Сколько раз там юзер ошибся - вас уже не колебет, хоть стопицот раз. Интерфейс становится приятным, информативным, интерактивным.

    Добавлено спустя 1 минуту 11 секунд:
    Это его личные анальные проблемы.

    Впрочем, если на ваших сайтах таких большинство, вам конечно надо делать по-старинке.
     
  14. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    1) deblogger, ты откинулся с кичи недавно чтоли? Без обид, но по стилю написания создается впечатление.
    2) Советую раскурить js-независимую html5-валидацию, которая будет работать и при отключенном js.
    3) Проверка на стороне клиента - для клиента, чтобы ему было удобнее и нагляднее, так и только так.
    4) На сервере же делаем проверку для сервера. Чтобы не гадать обо всех возможных "если", а просто взять и удостовериться, что все у нас как надо. Однозначно, универсально, безапеляционно. Ну и, если ajax-ом пробросили данные, можно вернуть красивый матюг, типа "Ваш IP сохранен, ваши данные отправлены в отдел "К", не выходите из дома в течение суток, за вами приедут. Всего наилучшего, bastard.", либо показать ошибку что угодно. Но на сервере проверять данные необходимо.