SlideShare una empresa de Scribd logo
Curso PHP Thales-CICA

Ejemplos prácticos.

Login sencillo.

En este ejemplo crearemos una pequeña aplicación de lo que comunmente
recibe el nombre de módulo de login.

Será una aplicación insegura y muy sencilla, en temas posteriores la haremos
segura y la iremos complicando. Ahora el objetivo básico es ver los pasos para
la creación de este login.

Pasos:   - Diseño de la base de datos para el login.
         - Implementación de la tabla en SQL.
         - Creación del formulario para la entrada de los datos.
         - Realización del código que tratará la información recibida.

Paso 1. Diseño de la base de datos para el login.

En nuestro caso se trata de una aplicación sencilla, simplemente
necesitaremos una tabla con los campos usuario y clave a la que llamaremos
login.


Paso 2. Implementación de la tabla en SQL.

CREATE TABLE login ( usuario VARCHAR( 20 ) NOT NULL ,
                     clave VARCHAR( 20 ) NOT NUL );




y para hacer las pruebas añado un par de entradas a la tabla:

INSERT INTO login ( usuario , clave ) VALUES ( 'prueba', '123');
INSERT INTO login ( usuario , clave ) VALUES( 'prueba2', '123456' );




                                                                             1
Curso PHP Thales-CICA


Paso3. Creación del formulario para la entrada de los datos.

Será un formulario sencillo. Pasaremos los datos con POST y trataremos la
información en la pagina tratar.php.

El formulario será mostrado en la pagina login.php que contendrá el siguiente
codigo:

<html>
<title>Formulario de Login</title>
</head>
<body>
FORMULARIO DE LOGIN:
<form method="POST" action="tratar.php">
 <table>
  <tr>
    <td width="8%">Usuario:</td>
    <td width="92%"><input type="text" name="user" size="20"></td>
  </tr>
  <tr>
    <td width="8%">Clave:</td>
    <td width="92%"><input type="text" name="pass" size="20"></td>
  </tr>
 </table>
 <p><input type="submit" value="Enviar" name="B1">
      <input type="reset" value="Limpiar" name="B2"></p>
</form>
</body>
</html>

Paso 4. Realización del código que tratará la información recibida.

Lo primero que debermos hacer es meter la información del formulario en
variables para facilitar el manejo de los datos:

$user = $_POST['user'];     // Leo de la variable $_POST y voy guardando
$pass = $_POST['pass'];

Ahora $user y $pass contienen los datos, tendremos que comprobar ahora si
esos datos son correctos, es decir si existe en la tabla un usuario con ese
nombre y esa clave.

Lo que hacemos es hacer un select en la tabla con esos datos, si el resultado
del select es vacío, significa que no se ha encontrado ninguna entrada en la
tabla y por tanto esos datos son incorrectos. Si por el contrario obtenemos
una entrada significa que ese usuario es correcto.



                                                                            2
Curso PHP Thales-CICA


La sentencia sql sería:

$sql = "SELECT * FROM login WHERE usuario LIKE 'prueba'
        AND clave LIKE '123' ";

Dependediendo del resultado obtenido indicaremos al usuario si el proceso de
login fue correcto o no.

Veamos ta el código completo del tratar.php

<?

// Conexión previa con la base de datos //

$host = "localhost";
$usuario = "prueba";
$password = "pruebita";
$bd = "aplicacion";
if (! $link = mysql_connect($host,$usuario,$password) )
   {
      echo "Error conectando a la base de datos.";
      exit();
   }
   if (!mysql_select_db($bd,$link) )
   {
      echo "Error seleccionando la base de datos.";
      exit();
   }

/* Nota: Tendreis que poner el host, user , pass y bd
         de vuestro servidor de base de datos             */

$user = $_POST['user'];
$pass = $_POST['pass'];

$sql = " SELECT * FROM login WHERE usuario LIKE '".$user."' ";
$sql .= " AND clave LIKE '".$pass."' ";

$result = mysql_query($sql,$link);

