domingo, 7 de diciembre de 2014

Ejercicios con PHP y MySQL - 1 de 2



1. Enunciados

Ejercicio 1 (fácil): Página de conexión

Cree una página login.php que contenga un área login y una zona password con un botón de tipo submit. Esta página llama a comprobar_login.php, que comprueba si el login y la contraseña se encuentran en la base de datos. Retome el ejercicio 1 del capítulo Transmitir datos de una página a otra y modifique la página verif_login.php para mostrar "login correcto" si la persona se halla en la base de datos o para que se redireccione a la página login.php en caso contrario. También debe crear una tabla inicio de sesion_password que contenga el Id, el login y la contraseña.



Ejercicio 2 (medio): Formulario de inscripción

Este ejercicio requiere buenos conocimientos en JavaScript o en HTML5.

Cree una página bienvenida.php que permita solicitar la inscripción a formación.



Todos los campos son obligatorios. El Enlace muestra un pdf que contiene las condiciones generales y es necesario haber pulsado sobre el enlace y después marcar la casilla de selección para poder enviar el formulario.

Ahora creé una página conexión.php encargada de realizar la conexión a la base de datos y después una página añadir.php que compruebe si la persona todavía no está registrada con su email y almacene los datos del formulario en la base de datos. Esta página también debe comprobar los errores y devolver un mensaje en la página inicio.php.

Se propone otros ejercicios relacionados con las base de datos al final de este libro.


2. Soluciones

Solución del ejercicio 1

En este ejemplo el login es Estefania y la contraseña es Morales_HH.
  • Cree la base de datos _prueba.
  • El script SQL de creación de la tabla inicio de sesion_password es:

CREATE TABLE inicio de sesion_password (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
Inicio de sesión VARCHAR( 20 ) NOT NULL ,
Password VARCHAR( 20 ) NOT NULL
) ENGINE = MYISAM ;

  • login.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<title>Ejercicio login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<h2>Rellene su login y su contraseña</h2>
<form action="verif_login.php" method="POST">
login:<input type="text" name="login" /><br />
contraseña:<input type="text" name="password" /><br />
<input type="submit" name="enviar" value="validar"/>
<br />
<?php
if (isset($_GET[’mensaje’]) && $_GET[’mensaje’] == ’1’) {
echo "<span style=’color:#ff0000’>login incorrecto</span>";
}
?>
</form>
</body>
</html>

  • comprobar_login.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<title>Ejercicio login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-
8859-1" />
</head>
<body>
<?php
try
{
$base = new PDO(’mysql:host=127.0.0.1;dbname=_test’, ’root’, ’’);
$base->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM inicio de sesion_password WHERE login =
:login and password = :password";
// Preparación de la consulta con los marcadores
$resultado = $base->prepare($sql);
$login = htmlentities(addslashes($_POST[’login’]));
$password = htmlentities(addslashes($_POST[’password’]));
$resultado->bindValue(’:login’, $login);
$resultado->bindValue(’:password’, $password);
$resultado->ejecuta();
$numero_registro = $resultado->rowCount(); //método que devuelve
//el número de registros
//Si hay un registro, es porque la persona existe en base de
//datos
if ($numero registro != 0) {
echo "<h2>¡login correcto!</h2>";
}
else {
header("location:login.php?mensaje=1");
}
$resultado->closeCursor();
} 0
catch(Exception $e)
{
// mensaje en caso de error
die(’Error : ’.$e->GetMessage());
}
?>
</body>
</html>

Solución del ejercicio 2
  • Cree la base de datos de formación.
  • Script SQL de creación de la tabla inscripción:

CREATE TABLE IF NOT EXISTS `inscripción` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`Nombre` varchar(25) NOT NULL,
`Apellidos` varchar(25) NOT NULL,
`Título` varchar(100) NOT NULL,
`Inicio` date NOT NULL,
`Fin` date NOT NULL,
`Email` varchar(100) NOT NULL,
PRIMARY KEY (`Id`)
} ENGINE=MyISAM DEFAULT CHARSET=latini AUTO_INCREMENT=1 ;



Espero haber ayudado en algo. Hasta la próxima oportunidad!








2 comentarios:

  1. Sugiero instalar un plugin para los códigos ya que así no se saben ni donde empiezan ni donde acaban.

    Saludos desde elporfirio.com

    ResponderEliminar
    Respuestas
    1. Hola elporfirio, gracias por la visita y el aporte de tu comentario.
      Los mejores deseos!! Hasta cualquier momento!

      Eliminar