SlideShare ist ein Scribd-Unternehmen logo
1 von 7
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

Weitere ähnliche Inhalte

Was ist angesagt?

Guía práctica desarrollo web con php 5 y my sql
Guía práctica desarrollo web con php 5 y my sqlGuía práctica desarrollo web con php 5 y my sql
Guía práctica desarrollo web con php 5 y my sqlJesus Machicado Gomez
 
Curso Drupal. Creacion de modulos en Drupal
Curso Drupal. Creacion de modulos en DrupalCurso Drupal. Creacion de modulos en Drupal
Curso Drupal. Creacion de modulos en DrupalMediaglobe Innova
 
Servlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLServlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLjubacalo
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con phpFer Nando
 
Php excel
Php excelPhp excel
Php excelpcuseth
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryJavier P.
 
Jsp directiva page
Jsp directiva pageJsp directiva page
Jsp directiva pagejubacalo
 
Acceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletAcceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletjubacalo
 
82 Php. Ver Y Modificar Estructuras
82 Php. Ver Y Modificar Estructuras82 Php. Ver Y Modificar Estructuras
82 Php. Ver Y Modificar EstructurasJosé M. Padilla
 
Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryJavier P.
 
Twig, el nuevo motor de plantillas de Drupal 8
Twig, el nuevo motor de plantillas de Drupal 8Twig, el nuevo motor de plantillas de Drupal 8
Twig, el nuevo motor de plantillas de Drupal 8Javier Eguiluz
 
Find File Servlet DB
Find File Servlet DBFind File Servlet DB
Find File Servlet DBjubacalo
 
Introducción a recaptcha 3.0
Introducción a recaptcha 3.0Introducción a recaptcha 3.0
Introducción a recaptcha 3.0Jesús Ayús
 

Was ist angesagt? (19)

Guía práctica desarrollo web con php 5 y my sql
Guía práctica desarrollo web con php 5 y my sqlGuía práctica desarrollo web con php 5 y my sql
Guía práctica desarrollo web con php 5 y my sql
 
Curso Drupal. Creacion de modulos en Drupal
Curso Drupal. Creacion de modulos en DrupalCurso Drupal. Creacion de modulos en Drupal
Curso Drupal. Creacion de modulos en Drupal
 
Php
PhpPhp
Php
 
Servlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLServlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTML
 
Cómo domar SonataAdminBundle
Cómo domar SonataAdminBundleCómo domar SonataAdminBundle
Cómo domar SonataAdminBundle
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con php
 
Php excel
Php excelPhp excel
Php excel
 
Ajax
AjaxAjax
Ajax
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
Jsp directiva page
Jsp directiva pageJsp directiva page
Jsp directiva page
 
Acceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletAcceso a BBDD mediante un servlet
Acceso a BBDD mediante un servlet
 
82 Php. Ver Y Modificar Estructuras
82 Php. Ver Y Modificar Estructuras82 Php. Ver Y Modificar Estructuras
82 Php. Ver Y Modificar Estructuras
 
Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQuery
 
Doctrine2 sf2Vigo
Doctrine2 sf2VigoDoctrine2 sf2Vigo
Doctrine2 sf2Vigo
 
Tarea 2 y_3
Tarea 2 y_3Tarea 2 y_3
Tarea 2 y_3
 
Consultas
ConsultasConsultas
Consultas
 
Twig, el nuevo motor de plantillas de Drupal 8
Twig, el nuevo motor de plantillas de Drupal 8Twig, el nuevo motor de plantillas de Drupal 8
Twig, el nuevo motor de plantillas de Drupal 8
 
Find File Servlet DB
Find File Servlet DBFind File Servlet DB
Find File Servlet DB
 
Introducción a recaptcha 3.0
Introducción a recaptcha 3.0Introducción a recaptcha 3.0
Introducción a recaptcha 3.0
 

Andere mochten auch

Programacion de SQL y MySQL
Programacion de SQL y MySQLProgramacion de SQL y MySQL
Programacion de SQL y MySQLhuritomo1998
 
Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2Wilian
 
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+Victor Aravena
 
Curso TIC de PHP y MSQL
Curso TIC de PHP y MSQLCurso TIC de PHP y MSQL
Curso TIC de PHP y MSQLWilian
 
desarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqldesarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqlJuan Timoteo Cori
 
2685008 taller-java
2685008 taller-java2685008 taller-java
2685008 taller-javajairjulian
 
Guardar en base de datos MySQL desde HTML con PHP.
Guardar en base de datos MySQL desde HTML con PHP.Guardar en base de datos MySQL desde HTML con PHP.
Guardar en base de datos MySQL desde HTML con PHP.yanburbano
 
Bases de datos mysql
Bases de datos mysqlBases de datos mysql
Bases de datos mysqlJared Torres
 
Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Wilian
 
Uso de comandos insert, update y delete en bases de datos de sql server
Uso de comandos insert, update y delete en bases de datos de sql serverUso de comandos insert, update y delete en bases de datos de sql server
Uso de comandos insert, update y delete en bases de datos de sql serverJulio Guevara
 

