|     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

____________________________

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

p390_usuario_clave.aia

- En el tutorial 326.- Listado de usuarios y claves en un archivo. App inventor 2. vimos como guardar el nombre y la clave de los usuarios en un archivo y luego consultarlo para ver si está autentificado.

- Ahora vamos a registrar a usuarios con su nombre y clave. Guardaremos esos datos en una base de datos MySQL para registrar a los usuarios.

- Los usuarios registrados podrán escribir su nombre y clave y podrán entrar en la aplicación.

- Para ello se comprobará si ese Nombre existe con esa Clave.

- Se trata que el usuario escribirá su Nombre y su Clave, se guardarán en una Base de datos.

- Para facilitar el código se podrá registrar el usuario con la misma clave las veces que quiera.

- Normalmente en otros códigos, si ya existe un usuario con un nombre ya registrado, no se permite repetir el nombre, pero en nuestro código si podrá repetir.

__________________________________________

- Creación de la tabla.

- En tutoriales anteriores hemos creado Bases de datos común llamada u798509677_comun en donde estamos creando todas las tablas de este tutorial.

- Vamos a crear otra tabla, esta vez llamada usuarios_datos, como se ve en la imagen de abajo.

- La forma de crear una tabla la vimos en el tutorial 317_hosting_gratuito_3.htm

 

tabla_usuarios_datos.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 ;

- Así que tenemos la base de datos: u798509677_comun y dentro de ella la tabla usuarios_datos, entre otras.

__________________________________________

- Diseño.

- He puesto dos Web.

- Para mayor facilidad, escribe en las Propiedades de los CampoDeTexto nombre, clave, correo como ves en la imagen, de esta manera es más fácil hacer las pruebas y no tener que estar continuamente escribiendo.

__________________________________________

- Bloques.

----------------------------
- El Botón1, lo utilizamos para insertar los datos en la base de datos.

- Llama al código PHP que está en... http://kio4.esy.es/usuarios_datos.php

- Se toman los datos de Nombre, Clave y Correo y se añade a la página usuarios_datos.php

- Se INSERTARÁN los datos en la base de datos u798509677_comun y su tabla usuarios_datos, mediante código PHP

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

- El Botón2, lo utilizamos para comprobar si el nombre y clave existen en la base de datos.

- Llama al código PHP que está en... http://kio4.esy.es/usuarios_conecta.php?

- Se toman los datos de Nombre y Clave y se añade a la página usuarios_conecta.php

- Se SELECCIONARÁ y comprobará si hay líneas en la base de datos que contengan ese Nombre y Clave.

- En caso que las haya, enviará la palabra: echo "REGISTRADO";

- Si llega la palabra "REGISTRADO", entrará en otra pantalla llamada aplicacion.

- He puesto el Bloque de recortar, porque el REGISTRADO puede venir con espacios al principo o final.

-------------------------------------------------------------------------------
- IMPORTANTE.

- Fíjate que en el Botón1, ponemos http://kio4.esy.es/usuarios_datos.php

- No termina en interrogación ?

- Luego ponemos el Bloque de PublicarTexto.

- En el código PHP de http://kio4.esy.es/usuarios_datos.php

- Observaremos que tomamos los datos mediante $_POST

$datos=$_POST;

$Nombre=$datos['Nombre'];
$Clave=$datos['Clave'];
$Correo=$datos['Correo'];

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

- En cambio, en el Botón2, ponemos http://kio4.esy.es/usuarios_conecta.php?

- Termina en interrogación ?

- No ponemos el Bloque de PublicarTexto.

- En el código PHP de http://kio4.esy.es/usuarios_conecta.php?

- Observamos que tomamos los datos mediante $_GET

$datos=$_GET;

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

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

- Es decir, según pongamos o no la interrogación y el Bloque PublicarTexto, en el código PHP obtendremos los damos mediante $_POST o $_GET

- Parece que funciona mejor el $_GET