if ( !$result )  // $result == null || $result == false , ojo false sin comillas
 {
  echo "Se produjo un error: ".mysql_error();
  exit();
 }




                                                                                   3
Curso PHP Thales-CICA


else
 {
   if ( mysql_num_rows($result) > 0 )
    {
     $row = mysql_fetch_array($result);
     echo "Bienvenido ".$row['usuario'];   // Con $row['usuario'] accedo al
    }                                      // campo user de la tabla.


/* ...... Alternativa ......

     $enc = false;
     while ($row = mysql_fetch_array($result) )
     {
      $u = $row['usuario'];              // Con $row['usuario'] accedo al
      $enc = true;                       // campo user de la tabla.
     }

     if ($enc)
      {
            echo "Bienvenido ".$u;
      }
*/

     else
      {
       echo "Usuario Incorrecto";
       echo "<br><br><a href='login.php'>Volver</a>";
      }
}

?>


NOTA IMPORTANTE

$host = "localhost";
$usuario = "prueba";
$password = "pruebita";
$bd = "aplicacion";

El usuario prueba con clave pruebita es un usuario, que habremos creado con
el phpmyadmin, que tendrá privilegios sobre la base de datos aplicacion, que
es la que contiene las diferentes tablas.

No confundir este usuario con los posibles usuarios de la aplicación,
prueba/pruebita es un administrador de la base de datos aplicación.



                                                                              4
Curso PHP Thales-CICA


Ejercicios resueltos.
Ejemplo 1. Función que pasado un $link y un nombre de la base de
           datos detecte si esa base de datos existe o no.