Andere mochten auch (20)

PHP MySql FIEI - UNFV Clase05
PHP MySql FIEI - UNFV Clase05PHP MySql FIEI - UNFV Clase05
PHP MySql FIEI - UNFV Clase05
 
Mysql
MysqlMysql
Mysql
 
PHP MySql - FIEI - UNFV Clase07
PHP MySql - FIEI - UNFV Clase07PHP MySql - FIEI - UNFV Clase07
PHP MySql - FIEI - UNFV Clase07
 
PHP MySql - FIEI - UNFVClase06
PHP MySql - FIEI - UNFVClase06PHP MySql - FIEI - UNFVClase06
PHP MySql - FIEI - UNFVClase06
 
Programacion de SQL y MySQL
Programacion de SQL y MySQLProgramacion de SQL y MySQL
Programacion de SQL y MySQL
 
PPH MySql - FIEI - UNFV Clase02
PPH MySql - FIEI - UNFV Clase02PPH MySql - FIEI - UNFV Clase02
PPH MySql - FIEI - UNFV Clase02
 
Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2
 
PHP MySql - FIEI - UNFV Clase03
PHP MySql - FIEI - UNFV Clase03PHP MySql - FIEI - UNFV Clase03
PHP MySql - FIEI - UNFV Clase03
 
PHP MYSQL - FIEI-UNFV Clase 01
PHP MYSQL - FIEI-UNFV Clase 01PHP MYSQL - FIEI-UNFV Clase 01
PHP MYSQL - FIEI-UNFV Clase 01
 
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
 
PHP Y MYSQL
PHP Y MYSQLPHP Y MYSQL
PHP Y MYSQL
 
Curso TIC de PHP y MSQL
Curso TIC de PHP y MSQLCurso TIC de PHP y MSQL
Curso TIC de PHP y MSQL
 
desarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqldesarrolo de sitios web php y mysql
desarrolo de sitios web php y mysql
 
2685008 taller-java
2685008 taller-java2685008 taller-java
2685008 taller-java
 
Php.y.my sql
Php.y.my sqlPhp.y.my sql
Php.y.my sql
 
Guardar en base de datos MySQL desde HTML con PHP.
Guardar en base de datos MySQL desde HTML con PHP.Guardar en base de datos MySQL desde HTML con PHP.
Guardar en base de datos MySQL desde HTML con PHP.
 
Tema4[php]
Tema4[php]Tema4[php]
Tema4[php]
 
Bases de datos mysql
Bases de datos mysqlBases de datos mysql
Bases de datos mysql
 
Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3
 
Uso de comandos insert, update y delete en bases de datos de sql server
Uso de comandos insert, update y delete en bases de datos de sql serverUso de comandos insert, update y delete en bases de datos de sql server
Uso de comandos insert, update y delete en bases de datos de sql server
 

Ähnlich wie Ejemplos de php_mysql

Ähnlich wie Ejemplos de php_mysql (20)

Guia N5 Proyectos Web Consultas Php Y My Sql
Guia N5   Proyectos Web   Consultas Php Y My SqlGuia N5   Proyectos Web   Consultas Php Y My Sql
Guia N5 Proyectos Web Consultas Php Y My Sql
 
Apuntes php
Apuntes phpApuntes php
Apuntes php
 
PHP - MYSQL
PHP - MYSQLPHP - MYSQL
PHP - MYSQL
 
Funcionesphp
FuncionesphpFuncionesphp
Funcionesphp
 
EXAMEN
EXAMENEXAMEN
EXAMEN
 
Conexion Entre Php Y Mysqul
Conexion Entre Php Y MysqulConexion Entre Php Y Mysqul
Conexion Entre Php Y Mysqul
 
tutorial de slide.com
tutorial de slide.comtutorial de slide.com
tutorial de slide.com
 
Base de datos dinamicas
Base de datos dinamicasBase de datos dinamicas
Base de datos dinamicas
 
Php y my sql con manejo de sesiones
Php y my sql con manejo de sesionesPhp y my sql con manejo de sesiones
Php y my sql con manejo de sesiones
 
Mysql adodb pdf_php
Mysql adodb pdf_phpMysql adodb pdf_php
Mysql adodb pdf_php
 
Base de Datos por Gustavo V.M
Base de Datos por Gustavo V.MBase de Datos por Gustavo V.M
Base de Datos por Gustavo V.M
 
Curso php dia4
Curso php dia4Curso php dia4
Curso php dia4
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
I2 u4
I2 u4I2 u4
I2 u4
 
Expo Conexion Mysql.pptx
Expo Conexion Mysql.pptxExpo Conexion Mysql.pptx
Expo Conexion Mysql.pptx
 
Cuarta 1
Cuarta 1Cuarta 1
Cuarta 1
 
php-mysql
php-mysqlphp-mysql
php-mysql
 
Cuarta 1
Cuarta 1Cuarta 1
Cuarta 1
 
