Меню
Контакты
107023, Москва, пл. Журавлёва, 10с3, подъезд 31, офис 309
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Интернет-магазин
сетевого оборудования
Москва +7 (495) 103-41-03 +7 (915) 420-28-94
107023, Москва, пл. Журавлёва, 10с3, подъезд 31, офис 309
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Заказать звонок

Хот-спот (Wi-Fi) для Mikrotik Routerboard. Клиентская часть. Часть 2(1/11)

 08 Июнь 2011    MikroTik, Hotspot

Рассмотрим файл index.php в клиентской части:

<?php

session_start();

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>

<meta http-equiv="content-type" content="text/html; charset=utf8" />

<meta name="author" content="Interline" />

<link href="style.css" rel="stylesheet" type="text/css" />

<title>WIFI</title>

</head>

<body>

<?

if (!empty($_SESSION['id']))

{

echo "Интернет включен";

}

else

{

echo "<form action='reg_user.php' method='post' enctype=multipart/form-data>";

echo "<fieldset>";

echo "<legend>Введите логин и пароль</legend>";

echo "<p><label for='login'>Логин</label> <input type='text' id='login' name='login' /></p>";

echo "<p><label for='password'>Пароль</label> <input type='password' id='password' name='password' /><br /></p>";

echo "<p class='submit'><input type='submit' value='Отправить' /></p>";

echo "</fieldset>";

echo "</form>";

}

?>

</body>

</html>

 

Разбираем скрипт:

Создаем сессию:

<?php

session_start();

?>

 

Будем хранить данные об авторизации пользователя в суперглобальном массиве: $_SESSION

Далее проверяем, авторизирован ли пользователь: if (!empty($_SESSION['id']))

Если да, то выводим сообщение echo "Интернет включен";, если нет, то выводим форму для ввода данных:

else

{

echo "<form action='reg_user.php' method='post' enctype=multipart/form-data>";

echo "<fieldset>";

echo "<legend>Введите логин и пароль</legend>";

echo "<p><label for='login'>Логин</label> <input type='text' id='login' name='login' /></p>";

echo "<p><label for='password'>Пароль</label> <input type='password' id='password' name='password' /><br /></p>";

echo "<p class='submit'><input type='submit' value='Отправить' /></p>";

echo "</fieldset>";

echo "</form>";

}

 

 Клиентская часть системы Хот-спот (Wi-Fi) для Mikrotik Routerboard

Рис.1. Форма для ввода данных.

 

Пользователь вводит данные и отправляет их на обработку в reg_user.php.

Точно также запускаем сессию: <?php

session_start();

Заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную:  if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} }

Заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную:  if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }

Если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт:  if (empty($login) or empty($password))

Если логин и пароль введены, то обрабатываем их, чтобы теги и скрипты не работали (мало ли, что люди могут ввести):

{

exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля! <meta http-equiv='refresh' content='4;URL=index.php'>");

}

Удаляем лишние пробелы:

$login = stripslashes($login);

$login = htmlspecialchars($login);

$password = stripslashes($password);

$password = htmlspecialchars($password);

Подключаемся к базе:  

$login = trim($login);

$password = trim($password);

Подключаем файл соединения с базой данных: include ("admins/db.php");

Извлекаем из базы все данные о пользователе с введенным логином и access должен быть равен yes: $result = mysql_query("SELECT * FROM users WHERE login='$login' AND access='yes'");

Если пользователя с такими данными не существует:

$myrow = mysql_fetch_array($result);

if (empty($myrow['password']))

{

exit ("Извините, введённый вами login или пароль неверный. <meta http-equiv='refresh' content='2;URL=index.php'>");

}

else {

Если существует, то сверяем пароли: if ($myrow['password']==$password) {

Если пароли совпадают, то запускаем пользователю сессию: $_SESSION['login']=$myrow['login'];

Эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь:  $_SESSION['id']=$myrow['id'];

Присваиваем переменной mac значение МАС-адреса пользователя: $mac = $myrow['mac'];

Заносим значение МАС-адреса в таблицу action: mysql_query ("INSERT INTO action (mac) VALUES ('$mac')");

echo "Вы успешно авторизировались! <meta http-equiv='refresh' content='2;URL=index.php'>";

}

else {

Если пароли не сошлись:

exit ("Извините, введённый вами login или пароль неверный.<meta http-equiv='refresh' content='2;URL=index.php'>");

}

}

?>

 

Евгений Рудченко специально для ASP24.