Как только вы возьметесь за написание какого-либо скрипта или фрагмента кода, вы непременно встретитесь со многими трудностями, многое введет вас в заблуждение, что то не сразу получиться. Чтобы избежать ошибок советую Вам не торопиться, уроки по php, которые я буду публиковать Вам обязательно помогут.
Изначально моя тактика была на предоставление пользователям исчерпывающей информации по каждой функции, описанием из документации, примером исполнения, синтаксиса, но я решил что это будет лишней нагружающей информацией, которая забьет вашу ясную голову =) и будет мешать вам идти дальше, поэтому мои уроки php программирования будут исключительно конструктивные. Что это значит? Давайте для примера рассмотрим следующий случай: мы захотели написать гостевую книгу. Что нам необходимо знать для реализации нашей цели? Так это то, из чего будет состоять наш код. Я буду писать какие функции используются, описание их синтаксиса, соединение блоков в единое целое, разъяснение каждого шага моих действий, чтобы у вас не возникало вопросов типа – «Че за нах ваще?» и «а откуда это нарисовалось?».
Поверьте, даже самые простые вещи потребуют от вас знаний и сообразительности. Скажем вам потребуется создать сбор данных, или наоборот вывод каких то данных из файла(гостевая книга, счетчик, доска объявлений итд), мы должны уже на этом этапе определится какие функции будут использованы для написания скрипта, для вышеперечисленных – это обязательно функции работы с файлами, создание циклов и условий, при которых наш скрипт должен запускаться.
Вспомните как в детстве вы играли в конструктор,что вы делали для создания машины? Спорю на бутылку пива что вам нужны были рама, 2 оси, 4 колеса и разумеется крепежные элементы, при помощи которых это все соединялось. В нашем случае детали – это стандартные функции PHP.
Отсюда вывод написать скрипт – сконструировать его.
Конструкцияform.html – форма ввода данных, а именно логина и пароля. Это будет простой html-файл, который мы разберем по ходу дела.
form.php – это наш скрипт, который будет обрабатывать полученные данные из form.html.Деталиform.html
<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
Скрипт будет представлять собой валидатор, т.е. будет происходить проверка на правильность введенных данных.
<?php
//Конфигурация
$login = "admin"; //Логин
$pass = "extra"; //Пароль админа
Обратите внимание на нашу форму, как видите поле для логина носит имя login, поле ввода пароля pass, т.к. метод передачи был post, будем принимать эти данные через специальный массив $_POST['имя_переменной']. Массив это определенный вид переменной, в которой соответствующему ключу соотвествует определенное значение. Мы не будем углу
матся в массивы , к ним мы вернемся позднее.
В нашем скрипте данные введенные в форме будут содержаться в переменной $_POST['login'] и $_POST['pass'], с ними мы и продолжим работать.
//Проверка и чистка входящих данных
$flogin = stripslashes(substr($_POST['login'],0,15));
$fpass = stripslashes(substr($_POST['pass'],0,15));
//Вырезаем слэши и обрезаем до 15 знаков
Теперь мы имеем 2 отфильтрованные переменные $flogin и $fpass, с ними и продолжим работать. Для того чтобы проверить, нам надо сравнить полученные данные, с данными изначально сконфигурированными применяем простые условия.
if($flogin == $login) {
if($pass == $fpass) { echo "Здравствуйте $flogin<br>вы авторизованы"; }
else {echo "не верный пароль";}
}
else { echo "неверное имя пользователя"; }
?>
А теперь разберем детально как производилась проверка.
Первое условие: если введенный логин (переменная $flogin) равен заданному (переменная $login) получаем значение TRUE и идем дальше, ко второму условию, иначе выводим сообщение об ошибке.
Второе условие: вложенное в первое, если введенный пароль равен заданному получаем значение TRUE и выводи сообщение об удачной авторизации, иначе выводим сообщение об ошибке.
Соединяя все это в единое целое получаем рабочий скрипт. Готовый пример можно посмотреть здесь (имя пользователя admin, пароль extra) .
Для начинающих php программистов, я советую под рукой держать документацию, которая всегда поможет в правильности написания той, или иной функции, подскажет синтаксис, ну и небольшой пример.
Наша задача – научится программировать.