Arrays en PHP y Funciones de Mysql
Arrays en PHP y Funciones de MysqlArrays en PHP y Funciones de Mysql
Arrays en PHP y Funciones de Mysql
 
Php y MySQL
Php y MySQLPhp y MySQL
Php y MySQL
 

Mehr von I LG

Presentación orientacion momae y aplof 1
Presentación orientacion momae y aplof 1Presentación orientacion momae y aplof 1
Presentación orientacion momae y aplof 1I LG
 
Modulo hlc
Modulo hlcModulo hlc
Modulo hlcI LG
 
Modulo apw
Modulo apwModulo apw
Modulo apwI LG
 
Sistemas operativos monopuesto
Sistemas operativos monopuestoSistemas operativos monopuesto
Sistemas operativos monopuestoI LG
 
Sistemas operativos en red
Sistemas operativos en redSistemas operativos en red
Sistemas operativos en redI LG
 
Servicios en red
Servicios en redServicios en red
Servicios en redI LG
 
Seguridad
SeguridadSeguridad
SeguridadI LG
 
Modulo reloc
Modulo relocModulo reloc
Modulo relocI LG
 
Apuntes php mysql
Apuntes php mysqlApuntes php mysql
Apuntes php mysqlI LG
 
Capitulo5 sql manejo-bd
Capitulo5 sql manejo-bdCapitulo5 sql manejo-bd
Capitulo5 sql manejo-bdI LG
 
Capitulo4 sql definicion-bd
Capitulo4 sql definicion-bdCapitulo4 sql definicion-bd
Capitulo4 sql definicion-bdI LG
 
Capitulo4 sql definicion-bd
Capitulo4 sql definicion-bdCapitulo4 sql definicion-bd
Capitulo4 sql definicion-bdI LG
 
Capitulo3 sql consultas
Capitulo3 sql consultasCapitulo3 sql consultas
Capitulo3 sql consultasI LG
 
Capitulo2 sql bd-relacionales
Capitulo2 sql bd-relacionalesCapitulo2 sql bd-relacionales
Capitulo2 sql bd-relacionalesI LG
 
Capitulo1 sql (conceptos-basicos)
Capitulo1 sql (conceptos-basicos)Capitulo1 sql (conceptos-basicos)
Capitulo1 sql (conceptos-basicos)I LG
 
Ud5 reloc-admin centralizadared
Ud5 reloc-admin centralizadaredUd5 reloc-admin centralizadared
Ud5 reloc-admin centralizadaredI LG
 
Ud5 reloc-mantenimiento sistema
Ud5 reloc-mantenimiento sistemaUd5 reloc-mantenimiento sistema
Ud5 reloc-mantenimiento sistemaI LG
 
Curso joomla
Curso joomlaCurso joomla
Curso joomlaI LG
 

Mehr von I LG (18)

Presentación orientacion momae y aplof 1
Presentación orientacion momae y aplof 1Presentación orientacion momae y aplof 1
Presentación orientacion momae y aplof 1
 
Modulo hlc
Modulo hlcModulo hlc
Modulo hlc
 
Modulo apw
Modulo apwModulo apw
Modulo apw
 
Sistemas operativos monopuesto
Sistemas operativos monopuestoSistemas operativos monopuesto
Sistemas operativos monopuesto
 
Sistemas operativos en red
Sistemas operativos en redSistemas operativos en red
Sistemas operativos en red
 
Servicios en red
Servicios en redServicios en red
Servicios en red
 
Seguridad
SeguridadSeguridad
Seguridad
 
Modulo reloc
Modulo relocModulo reloc
Modulo reloc
 
Apuntes php mysql
Apuntes php mysqlApuntes php mysql
Apuntes php mysql
 
Capitulo5 sql manejo-bd
Capitulo5 sql manejo-bdCapitulo5 sql manejo-bd
Capitulo5 sql manejo-bd
 
Capitulo4 sql definicion-bd
Capitulo4 sql definicion-bdCapitulo4 sql definicion-bd
Capitulo4 sql definicion-bd
 
Capitulo4 sql definicion-bd
Capitulo4 sql definicion-bdCapitulo4 sql definicion-bd
Capitulo4 sql definicion-bd
 
Capitulo3 sql consultas
Capitulo3 sql consultasCapitulo3 sql consultas
Capitulo3 sql consultas
 
Capitulo2 sql bd-relacionales
Capitulo2 sql bd-relacionalesCapitulo2 sql bd-relacionales
Capitulo2 sql bd-relacionales
 
Capitulo1 sql (conceptos-basicos)
Capitulo1 sql (conceptos-basicos)Capitulo1 sql (conceptos-basicos)
Capitulo1 sql (conceptos-basicos)
 
Ud5 reloc-admin centralizadared
Ud5 reloc-admin centralizadaredUd5 reloc-admin centralizadared
Ud5 reloc-admin centralizadared
 
Ud5 reloc-mantenimiento sistema
Ud5 reloc-mantenimiento sistemaUd5 reloc-mantenimiento sistema
Ud5 reloc-mantenimiento sistema
 
Curso joomla
Curso joomlaCurso joomla
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