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


.

App inventor 2 en español
Cómo programar los teléfonos móviles con Android
mediante App inventor 2 - Juan Antonio Villalpando

--- PHP y MySQL en App Inventor 2 --

Volver al índice del tutorial de PHP y MySQL

____________________________

395.- Contar las veces que funciona una aplicación. Extensión. MySQLi.

p395_entrar_varias_veces_app.aia

[Relacionada con: 8R.- Contar las ejecuciones de una aplicación. TinyBD]
[Relacionada con: 96B.- Contar las ejecuciones de una aplicación. Archivo.]

--------------------------------------------------------

- En el tutorial 8R.- Contar las ejecuciones de una aplicación. TinyBD. Vimos que podíamos contar las veces que se ejecuta una aplicación y que si ésta se ejecuta más de tres veces, no deja entrar en ella, concretamente en la pantalla azul.

- El problema que tenía ese método es que el usuario puede borrar los datos de la TinyBD desde los menús del móvil.

- Nos interesaría hacer una aplicación de manera que solo pueda funcionar 3 veces, y aunque el usuario la reinstale y borre los datos, siga sin poder funcionar si ya ha superado las 3 veces.

- Para ello es necesario para que la aplicación funcione, que el usuario esté conectado a Internet.

__________________________________________________________
- Extensión para obtener el número Identificador del Dispositivo.

- Necesitaríamos PHP, MySQL y una extensión que he realizado y he llamado:

com.TelefonosDatos.aix

- Con esta extensión obtenemos diversos datos del móvil.

- Nosotros utilizaremos el IdDispositivo, que tiene 15 cifras numéricas, para identificar al teléfono.

- Esta extensión la puedes bajar de com.TelefonosDatos.aix

__________________________________________________________
- MySQL.

- Por otra parte vamos a necesitar MySQL, para ello vamos a crear una tabla en una de nuestras base de datos.

- En esta ocasión guardaremos la cuenta de las veces que usuario ha pulsado el botón de entrar en la pantalla azul y además guardaremos el Identificador de ese teléfono, esto quedará almacenado en Internet, en la base de datos MySQL, cada vez que el usuario intente entrar en la pantalla azul, la aplicación irá a Internet, leerá la MySQL y si el número de teléfono correspondiente a las veces que ha pulsado el bótón es superior a 3, no podrá entrar en la pantalla azul.

__________________________________________

- Creación de la tabla.

- En tutoriales anteriores hemos creado una base de datos llamada u798509677_comun y en ella estamos creando todas las tablas de las distintas aplicaciones de estos tutoriales.

- En esa base de datos vamos a crear una tabla llamada: bloquear, en donde guardaremos el DeviceID de cada usuario que se haya conectado al menos una vez.

- La tabla bloquear tendrá tres campos: id (INT, Primary, AutoIncrement), veces (INT 3) y DeviceId (VARCHAR 16)..

__________________________________________

- Diseño.

- Observa que he instalado la extensión com.TelefonosDatos.aix

[com.TelefonosDatos.aix]

 

__________________________________________

- Bloques.

_____________________
- Comentarios.

- He puesto el Bloque de la extensión DeviceId para obtener el identificador del teléfono con la extensión com.TelefonosDatos.aix

- Luego he puesto DeviceID = 123456, que anulará al DeviceId anterior, esto lo he puesto para hacer pruebas, el lector cambiará estos número 123, 345, 444,... y verá como se guardan en la base de datos distintos dipositivos.

Este bloque lo deshabilitas, lo he puesto solo para hacer pruebas

- Cuando ya lo pruebe y lo entienda, anulará el Bloque de DeviceId = 123456, para que tome el verdadero DeviceId del móvil.

- El Bloque "abrir otra pantalla Nombre de pantalla = azul", también está deshabilitado para hacer las pruebas, simplemente leyendo la Etiqueta2, veremos si entra o no entra en la pantalla azul.

- Cuando el lector lo pruebe y lo entienda, habilitará este bloque.

- El código PHP está en http://kio4.esy.es/comprobar.php?

- Enviamos el DeviceId al PHP y lo recibirá mediante $_GET;

__________________________________________

- Diseño y Bloques de la pantalla azul.

__________________________________________

- Código PHP.

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

// Identificador del teléfono.
$datos=$_GET;
$DeviceId=$datos['DeviceId'];

// 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);

////////////////////////////// CONSULTAR Y GUARDAR /////////////////////////////////////
// Juan Antonio Villalpando.
// KIO4.COM

$res = mysqli_query($link, "SELECT DeviceId, veces FROM `bloquear` WHERE `DeviceId`='$DeviceId' ");

$row = mysqli_fetch_array($res);
$count = mysqli_num_rows($res);
if( $count >= 1 ) {     // Si hay 1 DeviceId, toma el valor del campo cuentas, y suma uno.
                        // $row[1] es el valor del campo cuentas
$suma = $row[1] + 1;
echo $suma;
mysqli_query ($link, "UPDATE bloquear SET veces='$suma' WHERE DeviceId='$DeviceId'" );

} else {
// Si no existe ese DeviceId, lo inserta y pone el  valor de cuentas en 1 
mysqli_query ($link, "INSERT INTO bloquear (veces, DeviceId) VALUES ('1', '$DeviceId')");
echo 1;
}

mysqli_close();

?>

__________________________________________

- Comentarios.

- Recibe el DeviceId mediante:

$datos=$_GET;
$DeviceId=$datos['DeviceId'];

- Entra en la base de datos mediante:

// 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);

- Consulta si existe ese DeviceId

$res=mysqli_query($link, "SELECT DeviceId, veces FROM `bloquear` WHERE `DeviceId`='$DeviceId' ");

- Si "veces" es 1 o más, es que existe.

- Toma el campo_1, que es el DeviceId: row[1]

- Suma 1, lo devuelve a la aplicación: echo $suma;

- Actualiza el valor de cuentas

$suma = $row[1] + 1;
echo $suma;
mysql_query ($link, "UPDATE bloquear SET veces='$suma' WHERE DeviceId='$DeviceId'" );

- En caso que no exista ese DeviceId, lo crea poniendo la cuentas en 1.

mysqli_query ($link, "INSERT INTO bloquear (veces, DeviceId) VALUES ('1', '$DeviceId')");

- Devuelve un 1 echo 1;

- Consultamos la base de datos, el primer DeviceId es un número verdadero de móvil con 15 cifras, los demás números son pruebas que he realizado al activar el bloque:

- De esta manera aunque el usuario borre sus datos del móvil o desinstale la aplicación, cuando la vuelva a instalar y se conectará a la base de datos, sus datos habrán quedado almacenados de la instalación anterior y se volverá a comprobar las veces que ha entrado, si entra más de 3 veces no dejará que vaya a la pantalla azul.

- Es decir, en nuestra base de datos quedará registrado el DeviceId del usuario que instale y ejecute al menos una vez la aplicación.

_________________________________

 

- 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