sábado, 20 de septiembre de 2014

Control de datos y redirección de páginas en PHP - 2 de 2



Ejercicios

1. Enunciados

Ejercicio 1 (fácil)

Cree una página login.php que contenga un formulario con una zona inicio de sesión y una zona contraseña. Añada el botón "comprobar", de tipo submit, que llama la página verif_login.php. Esta página muestra "inicio de sesión correcto" si el apellido es igual a "Gómez" y la contraseña "alibaba". De lo contrario, esta página redirecciona a la página inicio de sesión.php con el mensaje "inicio de sesión incorrecto".


Ejercicio 2 (dificultad media)

Cree una página tabla.php que contenga un formulario con una lista de selección simple que contenga los países y debajo una zona de tipo <div> que muestre las ciudades según el país que seleccione. El formulario contiene un botón de tipo "submit" que permite volver a llamar la misma página según el país que seleccione. Se trata de realizar esta página sin necesidad de utilizar JavaScript. Cuando muestra la página por primera vez, debe mostrar el primer país de la lista con sus correspondientes ciudades. Las dos tablas son:

$pais = array(’Francia’,’Italia’,’Alemania’,’Rusia’);

Y

$ciudades[’Francia’][0] = "París";
$ciudades[’Francia’][1] = "Lyon";
$ciudades[’Francia’][2] = "Marsella";
$ciudades[’Italia’][0] = "Roma";
$ciudades[’Italia’][1] = "Milán";
$ciudades[’Italia’][2] = "Nápoles";
$ciudades[’Alemania’][0] = "Berlín";
$ciudades[’Alemania’][1] = "Múnich";
$ciudades[’Alemania’][2] = "Fráncfort";
$ciudades[’Rusia’][0] = "Moscú";
$ciudades[’Rusia’][1] = "San Petersburgo";
$ciudades[’Rusia’][2] = "Nizhny-Novgorod";


Ejercicio 3 (dificultad media)

Retome el ejercicio 1 y muestre en la página inicio de sesión.php el número de veces que el usuario ha intentado iniciar sesión antes de utilizar los inicios de sesión y
contraseñas correctos. Muestre también todos los inicios de sesión y contraseñas que se han intentado introducir.


2. Soluciones

Solución del ejercicio 1

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 inicio de sesión</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
</head>
<body>
<h2>Escriba su inicio de sesión y contraseña</h2>
<form action="verif_login.php" method="POST">
login:<input type="text" name="login" /><br />
contrasena:<input type="text" name="password" /><br />
<input type="submit" name="enviar" value="validar"/>
<br /><br />
<?php
if (isset($_GET[’message’]) && $_GET[’message’] == ’1’) {
echo "<span style=’color:#ff0000’>inicio de sesión incorrecto
</span>";
}
?>
</form>
</body>
</html>

verfi_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 inicio de sesión</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
</head>
<body>
<?php
if ($_POST[’inicio de sesión’] == ’Gómez’ && $_POST[’password’] ==
’alibaba’) {
echo "<h2>inicio de sesión correcto</h2>";
}
else {
header("location:login.php?message=1");
}
?>
</body>
</html>


Solución del ejercicio 2

tabla.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 país</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
</head>
<body>
<h2>Seleccione un país</h2>
<form action="tabla.php" method="POST">
<?php
$pais = array(Francia,’Italia’,’Alemania’,’Rusia’);
$ciudades[Francia][0] = "París";
$ciudades[Francia][1] = "Lyon";
$ciudades[Francia][2] = "Marsella";
$ciudades[’Italia’][0] = "Roma";
$ciudades[’Italia’][1] = "Milán";
$ciudades[’Italia’][2] = "Nápoles";
$ciudades[’Alemania’][0] = "Berlín";
$ciudades[’Alemania’][1] = "Múnich";
$ciudades[’Alemania’][2] = "Fráncfort";
$ciudades[’Rusia’][0] = "Moscú";
$ciudades[’Rusia’][1] = "San Petersburgo";
$ciudades[’Rusia’][2] = "Nizhny-Novgorod";
?>
pais:<select name="pais" >
<?php
if (isset($_POST[’pais’])) {
$pais_seleccionado = $_POST[’pais’];
}
else {
$pais_seleccionado = "Francia";
}
foreach ($pais as $valor) {
if ($valor == $pais_seleccionado) {
echo "<option value=’".$valor."’ selected=’selected’
>".$valor."</option>";
}
else {
echo "<option value=’".$valor."’>".$valor."</option>";
}
}
?>
</select>
<br />
<div>
<?php
foreach ($ciudades as $clave => $valor) {
if ($clave == $pais_seleccionado) {
foreach ($valor as $valor_seleccionado) {
echo $valor_seleccionado."<br />";
}
}
}
?>
</div>
<br />
<input type="submit" name="enviar" value="validar"/>
</form>
</body>
</html>


Solución del ejercicio 3

inicio de sesión.php:

<?php
session_start();
if (isset($_SESSION[’num_vez])) {
$_SESSION[’num_vez] = $_SESSION[’num_vez]+1;
}
else {
//inicio de sesión num_vez
$_SESSION[’num_vez] = 0;
//inicio de sesión login_password
$_SESSION[’login_password’]="";
}
?>
<!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>Escriba su inicio de sesión y su contraseña</h2>
<form action="verif_login.php" method="POST">
inicio de sesion:<input type="text" name="login" /><br /><br />
contraseña:<input type="text" name="password" /><br /><br />
<input type="submit" name="enviar" value="validar"/>
<br /><br />
<?php
if (isset($_GET[’message’]) && $_GET[’message’] == ’1’) {
echo "<span style=’color:#ff0000’>inicio de sesión incorrecto
</span>";
}
?>
<br />
Ha intentado <?php echo $_SESSION[’num_veces];?> veces.
<br />
<?php
if ($_SESSION[’login_password’]!= "") {?>
Los inicios de sesión y contraseña intentados son:<?php echo
substr($_SESSION[’login_password’],0,strlen($_SESSION
[’login_password’])-2);
//¿quita el; el último espacio?>
<?php } ?>
</form>
</body>
</html>


verif_login.php:

<?php
session_start();
$_SESSION[’login_password’] = $_SESSION[’login_password’].$_POST
[’login’]." y ".$_POST[’password’].", ";
?>
<!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 inicio de sesión</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
</head>
<body>
<?php
if ($_POST[’login’] == ’Gómez’ && $_POST[’password’] == ’alibaba’) {
echo "<h2>inicio de sesión correcto</h2>";
}
else {
header("location:login.php?message=1");
}
?>
</body>
</html>



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








1 comentario:

  1. Seria bueno que se pusiera un enlace para poder ver el "ejemplo" en total funcionamiento y otro para poderlo descargar!

    ResponderEliminar