Académique Documents
Professionnel Documents
Culture Documents
[APORTE] Logueo a Hotspot con Mail (para Wifi libre en plazas, hoteles, etc)
Tema en 'Guías y Manuales' iniciado por yo_mono, 28 Oct 2016.
Bueno, busque y busque una forma de hacer esto (Incluso abri un hilo en este mismo foro y nadie me contesto siquiera ).
Despues de mucho probar, logre que funcione.
Y como realmente me costo mucho y no encontre ningun tutorial en internet que haga lo que yo quiero, les muestro y enseño.
---------------------------------------------------------------------------------------------------------------------
La idea es:
-Cliente de restaurante, hotel, plaza, etc. Se conecta a nuestro Wifi libre
-Lo dejamos, pero antes tiene que colocar su mail para que nosotros lo agreguemos a nuestra base de datos (y asi poder enviarle mucho spam)
yo_mono -una vez colocado, click en "conectar" y wala! funcionando.
New Member
---------------------------------------------------------------------------------------------------------------------
Spoiler: Login.html
<html>
<title>...</title>
<body>
<form name="redirect" action="http://tudominioexterno.com/formulario.php" method="post">
<input type="hidden" name="mac" value="$(mac)">
<input type="hidden" name="ip" value="$(ip)">
<input type="hidden" name="username" value="$(username)">
<input type="hidden" name="link-login" value="$(link-login)">
<input type="hidden" name="link-orig" value="$(link-orig)">
<input type="hidden" name="error" value="$(error)">
</form>
<script language="JavaScript">
<!--
document.redirect.submit();
//-->
</script>
</body>
</html>
Listo. Ahora tenemos una tabla de nombre "user", con las filas "id", "username" y "email".
Cualquiera de estos nombres pueden cambiarlo si quieren. Solo lo deje asi porque para lograr que esto funcione recopile informacion de muchos lados, y asi quedó,
simplemente.
Spoiler: formulario.php
<?php
require('connect.php');
// Si tanto nombre como email estan escritos, se escriben en la base de datos
if (isset($_POST['username']) && isset($_POST['email'])){
$username = $_POST['username'];
$email = $_POST['email'];
$query = "INSERT INTO `user` (username, email) VALUES ('$username', '$email')";
$result = mysqli_query($connection, $query);
if($result){
header('Location: http://10.5.50.1/login?username=admin2&password=admin2');
die();
}else{
$fmsg ="Hubo un error al conectarse, por favor intentelo de nuevo";
}
}
?>
<html>
<head>
<title>Restaurante La Casona del Nonno</title>
<div class="container">
<form class="form-signin" method="POST">
<?php if(isset($smsg)){ ?><div class="alert alert-success" role="alert"> <?php echo $smsg; ?> </div><?php } ?>
<?php if(isset($fmsg)){ ?><div class="alert alert-danger" role="alert"> <?php echo $fmsg; ?> </div><?php } ?>
<center>
<img src="Captura.PNG" border=0>
</center>
<h2 class="form-signin-heading">Bienvenido a la Casona del Nonno. Por favor, ingrese su mail para disfrutar de nuestro Wifi</h2>
</body>
</html>
(se ve algo
torcido porque tengo un monitor grande y solo recorte lo que interesaba)
Honestamente NO SE NADA DE PROGRAMACION WEB asi que no puedo ayudarlos si tienen dudas sobre lo que dice ahi adentro.
Solo voy a aclarar algunos puntos clave que son los que yo tuve que editar para que esto funcione.
Se los pongo uno por uno en este Spoiler asi es mas ordenado:
Spoiler: Aclaracion 1
require('connect.php'); ----> Aca lo que dice es que primero va a buscar otro archivo mas llamado "connect.php" que se va a conectar
a la base de datos creada en el punto 2. Esto lo voy a explicar en el punto siguiente
Spoiler: Aclaracion 2
if($result){
header('Location: http://10.5.50.1/login?username=admin2&password=admin2');
die();
}else{
$fmsg ="Hubo un error al conectarse, por favor intentelo de nuevo"; ----------> esta parte es muy importante. Lo que dice esta
parte del codigo es que SI SE ESCRIBIO CORRECTAMENTE la tabla, va a redirigirnos a nuestro mikrotik y automaticamente loguearnos con el
usuario "admin2" y contraseña "admin2" al hotspot (el usuario a utilizar tiene que tener habilitada la opcion de shared user, ya que se va a
"conectar" simultaneamente decenas o centenas de veces). En caso contrario, si hubo algun error, va a mostrar el mensaje "Hubo un error
al conectarse, por favor intentelo de nuevo"
El resto, es codigo para darle estilos a la pagina (formato, que no sean solo textos en el aire) y mas abajo la pagina en si. Como dije antes y repito ahora: NO TENGO
IDEA DE PROGRAMACION WEB, solo recopile codigos que encontre hasta lograr uno funcional, fue todo deduccion y suerte, asi que no se ni la mitad de las cosas que
dice ese codigo que pegue arriba.
Y dice asi:
Spoiler: Connect.php
<?php
$connection = mysqli_connect('localhost' (Si es local. Si no, la direccion de acceso), 'Nombre de usuario del mysql', 'Contraseña');
if (!$connection){
die("Database Connection Failed" . mysqli_error($connection));
}
$select_db = mysqli_select_db($connection, 'Nombre de la base de datos creada en el punto 2');
if (!$select_db){
die("Database Selection Failed" . mysqli_error($connection));
}
Spoiler: Alogin.html
<html>
<center>
<head>
<meta http-equiv="Refresh" content="0;url=www.paginadelrestauranteparaelquecreetodoesto.com" />
</head>
<body>
</body>
</center>
</html>
Muy bien!
Ya tenemos nuestro Hotspot funcionando!
-Recuerden habilitar el host donde tienen alojado el formulario en el walled garden para poder acceder.
Es mas o menos asi:
Spoiler: Walled Garden
-La direccion a la que su PHP los va a redirigir luego de hacer el formulario (en este caso la http://10.5.50.1/login?username=admin2&password=admin2)
TIENE QUE APUNTAR A LA IP DEL SERVIDOR HOTSPOT, NO A LA IP LAN PRIVADA DEL ROUTER. Aclaro esto porque en principio yo queria apuntarlo a "192.168.88.1" y
me generaba un loop
-Para convertir al usuario "admin2" en un shared User, lo que tienen que modificar no es el usuario en si si no el PERFIL de usuario que este usa. Acceden al hotspot
--> User profiles --> elijen el perfil correcto, y ahi mismo tienen la opcion "shared users". En mi caso puse 99999. No se si es la opcion mas correcta pero funciona
bien.
Espero que haya servido, espero que alguien le de bola, y espero haber ayudado a alguien como me hubiese servido esta ayuda a mi hace algunos dias.
Saludos a todos!
Última edición: 28 Oct 2016
Excelente, luego lo probaré, muchas gracias por compartir esta info!! saludos
Emanuel M.
New Member
Emanuel M., 28 Oct 2016 #2
Me Gusta recibidos: 3
A yo_mono le gusta esto.
amaldonado
New Member
amaldonado, 18 Nov 2016 #3
Me Gusta recibidos: 1
A yo_mono le gusta esto.
amaldonado dijo: ↑
Me alegro que sirva. De paso te pregunto.. sabes como editar el tema?? No encuentro la opcion por ningun lado y me esta volviendo loco que en un lugar puse
"mikroti"
yo_mono
New Member
yo_mono, 18 Nov 2016 #4
Me Gusta recibidos: 6
yo_mono dijo: ↑
Me alegro que sirva. De paso te pregunto.. sabes como editar el tema?? No encuentro la opcion por ningun lado y me esta volviendo loco que en
un lugar puse "mikroti"
grammont
Well-Known Member
grammont, 18 Nov 2016 #5
Me Gusta recibidos: 280
yo_mono dijo: ↑
Me alegro que sirva. De paso te pregunto.. sabes como editar el tema?? No encuentro la opcion por ningun lado y me esta volviendo loco que en
un lugar puse "mikroti"
yo_mono, hace varios dias que buscaba esa informacion.. MUCHAS GRACIAS!!
Ahora para editar el tema lo mejor seria el dreamwaver, si no tienes mucho conocimineto em html.
sebgale
New Member
sebgale, 23 Nov 2016 #6
Me Gusta recibidos: 0
Muy buena tu idea, yo tambien estaba buscando algo parecido a esto hace 2 meses (captar datos "nombre, celular, correo" para luego recién dar wifi gratis), yo lo
hice con la opción "HOTSPOT TRIAL", la cual puedo decidir por cuanto tiempo quiero que estén conectados los clientes, ya sea 1,2 o 3 horas al día y después ya no
tienen wifi.
JhorDy
New Member
JhorDy, 16 Dic 2016 #7
Me Gusta recibidos: 0
Tengo problema, con esta parte ya que no inicia seccion de esta forma:
http://192.168.25.1/login?username=admin2&password=admin2
esa es la ip del mikrotik y no inicia seccion ese es el problema que tengo ahorita
MChacon
New Member
MChacon, 21 Ene 2017 #8
Me Gusta recibidos: 1
MChacon dijo: ↑
Tengo problema, con esta parte ya que no inicia seccion de esta forma:
http://192.168.25.1/login?username=admin2&password=admin2
esa es la ip del mikrotik y no inicia seccion ese es el problema que tengo ahorita
MChacon
New Member Encontre el error, el problema es con la base de datos ejemplo:
Me Gusta recibidos: 1
Si "Juan" se loguea por primera vez todo va bien, el problema es cuando quiere volver a entrar le pide nuevamente el correo y es donde hay conflicto con la base de
datos y no deja pasar de ahi, ya que no reemplaza los datos la base de datos.
Adicional les dejo un codigo para hacer Responsivo el Portal ya que como lo dejo el amigo @yo_mono se ve super pequeñas las letras y no se logra ver en Moviles.
<meta charset="utf‐8">
<meta name="viewport" content="width=device‐width, initial‐scale=1.0" />
<style>
.container {
width:996px;
margin:0px auto;
font‐size:1em;
}
section,aside {
padding: 10px;
background:#ccc;
‐moz‐border‐radius:5px;‐webkit‐border‐radius:5px;‐o‐border‐radius:5px;border‐radius:5px;
}
section {
float: left;
width: 70%;
}
aside {
float: right;
width: 25%;
}
nav {
overflow: hidden;
}
nav ul {
list‐style‐type:none;
float:left;
padding:0px;
}
nav ul li {
float:left;
padding:3px 10px;
Como repito si alguien tiene una solucion para reemplazar datos en la base de datos, seria de gran aporte!
se que quizas sea un poco antiguo el tema, pero siempre llego a la parte de que registra bien al mysql, pero no me redirige a la pagina que necesito o que de
internet, alguien puede saber por que pasa eso? o alguien ha hecho todo lo que dice la guia?
surakoru
New Member
surakoru, 24 Ago 2017 #10
Me Gusta recibidos: 0