Я новичок в Mikrotik, мне нужен подробный пошаговый урок, как создать страницу, где пользователи hotspot смогут изменить свой пароль с помощью USER SELF FORM MANAGEMENT. Это очень срочно. Я нашёл этот код в интернете и создал скрипт с именем changepass.php, нажимая на кнопку «плюс» в Winbox в разделе system, затем script. Пожалуйста, кто-нибудь помогите. Я только что установил Mikrotik cloud.
<?php
use PEAR2\Net\RouterOS;
require_once 'PEAR2/Autoload.php';
$errors = array();
try {
// Укажите IP RouterOS, имя пользователя и пароль.
$client = new RouterOS\Client('192.168.88.1', 'admin', 'password');
$printRequest = new RouterOS\Request(
'/ip hotspot active print .proplist=user',
RouterOS\Query::where('address', $_SERVER['REMOTE_ADDR'])
);
$hotspotUsername = $client->sendSync($printRequest)->getProperty('user');
} catch(Exception $e) {
$errors[] = $e->getMessage();
}
if (isset($_POST['password']) && isset($_POST['password2'])) {
if ($_POST['password'] !== $_POST['password2']) {
$errors[] = 'Пароли не совпадают.';
} elseif (empty($errors)) {
// Вот тут самое интересное — меняем пароль
$setRequest = new RouterOS\Request('/ip hotspot user set');
$client($setRequest
->setArgument('numbers', $hotspotUsername)
->setArgument('password', $_POST['password'])
);
}
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" “ ”> Смена пароля hotspot
#errors {background-color: darkred; color: white;}
#success {background-color: darkgreen; color: white;} <?php if (!isset($hotspotUsername)) { ?> Извините, но сейчас мы не можем изменить ваш пароль.
Попробуйте позже <?php } else { ?> ФОРМА смены пароля HOTSPOT Вы вошли как "<?php
echo $hotspotUsername;
?>" <?php if(!empty($errors)) { ?> <?php foreach ($errors as $error) { ?> <?php echo $error; ?> <?php } ?> <?php } elseif (isset($_POST['password'])) { ?> Ваш пароль был изменён. <?php } ?> Новый пароль: Подтвердите новый пароль: <?php } ?>
<?php
use PEAR2\Net\RouterOS;
require_once 'PEAR2/Autoload.php';
$errors = array();
try {
// Укажите IP RouterOS, имя пользователя и пароль.
$client = new RouterOS\Client('192.168.88.1', 'admin', 'password');
$printRequest = new RouterOS\Request(
'/ip hotspot active print .proplist=user',
RouterOS\Query::where('address', $_SERVER['REMOTE_ADDR'])
);
$hotspotUsername = $client->sendSync($printRequest)->getProperty('user');
} catch(Exception $e) {
$errors[] = $e->getMessage();
}
if (isset($_POST['password']) && isset($_POST['password2'])) {
if ($_POST['password'] !== $_POST['password2']) {
$errors[] = 'Пароли не совпадают.';
} elseif (empty($errors)) {
// Вот тут самое интересное — меняем пароль
$setRequest = new RouterOS\Request('/ip hotspot user set');
$client($setRequest
->setArgument('numbers', $hotspotUsername)
->setArgument('password', $_POST['password'])
);
}
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" “ ”> Смена пароля hotspot
#errors {background-color: darkred; color: white;}
#success {background-color: darkgreen; color: white;} <?php if (!isset($hotspotUsername)) { ?> Извините, но сейчас мы не можем изменить ваш пароль.
Попробуйте позже <?php } else { ?> ФОРМА смены пароля HOTSPOT Вы вошли как "<?php
echo $hotspotUsername;
?>" <?php if(!empty($errors)) { ?> <?php foreach ($errors as $error) { ?> <?php echo $error; ?> <?php } ?> <?php } elseif (isset($_POST['password'])) { ?> Ваш пароль был изменён. <?php } ?> Новый пароль: Подтвердите новый пароль: <?php } ?>