function detecta_bd ($link,$nombre_bd)
{

    $result= mysql_list_dbs($link); // Consulto las bases de datos
    if ( $result == false)
    {
      echo "Se produjo un error: ".mysql_error();
      exit();
    }
    else
    {

    while ( $row = mysql_fetch_array($result) ) // Meto en una array las bd
    {
    $lista_bd[]=$row['Database'];
    }

    return   in_array($nombre_bd,$lista_bd) ; // Devuelve true si la base de datos
}                                            // se encuentra en el sistema


Importante

•     En este ejercicio devolvemos true si se encuentra la base de datos pasada
      por parametro en el servidor y falso en caso contrario.

•     En caso de que la operación mysql_list_dbs($link) tenga un error,
      informaremos de que hubo un error y saldremos de la ejecución con el
      comando exit() puesto que no dispongo de la información necesaria, en
      este caso la de los nombres de las bases de datos en el sistema y por tanto
      no podré devolver ni cierto ni falso.

•     Para convertir un resultado en una array utilizo el siguiente código:

       while ( $row = mysql_fetch_array($result) )
     {
      $lista_bd[]=$row['Database'];
     }

     Con row['Database'] accedo al campo Database de cada fila del resultado, el
     cual voy añadiendo dinamicamente al array $lista_db[]



                                                                                 5
Curso PHP Thales-CICA


Ejemplo2 . Función que imprime la lista de las bases de datos
           disponibles.

function listar_db($link)
{
 $result = mysql_query('SHOW DATABASES;',$link);

if ($result == false)                // Por si se producen errores en la query
{
  echo "Se produjo un error: ".mysql_error();
}
else
{
  while( $data = mysql_fetch_row($result) )
  {
   $array[] = $data[0]; // Va añadiendo las entradas del resultado a la array
  }

    $tam = sizeof($array);          // En array tendré ahora todas las entradas

    if ( $tam == 0)
    {
      echo "No se encontraron bases de datos en el servidor";
    }

  else                              // Imprimo las bases de datos encontradas
   {
    echo "Se encontraron ".$tam." bases de datos en el servidor<br>";
    for( $i = 0 ; $i < $tam ; $i++)
    {
     echo $array[$i]."<br>";
    }
   }
}
}

Importante:

•    Comprobar si el query se hizo correctamente y en caso contrario
     dvuelve un false, indicar que error se produjo con la función
     myqsl_error().

•    Para convertir un resultado en una array utilizo el siguiente código:

     while( $data = mysql_fetch_row($result) )
     {
     $array[] = $data[0]; // Va añadiendo las entradas del resultado a la array
     }

                                                                                6
Curso PHP Thales-CICA


    Cada fila de resultado es introducida dinamicamente en la array
    Comprobar la importancia del [] del array y del [0] del data.

•   Para recorrer un array simplemente calculo su tamaño con la función sizeof
    y utilizo un sencillo bucle for. También podría haber utilizado lo siguiente:

    echo current($array)."<br>";
    while ( next($array) )
     {
       echo current($array)."<br>";
     }

    y no hubiese necesitado conocer el tamaño del array.

    Notese que ya comprobé que tiene al menos un elemento, por lo que el
    primer current($array) delante del while no daría error.


    También podría hacerlo empezando desde el final:

    end ($array);       // sitúo el puntero en el ultimo elemento del array
    echo current($array)."<br>";
    while ( prev ( $array) )
    {
     echo current($array)."<br>";
    }




                                                                               7

Más contenido relacionado

DOCX
Informe grupal f_arinango_ cuenca
RTF
Wp config.php
PPT
Funcionesphpmysql
PDF
Manual de programador sistema experto bovino online
PDF
Mantenimiento de Usuarios usando MVC ver1
PPT
Gustavo php
PDF
89 Php. Tablas Inno Db
DOC
Conexión a postgres desde
Informe grupal f_arinango_ cuenca
Wp config.php
Funcionesphpmysql
Manual de programador sistema experto bovino online
Mantenimiento de Usuarios usando MVC ver1
Gustavo php
89 Php. Tablas Inno Db
Conexión a postgres desde

La actualidad más candente (19)

DOCX
Guía práctica desarrollo web con php 5 y my sql
PDF
Curso Drupal. Creacion de modulos en Drupal
DOC
Php
PDF
Servlets que manejan datos de formularios HTML
PDF
Cómo domar SonataAdminBundle
PDF
Intro aplicaciones web con php
DOCX
Php excel
PPT
ODP
Desarrollo de aplicaciones web usando Catalyst y jQuery
PDF
Jsp directiva page
PDF
Acceso a BBDD mediante un servlet
PDF
82 Php. Ver Y Modificar Estructuras
ODP
Desarrollando aplicaciones web usando Catalyst y jQuery
PDF
Doctrine2 sf2Vigo
PPTX
Tarea 2 y_3
PPT
PDF
Twig, el nuevo motor de plantillas de Drupal 8
PDF
Find File Servlet DB
PDF
Introducción a recaptcha 3.0
Guía práctica desarrollo web con php 5 y my sql
Curso Drupal. Creacion de modulos en Drupal
Php
Servlets que manejan datos de formularios HTML
Cómo domar SonataAdminBundle
Intro aplicaciones web con php
Php excel
Desarrollo de aplicaciones web usando Catalyst y jQuery
Jsp directiva page
Acceso a BBDD mediante un servlet
82 Php. Ver Y Modificar Estructuras
Desarrollando aplicaciones web usando Catalyst y jQuery
Doctrine2 sf2Vigo
Tarea 2 y_3
Twig, el nuevo motor de plantillas de Drupal 8
Find File Servlet DB
Introducción a recaptcha 3.0
Publicidad

Destacado (20)

PPTX
PHP MySql FIEI - UNFV Clase05
PPT
PPTX
PHP MySql - FIEI - UNFV Clase07
PPTX
PHP MySql - FIEI - UNFVClase06
PPTX
Programacion de SQL y MySQL
PPTX
PPH MySql - FIEI - UNFV Clase02
PPT
Curso TIC de PHP y MSQL Parte 2
PPTX
PHP MySql - FIEI - UNFV Clase03
PPTX
PHP MYSQL - FIEI-UNFV Clase 01
PDF
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
PPT
PHP Y MYSQL
PPT
Curso TIC de PHP y MSQL
PDF
desarrolo de sitios web php y mysql
PDF
2685008 taller-java
PPT
Php.y.my sql
PDF
Guardar en base de datos MySQL desde HTML con PHP.
PPT
Tema4[php]
PPTX
Bases de datos mysql
PPT
Curso TIC de PHP y MSQL Parte 3
PPTX
Uso de comandos insert, update y delete en bases de datos de sql server
PHP MySql FIEI - UNFV Clase05
PHP MySql - FIEI - UNFV Clase07
PHP MySql - FIEI - UNFVClase06
Programacion de SQL y MySQL
PPH MySql - FIEI - UNFV Clase02
Curso TIC de PHP y MSQL Parte 2
PHP MySql - FIEI - UNFV Clase03
PHP MYSQL - FIEI-UNFV Clase 01
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
PHP Y MYSQL
Curso TIC de PHP y MSQL
desarrolo de sitios web php y mysql
2685008 taller-java
Php.y.my sql
Guardar en base de datos MySQL desde HTML con PHP.
Tema4[php]
Bases de datos mysql
Curso TIC de PHP y MSQL Parte 3
Uso de comandos insert, update y delete en bases de datos de sql server
Publicidad

Similar a Ejemplos de php_mysql (20)

DOCX
Tarea 4.docx siguientes conceptos de mys
PDF
Guia N5 Proyectos Web Consultas Php Y My Sql
DOC
DOC
PHP - MYSQL
PPT
Funcionesphp
PPT
Conexion Entre Php Y Mysqul
PPT
tutorial de slide.com
PPT
Base de datos dinamicas
PDF
-.-Manual Laravel bootcamp blablabla-.-.
TXT
Php y my sql con manejo de sesiones
DOCX
Desarrollar los siguientes programas php
PDF
PPT
Base de Datos por Gustavo V.M
PPTX
Curso php dia4
ODP
Desarrollo de aplicaciones web usando Catalyst y jQuery
DOCX
PDF
guia1 para aprener laravel desde cero con ejemplos practico
PPTX
Expo Conexion Mysql.pptx
PPTX
Tarea 4.docx siguientes conceptos de mys
Guia N5 Proyectos Web Consultas Php Y My Sql
PHP - MYSQL
Funcionesphp
Conexion Entre Php Y Mysqul
tutorial de slide.com
Base de datos dinamicas
-.-Manual Laravel bootcamp blablabla-.-.
Php y my sql con manejo de sesiones
Desarrollar los siguientes programas php
Base de Datos por Gustavo V.M
Curso php dia4
Desarrollo de aplicaciones web usando Catalyst y jQuery
guia1 para aprener laravel desde cero con ejemplos practico
Expo Conexion Mysql.pptx

Más de I LG (18)

ODP
Presentación orientacion momae y aplof 1
ODP
Modulo hlc
ODP
Modulo apw
PPT
Sistemas operativos monopuesto
PPT
Sistemas operativos en red
ODP
Servicios en red
ODP
Seguridad
ODP
Modulo reloc
PDF
Apuntes php mysql
PDF
Capitulo5 sql manejo-bd
PDF
Capitulo4 sql definicion-bd
PDF
Capitulo4 sql definicion-bd
PDF
Capitulo3 sql consultas
PDF
Capitulo2 sql bd-relacionales
PDF
Capitulo1 sql (conceptos-basicos)
PDF
Ud5 reloc-admin centralizadared
PDF
Ud5 reloc-mantenimiento sistema
PDF
Curso joomla
Presentación orientacion momae y aplof 1
Modulo hlc
Modulo apw
Sistemas operativos monopuesto
Sistemas operativos en red
Servicios en red
Seguridad
Modulo reloc
Apuntes php mysql
Capitulo5 sql manejo-bd
Capitulo4 sql definicion-bd
Capitulo4 sql definicion-bd
Capitulo3 sql consultas
Capitulo2 sql bd-relacionales
Capitulo1 sql (conceptos-basicos)
Ud5 reloc-admin centralizadared
Ud5 reloc-mantenimiento sistema
Curso joomla

Ejemplos de php_mysql

  • 1. Curso PHP Thales-CICA Ejemplos prácticos. Login sencillo. En este ejemplo crearemos una pequeña aplicación de lo que comunmente recibe el nombre de módulo de login. Será una aplicación insegura y muy sencilla, en temas posteriores la haremos segura y la iremos complicando. Ahora el objetivo básico es ver los pasos para la creación de este login. Pasos: - Diseño de la base de datos para el login. - Implementación de la tabla en SQL. - Creación del formulario para la entrada de los datos. - Realización del código que tratará la información recibida. Paso 1. Diseño de la base de datos para el login. En nuestro caso se trata de una aplicación sencilla, simplemente necesitaremos una tabla con los campos usuario y clave a la que llamaremos login. Paso 2. Implementación de la tabla en SQL. CREATE TABLE login ( usuario VARCHAR( 20 ) NOT NULL , clave VARCHAR( 20 ) NOT NUL ); y para hacer las pruebas añado un par de entradas a la tabla: INSERT INTO login ( usuario , clave ) VALUES ( 'prueba', '123'); INSERT INTO login ( usuario , clave ) VALUES( 'prueba2', '123456' ); 1
  • 2. Curso PHP Thales-CICA Paso3. Creación del formulario para la entrada de los datos. Será un formulario sencillo. Pasaremos los datos con POST y trataremos la información en la pagina tratar.php. El formulario será mostrado en la pagina login.php que contendrá el siguiente codigo: <html> <title>Formulario de Login</title> </head> <body> FORMULARIO DE LOGIN: <form method="POST" action="tratar.php"> <table> <tr> <td width="8%">Usuario:</td> <td width="92%"><input type="text" name="user" size="20"></td> </tr> <tr> <td width="8%">Clave:</td> <td width="92%"><input type="text" name="pass" size="20"></td> </tr> </table> <p><input type="submit" value="Enviar" name="B1"> <input type="reset" value="Limpiar" name="B2"></p> </form> </body> </html> Paso 4. Realización del código que tratará la información recibida. Lo primero que debermos hacer es meter la información del formulario en variables para facilitar el manejo de los datos: $user = $_POST['user']; // Leo de la variable $_POST y voy guardando $pass = $_POST['pass']; Ahora $user y $pass contienen los datos, tendremos que comprobar ahora si esos datos son correctos, es decir si existe en la tabla un usuario con ese nombre y esa clave. Lo que hacemos es hacer un select en la tabla con esos datos, si el resultado del select es vacío, significa que no se ha encontrado ninguna entrada en la tabla y por tanto esos datos son incorrectos. Si por el contrario obtenemos una entrada significa que ese usuario es correcto. 2
  • 3. Curso PHP Thales-CICA La sentencia sql sería: $sql = "SELECT * FROM login WHERE usuario LIKE 'prueba' AND clave LIKE '123' "; Dependediendo del resultado obtenido indicaremos al usuario si el proceso de login fue correcto o no. Veamos ta el código completo del tratar.php <? // Conexión previa con la base de datos // $host = "localhost"; $usuario = "prueba"; $password = "pruebita"; $bd = "aplicacion"; if (! $link = mysql_connect($host,$usuario,$password) ) { echo "Error conectando a la base de datos."; exit(); } if (!mysql_select_db($bd,$link) ) { echo "Error seleccionando la base de datos."; exit(); } /* Nota: Tendreis que poner el host, user , pass y bd de vuestro servidor de base de datos */ $user = $_POST['user']; $pass = $_POST['pass']; $sql = " SELECT * FROM login WHERE usuario LIKE '".$user."' "; $sql .= " AND clave LIKE '".$pass."' "; $result = mysql_query($sql,$link); if ( !$result ) // $result == null || $result == false , ojo false sin comillas { echo "Se produjo un error: ".mysql_error(); exit(); } 3
  • 4. Curso PHP Thales-CICA else { if ( mysql_num_rows($result) > 0 ) { $row = mysql_fetch_array($result); echo "Bienvenido ".$row['usuario']; // Con $row['usuario'] accedo al } // campo user de la tabla. /* ...... Alternativa ...... $enc = false; while ($row = mysql_fetch_array($result) ) { $u = $row['usuario']; // Con $row['usuario'] accedo al $enc = true; // campo user de la tabla. } if ($enc) { echo "Bienvenido ".$u; } */ else { echo "Usuario Incorrecto"; echo "<br><br><a href='login.php'>Volver</a>"; } } ?> NOTA IMPORTANTE $host = "localhost"; $usuario = "prueba"; $password = "pruebita"; $bd = "aplicacion"; El usuario prueba con clave pruebita es un usuario, que habremos creado con el phpmyadmin, que tendrá privilegios sobre la base de datos aplicacion, que es la que contiene las diferentes tablas. No confundir este usuario con los posibles usuarios de la aplicación, prueba/pruebita es un administrador de la base de datos aplicación. 4
  • 5. Curso PHP Thales-CICA Ejercicios resueltos. Ejemplo 1. Función que pasado un $link y un nombre de la base de datos detecte si esa base de datos existe o no. function detecta_bd ($link,$nombre_bd) { $result= mysql_list_dbs($link); // Consulto las bases de datos if ( $result == false) { echo "Se produjo un error: ".mysql_error(); exit(); } else { while ( $row = mysql_fetch_array($result) ) // Meto en una array las bd { $lista_bd[]=$row['Database']; } return in_array($nombre_bd,$lista_bd) ; // Devuelve true si la base de datos } // se encuentra en el sistema Importante • En este ejercicio devolvemos true si se encuentra la base de datos pasada por parametro en el servidor y falso en caso contrario. • En caso de que la operación mysql_list_dbs($link) tenga un error, informaremos de que hubo un error y saldremos de la ejecución con el comando exit() puesto que no dispongo de la información necesaria, en este caso la de los nombres de las bases de datos en el sistema y por tanto no podré devolver ni cierto ni falso. • Para convertir un resultado en una array utilizo el siguiente código: while ( $row = mysql_fetch_array($result) ) { $lista_bd[]=$row['Database']; } Con row['Database'] accedo al campo Database de cada fila del resultado, el cual voy añadiendo dinamicamente al array $lista_db[] 5
  • 6. Curso PHP Thales-CICA Ejemplo2 . Función que imprime la lista de las bases de datos disponibles. function listar_db($link) { $result = mysql_query('SHOW DATABASES;',$link); if ($result == false) // Por si se producen errores en la query { echo "Se produjo un error: ".mysql_error(); } else { while( $data = mysql_fetch_row($result) ) { $array[] = $data[0]; // Va añadiendo las entradas del resultado a la array } $tam = sizeof($array); // En array tendré ahora todas las entradas if ( $tam == 0) { echo "No se encontraron bases de datos en el servidor"; } else // Imprimo las bases de datos encontradas { echo "Se encontraron ".$tam." bases de datos en el servidor<br>"; for( $i = 0 ; $i < $tam ; $i++) { echo $array[$i]."<br>"; } } } } Importante: • Comprobar si el query se hizo correctamente y en caso contrario dvuelve un false, indicar que error se produjo con la función myqsl_error(). • Para convertir un resultado en una array utilizo el siguiente código: while( $data = mysql_fetch_row($result) ) { $array[] = $data[0]; // Va añadiendo las entradas del resultado a la array } 6
  • 7. Curso PHP Thales-CICA Cada fila de resultado es introducida dinamicamente en la array Comprobar la importancia del [] del array y del [0] del data. • Para recorrer un array simplemente calculo su tamaño con la función sizeof y utilizo un sencillo bucle for. También podría haber utilizado lo siguiente: echo current($array)."<br>"; while ( next($array) ) { echo current($array)."<br>"; } y no hubiese necesitado conocer el tamaño del array. Notese que ya comprobé que tiene al menos un elemento, por lo que el primer current($array) delante del while no daría error. También podría hacerlo empezando desde el final: end ($array); // sitúo el puntero en el ultimo elemento del array echo current($array)."<br>"; while ( prev ( $array) ) { echo current($array)."<br>"; } 7