1. Мы продолжаем публиковать интересные статьи на тему SocialEngine 4. Одна из статей посвящена правильному выбору сервера для вашей социальной сети, а другая содержит советы по увеличению производительности платформы. Также мы добавили большую статью о пользовательских уровнях. Ознакомиться со статьями вы можете в разделе Вопросы и Ответы SocialEngine 4.
  2. Вам кажется, что ваша версия SocialEngine 4, работает медленно?

    Голосуйте. Пишите свою версию системы, железо на чем работает и количество пользователей. Будем увеличивать производительность :-) Подробнее

  3. В связи с участившимися случаями попыток продажи пользователями форума различных "сборок" коммерческих социальных платформ, обычно основанных на SocialEngine 3, вводится новое правило для форума. Запрещается создание тем или размещение в уже созданных предложений о продаже или размещение ссылок на сайты, где происходит продажа "сборок". Пользователи, которые продолжат свою коммерческую деятельность в данном направлении, будут заблокированы. Подробнее.

Урок 2. Конструктивный подход. Описание процедуры авторизации.

Discussion in 'PHP' started by J.O.K.E.R., Dec 16, 2010.

  1. J.O.K.E.R. Thread starter User


    Offline
    Message Count:
    152
    Likes Received:
    27
    Как только вы возьметесь за написание какого-либо скрипта или фрагмента кода, вы непременно встретитесь со многими трудностями, многое введет вас в заблуждение, что то не сразу получиться. Чтобы избежать ошибок советую Вам не торопиться, уроки по php, которые я буду публиковать Вам обязательно помогут.

    Изначально моя тактика была на предоставление пользователям исчерпывающей информации по каждой функции, описанием из документации, примером исполнения, синтаксиса, но я решил что это будет лишней нагружающей информацией, которая забьет вашу ясную голову =) и будет мешать вам идти дальше, поэтому мои уроки php программирования будут исключительно конструктивные. Что это значит? Давайте для примера рассмотрим следующий случай: мы захотели написать гостевую книгу. Что нам необходимо знать для реализации нашей цели? Так это то, из чего будет состоять наш код. Я буду писать какие функции используются, описание их синтаксиса, соединение блоков в единое целое, разъяснение каждого шага моих действий, чтобы у вас не возникало вопросов типа – «Че за нах ваще?» и «а откуда это нарисовалось?».

    Поверьте, даже самые простые вещи потребуют от вас знаний и сообразительности. Скажем вам потребуется создать сбор данных, или наоборот вывод каких то данных из файла(гостевая книга, счетчик, доска объявлений итд), мы должны уже на этом этапе определится какие функции будут использованы для написания скрипта, для вышеперечисленных – это обязательно функции работы с файлами, создание циклов и условий, при которых наш скрипт должен запускаться.

    Вспомните как в детстве вы играли в конструктор,что вы делали для создания машины? Спорю на бутылку пива что вам нужны были рама, 2 оси, 4 колеса и разумеется крепежные элементы, при помощи которых это все соединялось. В нашем случае детали – это стандартные функции PHP.
    Отсюда вывод написать скрипт – сконструировать его.

    Конструкция

    form.html – форма ввода данных, а именно логина и пароля. Это будет простой html-файл, который мы разберем по ходу дела.
    form.php – это наш скрипт, который будет обрабатывать полученные данные из form.html.

    Детали
    form.html

    Code:
    <html>
    
    <head>
      <title>Авторизация</title>
    </head>
    
    <body>
         <form name="" action="form.php" method="post">
          логин:<input name="login" type="text" value=""><br/>
          пароль:<input name="pass" type="password" value=""><br/><br/>
          <input type="submit" value="[ войти ]">
    </form>
    </body>
    
    </html>

    Прошу обратить внимание на тег
    , он отвечает за передачу данных у него есть несколько важных атрибутов:
    1. method - это принцип, по которому данные буду передаваться из формы.
    значение: может быть post или get , вам лично советую передавать данные
    первым методом .
    2. action – он указывает куда передавать наши данные, а точнее здесь прописывается имя файла, отвечающего за обработку.
    Внутри тега
    есть вложенные теги input, у них тоже есть свои атрибуты:
    name – это имя переменной ,которое будет передавать значение в наш скрипт, value – значение по умолчанию,
    type - тип данных вводимых в поле ввода, вы наверняка замечали что при авторизации, пароль обычно скрывается звездочками, это получается тогда, когда type принимает значение password.

    Ну и главный исполнительный элемент, это кнопка. Это тоже тег input, в котором type принимает значение submit (отправить). А также value и name, которое тоже необходимо присваивать кнопке. Value в данном случае, это слово, котрое отображается на кнопке.

    Можете скопировать этот фрагмент и вставить в PHP Expert Editor, и сохранить с именем form.htm, поставьте расширение файла именно htm, потому что он не содержит исполянемого кода.

    form.php
    Скрипт будет представлять собой валидатор, т.е. будет происходить проверка на правильность введенных данных.

    Code:
    <?php
    
    //Конфигурация
    $login = "admin";   //Логин
    $pass = "extra";    //Пароль админа

    Обратите внимание на нашу форму, как видите поле для логина носит имя login, поле ввода пароля pass, т.к. метод передачи был post, будем принимать эти данные через специальный массив $_POST['имя_переменной']. Массив это определенный вид переменной, в которой соответствующему ключу соотвествует определенное значение. Мы не будем углубляться в массивы , к ним мы вернемся позднее.

    Конец 1ой части - (В пост влазит всего 5000 символов)
  2. J.O.K.E.R. Thread starter User


    Offline
    Message Count:
    152
    Likes Received:
    27
    В нашем скрипте данные введенные в форме будут содержаться в переменной $_POST['login'] и $_POST['pass'], с ними мы и продолжим работать.


    Теперь мы имеем 2 отфильтрованные переменные $flogin и $fpass, с ними и продолжим работать. Для того чтобы проверить, нам надо сравнить полученные данные, с данными изначально сконфигурированными применяем простые условия.

    Code:
    if($flogin == $login) {
      if($pass == $fpass) { echo "Здравствуйте $flogin<br>вы авторизованы";    }
                        else {echo "не верный пароль";}
                          }
    
    else { echo "неверное имя пользователя"; }
    
    ?>
    А теперь разберем детально как производилась проверка.

    Первое условие: если введенный логин (переменная $flogin) равен заданному (переменная $login) получаем значение TRUE и идем дальше, ко второму условию, иначе выводим сообщение об ошибке.

    Второе условие: вложенное в первое, если введенный пароль равен заданному получаем значение TRUE и выводи сообщение об удачной авторизации, иначе выводим сообщение об ошибке.

    Соединяя все это в единое целое получаем рабочий скрипт. Готовый пример можно посмотреть здесь (имя пользователя admin, пароль extra) .

    Для начинающих php программистов, я советую под рукой держать документацию, которая всегда поможет в правильности написания той, или иной функции, подскажет синтаксис, ну и небольшой пример.
    Наша задача – научится программировать.

    Конец.
  3. SpartakuS User


    Offline
    • Знаменитый
    Message Count:
    797
    Likes Received:
    82
    Плохой урок.
    Поясни зачем тебе вырезать слеши и отрезать 15 символов?
  4. dream User


    Offline
    Message Count:
    144
    Likes Received:
    32
    емм...нет конечно ето будет полезно...но разве ето не реализовано в большинстве ЦМС и конкретно в СЕ ;)

    ---------- Сообщение добавлено в 20:59 ---------- Предыдущее сообщение было в 20:57 ----------

    поздравляю спартакус у вас ровно 555 сообщений
  5. SpartakuS User


    Offline
    • Знаменитый
    Message Count:
    797
    Likes Received:
    82
    Пусть будет 556.
    dream, это раздел по пхп, а не про се.
  6. dream User


    Offline
    Message Count:
    144
    Likes Received:
    32
    не...ок..я понял..просто само по себе к кахдой ЦМС своя форма авторизации(ну...как сказт' -то как она работает что ли) и почти везде она разнай....нуу да ладно ////всеравно спс ;)
  7. Svoloch Novice member


    Offline
    Message Count:
    1
    Likes Received:
    0
    В очередной раз пытаюсь сесть за ПХП, с удовольствием просматриваю уроки, чтобы глаза привыкли к коду и не разбегались в кучку. Спасибо.
  8. Red Rabbit Tough member


    Offline
    Message Count:
    898
    Likes Received:
    193
    Странные уроки. Получается принцип обучения такой
    1. Учимся кодить как попало. Т.е. - пишем говнокод.
    2. Тренируемся.
    3. Учимся кодить правильно.
    4. Тренируемся.
    Зачем тратить лишнее время на первые два пункта? Ну да, уроков ни о чем больше и научиться писать рабочее нечто (за скрипт это не считается) вас научат быстрее. Но на практике эти знания бесполезны, а потраченное на обучение практическим знаниям время увеличивается в разы. Или я не прав?

Share This Page

All rights reserved SocEngine.ru ©