- 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`

 

__________________________________________

- Diseño y Bloques.

- Esta sería la ventana llamada aplicación que se abriría cuando el usuario se identifique con su nombre y clave correctamente.

__________________________________________

- Códigos PHP.

usuarios_datos.php
<?php
// Juan Antonio Villalpando.
// KIO4.COM
$datos=$_POST;

$Nombre=$datos['Nombre'];
$Clave=$datos['Clave'];
$Correo=$datos['Correo'];
if (isset($Nombre) ) {

///////////////////////////////// CORREO //////////////////////////////// 

$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 ///////////////////////////////

///////////////////////// INSERCIÓN EN LA BASE DE DATOS DE NOMBRE Y CLAVE ///////////////////////////////
// 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); // 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); } ?>

 

usuarios_conecta.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);

// 3.- COMPROBAR SI EXISTE ESA PAREJA DE NOMBRE - CLAVE
$datos=$_GET;

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

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

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

?>

__________________________________________

- Comentarios.

- El archivo registra_usuario.php

- Toma los datos mediante $datos=$_POST;

- Conecta con la base de datos.

- Envía un correo. Esta parte de envío de correo no funciona en algunos servidores web gratuitos.

- INSERTA

mysql_query ("INSERT INTO registrados (nombre, clave, correo, fechahora, ip) VALUES ('$Nombre', '$Clave', '$Correo', '$fechahora','$TuIP')");

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

- El archivo registra_conecta.php

- Conecta con la base de datos.

- Toma los datos mediante $datos=$_GET;

- SELECCIONA y consulta

mysql_query("SELECT nombre,clave FROM `registrados` WHERE `nombre`='$Nombre' AND `clave`='$Clave' ");

- Cuenta cuántas líneas hay con esa pareja de Nombre y Clave. $count = mysql_num_rows($res);

- Si hay 1 línea o más, if( $count >= 1 )

- Significa que está REGISTRADO

echo 'REGISTRADO';

__________________________________
- Propuesta.

- Modifíca el código para que si ya hubiera un usuario con ese nombre, enviará un mensaje diciendo que escriba otro.

- Este sería el código para que no se guarde nombres de usuarios repetidos.

- He modificado el código del Botón1, he quitado el Bloque de PublicarTexto, le he puesto interrogación:

http://kio4.esy.es/usuarios_datos_norepite.php?

- En el código PHP he puesto $datos = $_GET;

- Es una mezcla entre los dos códigos que hemos visto anteriormente.

- Consulta si hay alguna línea que contiene ese nombre, y en caso que no la haya agrega al usuario.

__________________________________________

- Diseño.

p390_usuario_clave_2.aia

 

usuarios_datos_norepite.php
<?php
// Juan Antonio Villalpando.
// KIO4.COM
$datos=$_GET;

$Nombre=$datos['Nombre'];
$Clave=$datos['Clave'];
$Correo=$datos['Correo'];
if (isset($Nombre) ) {

///////////////////////// INSERCIÓN EN LA BASE DE DATOS DE NOMBRE Y CLAVE  ///////////////////////////////
// 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);

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

$res=mysqli_query($link, "SELECT nombre FROM `usuarios_datos` WHERE `nombre`='$Nombre' ");
  
  $row=mysqli_fetch_array($res);
  
  $count = mysqli_num_rows($res);
  if( $count >= 1  ) { // Si hay 1 o más Juan, No se debe guardar otro Juan.
   echo 'Ese nombre de usuario ya existe.';
  } else {

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

  }

?>

__________________________________________

- Más comentarios acerca de POST y GET.

- Comento dos maneras de enviar los datos al servidor para alimentar al código PHP.

- Una es la que hemos visto. Ponemos Web1.Url = http://androide.net23.net/nombre_clave_guardar.php

- Luego el Bloque PublicarTexto con los datos.

- En el código PHP tomaríamos los datos mediante: $_POST;

$datos=$_POST;
$Nombre=$datos['Nombre'];
$Clave=$datos['Clave'];

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

- Pues bien, hay otra manera que puede resultar mejor que esta.

- Ponemos en la Web1.Url = http://androide.net23.net/nombre_clave_guardar.php?

- Terminado en interrogación ?.

- Quitamos el Bloque PublicarTexto

- Ponemos los datos junto con la dirección anterior en el Web1.Url

- En el código PHP tomaríamos los datos mediante: $_GET;

$datos=$_GET;
$Nombre=$datos['Nombre'];
$Clave=$datos['Clave'];

______________________________________________________________________

- Aquí lo explico mejor. Fíjate las dos maneras de poner la información en el Botón1 y las maneras de recibirlos en el código PHP.


__________________________________

 

- 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