Добавление пользователей в Mikrotik Routerboard лучше оформить таким образом, чтобы необходимые данные вводить не непосредственно в код программы, а в специальную форму.
Создадим форму:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Mikrotik API PHP</title>
<style type="text/css" media="screen">
#slideout {
position: fixed;
top: 40px;
left: 0;
width: 140px;
padding: 12px 0;
text-align: center;
background: #4876FF;
-webkit-transition-duration: 0.3s;
-moz-transition-duration: 0.3s;
-o-transition-duration: 0.3s;
transition-duration: 0.3s;
-webkit-border-radius: 0 5px 5px 0;
-moz-border-radius: 0 5px 5px 0;
border-radius: 0 5px 5px 0;
}
#slideout_inner {
position: fixed;
top: 40px;
left: -270px;
background: #4876FF;
width: 220px;
padding: 25px;
height: 270px;
-webkit-transition-duration: 0.3s;
-moz-transition-duration: 0.3s;
-o-transition-duration: 0.3s;
transition-duration: 0.3s;
text-align: left;
-webkit-border-radius: 0 0 5px 0;
-moz-border-radius: 0 0 5px 0;
border-radius: 0 0 5px 0;
}
#slideout_inner textarea {
width: 190px;
height: 100px;
margin-bottom: 6px;
}
#slideout:hover {
left: 250px;
}
#slideout:hover #slideout_inner {
left: 0;
}
</style>
</head>
<body>
<div id="slideout">
<img src="feedback.png" alt="Отправить отзыв" />
<div id="slideout_inner">
<form action="add.php" method="POST">
<p><label >Логин</label><br /><input type='text' name='login' /></p>
<p><label >Пароль</label><input type='text' name='password' /></p>
<p><label >IP адрес</label><input type='text' name='ip' /></p>
<p><label >Сервис </label><select name='service'>
<option>pptp</option>
<option>ppoe</option>
<option>any</option>
</select></p>
<p><label >Скорость </label><select name='speed'>
<option>5</option>
<option>10</option>
<option>20</option>
</select></p>
<p><input type="submit" value="Добавить" /></p>
</form>
</div>
</div>
</body>
</html>
Разбираем код:
В <style type="text/css" media="screen"> описаны стили CSS.
Создаём форму, которая будет передавать данные методом POST в файл add.php. Форма содержит поля для ввода логина, пароля, IP-адреса пользователя, а также два списка для выбора названия сервиса и скорости ограничения пользователя.
<form action="add.php" method="POST">
<p><label >Логин</label><br /><input type='text' name='login' /></p>
<p><label >Пароль</label><input type='text' name='password' /></p>
<p><label >IP адрес</label><input type='text' name='ip' /></p>
<p><label >Сервис </label><select name='service'>
<option>pptp</option>
<option>ppoe</option>
<option>any</option>
</select></p>
<p><label >Скорость </label><select name='speed'>
<option>5</option>
<option>10</option>
<option>20</option>
</select></p>
<p><input type="submit" value="Добавить" /></p>
</form>
Рис.1. Mikrotik Routerboard, кнопка добавления пользователя.
Наведём указатель мыши на кнопку.
Рис.2. Mikrotik Routerboard, форма добавления.
Заполняем форму и нажимаем "добавить".
И файл примет следующий вид:
<?php
Обработка данных полученных методом пост
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);}}
if (isset($_POST['password'])) { $password = $_POST['password']; if ($password == '') { unset($password);}}
if (isset($_POST['ip'])) { $ip = $_POST['ip']; if ($ip == '') { unset($ip);}}
if (isset($_POST['service'])) { $service = $_POST['service']; if ($service == '') { unset($service);}}
if (isset($_POST['speed'])) { $speed = $_POST['speed']; if ($speed == '') { unset($speed);}}
function f_add_user($login, $password, $ip, $service, $speed, $comment='no comment')
{
require('routeros_api.class.php');
$API = new routeros_api();
if ($API->connect('192.168.4.253', 'ubnt', 'ubnt'))
$max_limit = "$speed"."M"."/"."$speed"."M";
#print $max_limit;
$API->comm("/ppp/secret/add", array(
"name" => $login,
"password" => $password,
"remote-address" => $ip,
"comment" => $comment,
"service" => $service,
));
$API->comm("/queue/simple/add", array(
"name" => $login,
"target-addresses" => $ip,
"max-limit" => $max_limit,
));
$API->comm("/ip/firewall/address-list/add", array(
"address" => $ip,
"list" => "asp24net",
));
#print "Новый пользователь добавлен";
}
В вызов функции подставляются данные, полученные из формы:
f_add_user($login, $password, $ip, $service, $speed)
?>
Рис.3. Mikrotik Routerboard список пользователей.
Таким образом, добавление пользователей в Mikrotik Routerboard станет более удобным.
Евгений Рудченко специально для ASP24.



