Files
2026-08-15 00:28:06 +07:00

268 lines
7.7 KiB
PHP

<?php
/*
* Copyright (C) 2018 Laksamadi Guko.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
session_start();
// hide all error
error_reporting(0);
if (!isset($_SESSION["mikhmon"])) {
header("Location:../admin.php?id=login");
} else {
// time zone
date_default_timezone_set($_SESSION['timezone']);
// load session MikroTik
$session = $_GET['session'];
$quickprint = $_GET['quickprint'];
$qty = 1;
// lang
include('../include/lang.php');
include('../lang/'.$langid.'.php');
// quick bt
include('../include/quickbt.php');
// load config
include('../include/config.php');
include('../include/readcfg.php');
// routeros api
include_once('../lib/routeros_api.class.php');
include_once('../lib/formatbytesbites.php');
$API = new RouterosAPI();
$API->debug = false;
$API->connect($iphost, $userhost, decrypt($passwdhost));
// get quick print
$getquickprint = $API->comm("/system/script/print", array("?name" => "$quickprint"));
$quickprintdetails = $getquickprint[0];
$qpid = $quickprintdetails['.id'];
$quickprintsource = explode("#",$quickprintdetails['source']);
$package = $quickprintsource[1];
$server = $quickprintsource[2];
$usermode = $quickprintsource[3];
$userl = $quickprintsource[4];
$prefix = $quickprintsource[5];
$char = $quickprintsource[6];
$profile = $quickprintsource[7];
$timelimit = $quickprintsource[8];
$datalimit = $quickprintsource[9];
$comment = $quickprintsource[10];
$getvalid = $quickprintsource[11];
$getprice = explode("_",$quickprintsource[12])[0];
$getsprice = explode("_",$quickprintsource[12])[1];
$userlock = $quickprintsource[13];
if($getsprice == "" && $getprice != ""){
$price = $getprice;
}else if($getsprice != ""){
$price = $getsprice;
}else if ($getsprice == "") {
$price = "";
}
$commt = $usermode . "-" . rand(100, 999) . "-" . date("m.d.y") . "-" . $comment;
$a = array("1" => "", "", 1, 2, 2, 3, 3, 4);
if ($usermode == "up") {
for ($i = 1; $i <= $qty; $i++) {
if ($char == "lower") {
$u[$i] = randLC($userl);
} elseif ($char == "upper") {
$u[$i] = randUC($userl);
} elseif ($char == "upplow") {
$u[$i] = randULC($userl);
} elseif ($char == "mix") {
$u[$i] = randNLC($userl);
} elseif ($char == "mix1") {
$u[$i] = randNUC($userl);
} elseif ($char == "mix2") {
$u[$i] = randNULC($userl);
}
if ($userl == 3) {
$p[$i] = randN(3);
} elseif ($userl == 4) {
$p[$i] = randN(4);
} elseif ($userl == 5) {
$p[$i] = randN(5);
} elseif ($userl == 6) {
$p[$i] = randN(6);
} elseif ($userl == 7) {
$p[$i] = randN(7);
} elseif ($userl == 8) {
$p[$i] = randN(8);
}
$u[$i] = "$prefix$u[$i]";
}
for ($i = 1; $i <= $qty; $i++) {
$API->comm("/ip/hotspot/user/add", array(
"server" => "$server",
"name" => "$u[$i]",
"password" => "$p[$i]",
"profile" => "$profile",
"limit-uptime" => "$timelimit",
"limit-bytes-total" => "$datalimit",
"comment" => "$commt",
));
}
}
if ($usermode == "vc") {
$shuf = ($userl - $a[$userl]);
for ($i = 1; $i <= $qty; $i++) {
if ($char == "lower") {
$u[$i] = randLC($shuf);
} elseif ($char == "upper") {
$u[$i] = randUC($shuf);
} elseif ($char == "upplow") {
$u[$i] = randULC($shuf);
}
if ($userl == 3) {
$p[$i] = randN(1);
} elseif ($userl == 4 || $userl == 5) {
$p[$i] = randN(2);
} elseif ($userl == 6 || $userl == 7) {
$p[$i] = randN(3);
} elseif ($userl == 8) {
$p[$i] = randN(4);
}
$u[$i] = "$prefix$u[$i]$p[$i]";
if ($char == "num") {
if ($userl == 3) {
$p[$i] = randN(3);
} elseif ($userl == 4) {
$p[$i] = randN(4);
} elseif ($userl == 5) {
$p[$i] = randN(5);
} elseif ($userl == 6) {
$p[$i] = randN(6);
} elseif ($userl == 7) {
$p[$i] = randN(7);
} elseif ($userl == 8) {
$p[$i] = randN(8);
}
$u[$i] = "$prefix$p[$i]";
}
if ($char == "mix") {
$p[$i] = randNLC($userl);
$u[$i] = "$prefix$p[$i]";
}
if ($char == "mix1") {
$p[$i] = randNUC($userl);
$u[$i] = "$prefix$p[$i]";
}
if ($char == "mix2") {
$p[$i] = randNULC($userl);
$u[$i] = "$prefix$p[$i]";
}
}
for ($i = 1; $i <= $qty; $i++) {
$API->comm("/ip/hotspot/user/add", array(
"server" => "$server",
"name" => "$u[$i]",
"password" => "$u[$i]",
"profile" => "$profile",
"limit-uptime" => "$timelimit",
"limit-bytes-total" => "$datalimit",
"comment" => "$commt",
));
}
}
$getuser = $API->comm("/ip/hotspot/user/print", array(
"?name" => "$u[1]",
));
$userdetails = $getuser[0];
$uid = $userdetails['.id'];
$uname = $userdetails['name'];
$upass = $userdetails['password'];
$uprofile = $userdetails['profile'];
$uuptime = formatDTM($userdetails['uptime']);
$utimelimit = $userdetails['limit-uptime'];
$udatalimit = $userdetails['limit-bytes-total'];
$ucomment = $userdetails['comment'];
if (substr(formatBytes2($udatalimit, 2), -2) == "MB") {
$udatalimit = $udatalimit / 1048576;
$MG = "MB";
} elseif (substr(formatBytes2($udatalimit, 2), -2) == "GB") {
$udatalimit = $udatalimit / 1073741824;
$MG = "GB";
} elseif ($udatalimit == "") {
$udatalimit = "";
$MG = "MB";
}
$_SESSION['sss'] = $uname;
// Print BT
$chl = urlencode("http://$dnsname/login?username=$uname&password=$upass");
$qrcode = 'https://chart.googleapis.com/chart?cht=qr&chs=100x100&chld=L|0&chl=' . $chl . '&choe=utf-8';
//$qrcode = 'https://api.qrserver.com/v1/create-qr-code/?size=200x200&data='.$chl;
if ($currency == in_array($currency, $cekindo['indo'])) {
$pricebt = $currency . " " . number_format($price, 0, ",", ".");
if (substr($getvalid, -1) == "d") {
$validity = substr($getvalid, 0, -1) . "Hari";
} else if (substr($getvalid, -1) == "h") {
$validity = substr($getvalid, 0, -1) . "Jam";
}
if (substr($utimelimit, -1) == "d" & strlen($utimelimit) > 3) {
$timelimit = ((substr($utimelimit, 0, -1) * 7) + substr($utimelimit, 2, 1)) . "Hari";
} else if (substr($utimelimit, -1) == "d") {
$timelimit = substr($utimelimit, 0, -1) . "Hari";
} else if (substr($utimelimit, -1) == "h") {
$timelimit = substr($utimelimit, 0, -1) . "Jam";
} else if (substr($utimelimit, -1) == "w") {
$timelimit = (substr($utimelimit, 0, -1) * 7) . "Hari";
}
} else {
$pricebt = $currency . " " . number_format($price);
$timelimit = $utimelimit;
$validity = $getvalid;
}
if($qrbt == "enable"){$qr = "yes";}
include('../voucher/printbt.php');
?>
<script>
$(document).ready(function(){
var w = window.innerWidth;
if (w < 800) {
sendToQuickPrinterChrome();
} else if (w > 800) {
window.open('./voucher/print.php?user=<?= $usermode ?>-<?= $uname ?>&qr=<?= $qr ?>&session=<?= $session ?>','_blank','width=310,height=450').print();
//window.location.href="./?hotspot-user=<?= $u[1] ?>&session=<?= $session ?>";
}
//sendToQuickPrinterChrome();
});
</script>
<?php } ?>