|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  Raspberry Pi Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  AutoIt (Programación) Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

Autoit en español
Aplicaciones con Autoit - Juan Antonio Villalpando

-- Tutorial de iniciación a Autoit --

Volver al índice del tutorial

____________________________

78.- Registrar usuarios y autentificarse para entrar en la aplicación.

- Para entrar en una aplicación un usuario debe previamente Registrarse con su nombre, clave y correo.

- Cuando te registres se te enviará un correo indicando que te has registrado.

- Para comprobar su fucionamiento es conveniente que pongas un correo verdadero.

- Una vez registrado cuando introduzca su nombre y clave, la pantalla se pondrá azul durante 2 segundos.

_______________________________________________________
1.- Necesitamos un hosting.

- En el tutorial anterior ya comentamos que debemos darnos de alta en un hosting.

317.- Hosting gratuito Hostinger.

_______________________________________________
2.- Creación de una base de datos y una tabla.

- Al final del tutorial mencionado anteriormente creamos una base de datos llamada u798509677_comun, con un usuario llamado u798509677_juan, la base de datos está en mysql.hostinger.es.

- Pues bien más adelante cuando veamos los archivos PHP tendremos que poner esta información para comunicarnos desde PHP con la base de datos:

// 1.- IDENTIFICACION nombre de la base, del usuario, clave y servidor
$db_host="mysql.hostinger.es";

$db_name="u78509677_comun
";
$db_login="u78509677_juan
";
$db_pswd="contraseña";
$link = mysql_connect($db_host, $db_login, $db_pswd);

- Dentro de esa base de datos vamos a crear una tabla llamada usuarios_datos.

- La forma de crearla la vimos en este tutorial:

390.- Listado de usuarios y claves en una Base de datos.

tabla_registrados.sql
CREATE TABLE IF NOT EXISTS `usuarios_datos` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nombre` varchar(15) CHARACTER SET utf8 COLLATE utf8_spanish2_ci NOT NULL,
  `clave` varchar(7) CHARACTER SET utf8 COLLATE utf8_spanish2_ci NOT NULL,
  `correo` varchar(20) CHARACTER SET utf8 COLLATE utf8_spanish2_ci NOT NULL,
  `fechahora` varchar(20) CHARACTER SET utf8 COLLATE utf8_spanish2_ci NOT NULL,
  `ip` varchar(15) CHARACTER SET utf8 COLLATE utf8_spanish2_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

- Creamos una tabla llamada "registrados" con 6 campos:

id, nombre, clave, correo, fechahora, ip

- Ya tenemos la base de datos y la tabla preparadas para recibir datos.

_____________________________________________________
3.- Archivos PHP.

- También lo vimos en el tutorial: 390.- Listado de usuarios y claves en una Base de datos.

- Voy a modificar un poco ese archivos PHP que vimos en ese tutorial.

- Este archivo recibe mediante $_POST los datos que enviará AutoIt. Identificará la base de datos:

// 1.- IDENTIFICACION nombre de la base, del usuario, clave y servidor
$db_host="mysql.hostinger.es";

$db_name="u78509677_comun
";
$db_login="u78509677_juan
";
$db_pswd="contraseña";
$link = mysql_connect($db_host, $db_login, $db_pswd);

- AutoIt enviará Nombre, Clave y Correo.

- Luego el PHP devolverá una Respuesta de vuelta al AutoIt.

- Recuerda que al trabajar con este tipo de archivos debes tener cuidado con la comillas 'simples', las "dobles" y las comillas de `acento`

usuarios_registrados_autoit.php
				   
<?php
// Juan Antonio Villalpando.
// KIO4.COM

// 1.- IDENTIFICACION nombre de la base, del usuario, clave y servidor
$db_host="mysql.hostinger.es";
$db_name="u798509677_comun"; 
$db_login="u798509677_juan"; 
$db_pswd="contraseña"; 

// 2.- CONEXION A LA BASE DE DATOS
$link = new mysqli($db_host, $db_login, $db_pswd, $db_name);

$datos = $_POST;
$eleccion = $_POST['eleccion'];

///////////////////////////////    REGISTRAR  ////////////////////////////////////
if($eleccion == 'registrar'){

$Nombre=$datos['nombre'];
$Clave=$datos['clave'];
$Correo=$datos['correo'];

// 3.- FECHA DE ALTA
date_default_timezone_set('Europe/Madrid'); // Fecha del país
setlocale(LC_ALL,'es_ES');
$zone=3600*2 ;
$fechahora=gmdate("j/m/y H:i:s", time() + $zone); 

// 4.- TOMAR LA IP DEL USUARIO
if (getenv("HTTP_X_FORWARDED_FOR")) {
$TuIP = getenv("HTTP_X_FORWARDED_FOR");
} else {
$TuIP = getenv("REMOTE_ADDR");
}

// 5.- INSERCIÓN DE DATOS
$query="INSERT INTO usuarios_datos (nombre, clave,correo,fechahora,ip) VALUES ('$Nombre','$Clave','$Correo','$fechahora','$TuIP')";
mysqli_query ($link, $query);

echo "Datos agregados a la base.";

mysqli_close($link);

////////// CORREO QUE SE ENVIARÁ AL REGISTRARSE //////////////////////////////// 

$asunto = "Entrada en la aplicación de KIO4.COM";
$mensaje = "Bienvenido a nuestra aplicación, Nombre= ".$Nombre." y Clave= ".$Clave;

$decorreo="ejemplo@ejemplo.com";
if (mail($Correo, $asunto, $mensaje, $decorreo))
//if (mail($Correo, $asunto, $mensaje, "From: $Nombre <$decorreo>"))
{
echo("Mensaje enviado. ");
}
else
{
echo("Error en el envio!...");
}

///////////////////////////////// FIN DE CORREO ///////////////////////////////
}

///////////////////////////////    ENTRAR  ////////////////////////////////////
if($eleccion == 'entrar'){

$Nombre=$datos['nombre'];
$Clave=$datos['clave'];

$res=mysqli_query($link, "SELECT nombre,clave FROM `usuarios_datos` WHERE `nombre`='$Nombre' AND `clave`='$Clave' ");

$row=mysqli_fetch_array($res);

$count = mysqli_num_rows($res);
if( $count >= 1 ) { // Si hay 1 o más Juan - 1234, es que el usuario y clave existen.
echo 'REGISTRADO';
} else {
echo 'NO EXISTE';
}

mysqli_close($link);

}
?>

 

- Cuidado con las mayúsculas y las minúsculas.

- Cuidado con POST y GET.

- Cuidado con las comillas 'simples', las comillas "dobles" y las comillas de `acento`

_____________________________________________________
4.- Aplicación en AutoIt para registrarse y autenficarse.

- Enviará un mensaje al servidor remoto y mediante PHP insertará la información en MySQL. Además mediante print devolverá una respuesta.

- Registrará al usuario. Lo guardará en el base de datos MySQL. Le enviará un correo indicando que se ha registrado. Escribe un correo real para hacer las pruebas.

- Si se autentifica y está registrado la pantalla se pondrá azul.

Código para el AutoIt
				   
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("Registro - Juan A. Villalpando", 775, 262, 192, 132)
$Label1 = GUICtrlCreateLabel("Nombre: ", 32, 32, 59, 20)
$Label2 = GUICtrlCreateLabel("Clave: ", 32, 72, 45, 20)
$Label3 = GUICtrlCreateLabel("Correo: ", 32, 112, 51, 20)
$Input1 = GUICtrlCreateInput("juan", 120, 32, 137, 24)
$Input2 = GUICtrlCreateInput("1234", 120, 72, 137, 24)
$Input3 = GUICtrlCreateInput("correoreal@yahoo.com", 120, 112, 193, 24)
$Button1 = GUICtrlCreateButton("Pulsa para registrarte", 32, 168, 241, 65)
$Label4 = GUICtrlCreateLabel("Nombre:", 472, 32, 56, 20)
$input4 = GUICtrlCreateInput("juan", 560, 24, 121, 24)
$Label5 = GUICtrlCreateLabel("Clave: ", 472, 72, 45, 20)
$Input5 = GUICtrlCreateInput("1234", 560, 64, 121, 24)
$Button2 = GUICtrlCreateButton("Si ya estás registrado. Pulsa para entrar.", 464, 168, 297, 57)
$Label6 = GUICtrlCreateLabel("Label6", 448, 112, 309, 44)
GUISetState(@SW_SHOW)
; Juan A. Villalpando - KIO4.COM
#EndRegion ### END Koda GUI section ###

$Respuesta=""

While 1
$msg = GuiGetMsg()
$nombre = GUICtrlRead($Input1)
$clave = GUICtrlRead($Input2)
$correo = GUICtrlRead($Input3)
$nombre_entrar = GUICtrlRead($Input4)
$clave_entrar = GUICtrlRead($Input5)
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop

; Botón REGISTRAR
    Case $msg = $Button1
$datos = "eleccion=registrar" & "&nombre=" & $nombre & "&clave=" & $clave  & "&correo=" & $correo
enviar()

; Botón ENTRAR
    Case $msg = $Button2
$datos = "eleccion=entrar" & "&nombre=" & $nombre_entrar & "&clave=" & $clave_entrar
enviar()
     if $Respuesta = "REGISTRADO"  Then
     GUISetBkColor(0x00FFFF) ; Pantalla azul durante 2 segundos.
     Sleep(2000)
     GUISetBkColor(0xFFFFFF)
     EndIf
EndSelect
Wend
Exit

; Enviar MySQL
Func enviar()
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("POST", "http://kio4.esy.es/usuarios_registrados_autoit.php", False)
$oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
$oHTTP.Send($datos)
; Recibir de MySQL
$Respuesta = $oHTTP.ResponseText
$Codigo = $oHTTP.Status

Beep(800,500)
GUICtrlSetData($Label6,$Respuesta)
EndFunc

- Según pulse un botón toma las variables "eleccion" y demás datos.

- Cuando "eleccion" llegue al PHP, éste realizará una de las operaciones según sea esa "eleccion" (registrar, entrar )

- La función enviar, envía los datos.

- Para enviar se utiliza la librería objeto de Windows winhttp.winhttprequest.5.5

- Los datos de los botones son enviados a la página PHP que los procesará.

- El código PHP realizará las operaciones pertinente según la elección y devolverá una Respuesta.

- La respuesta la envía el PHP mediante print.

- [También la podría enviar mediante echo].

- El AutoIt toma la información que le ha enviado print, mediante

$Respuesta = $oHTTP.ResponseText

_______________________________________________
- Propuesta.

- Cámbia el código PHP para que si el nombre viene vacío no realice ninguna acción.

if (isset($Nombre) ) {

- Aquí todo del código a partir de $datos = $_POST;

}
_________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información