¿Qué tal? Habéis podido realizar las prácticas vosotros solos. Espero que sí. Y si no ha sido así que las dudas hayan sido mínimas. Empiezo por indicar la solución de la primera práctica.
1) 1) Aplicación para poner password a archivos html. Primero crearemos un archivo php (principal.php) con el pasword puesto en el encabezado, dependiendo del password que pongamos nos redirigirá una página u a otra. (password1.html y password2.html). Si no le indicamos el pasword correcto nos enviará a otra página (incorrect.html) en el que nos indica que la contraseña no es correcta.
En total había que crear 4 archivos. El código del primer archivo (principal.php) es el siguiente:
<?php
if (isset($_POST['pw'])) {
$pw = $_POST['pw'];
if ($pw == "magico") {
header ("Location: password1.html");
} elseif ($pw == "wed123" ){
header ("Location: password2.html");
} else {
header ("Location: incorrect.html");
}
}
?>
<html>
<head>
<title>Soluciones a las prácticas - El blog de Amizba</title>
</head>
<body>
<h1> Indicar el password correcto.</h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="password" name="pw">
<input type="submit" value="Envialo">
</form>
</body>
</html>
En el post Autentificación de usuarios, pusimos un ejemplo parecido a este. De las tres prácticas que puse creo que esta es la más fácil. La dificultad hubiera sido a lo mejor crear una base de datos para almacenar las contraseñas… aunque más que dificultad hubiera sido una aplicación más larga en cuanto a código.
Vemos el archivo password1.html:
<html>
<head>
<title>Soluciones a las prácticas - El blog de Amizba</title>
</head>
<body>
Esta es la pagina protegida con "magico"
</body>
</html>
Un archivo html sin ninguna complicación, muy sencillo, igual que el archivo password2.html:
<html>
<head>
<title>Soluciones a las prácticas - El blog de Amizba</title>
</head>
<body>
Esta es la pagina protegida con WED123
</body>
</html>
Y por último el archivo incorrect.html:
<html>
<head>
<title>Soluciones a las prácticas - El blog de Amizba</title>
</head>
<body>
Lo sentimos, ese no es el password correcto. Intentalo otra vez
</body>
</html>
Bien, pues esta es la solución a la primera práctica.
Vamos a pasar ahora a la segunda práctica:
2) 2) Realizar un script que muestre un formulario que se enviará por correo electrónico en un solo archivo.
<html>
<head>
<title>Soluciones a las prácticas - El blog de Amizba</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" >
</head>
<body>
<h1>Trabajar con emails</h1>
<p>¡Enviame tu opinión!</p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Tu direcciòn de e-mail: <br>
<input type="text" name="email" ><br>
Tu comentario: <br>
<textarea name="message" cols="50" rows="5">
</textarea><br>
<input type="submit" value="Enviar">
</form>
<?php
$receiverMail = "tudireccion@tudominio.es"; // escribe aqui tu direcciòn
if (isset($_POST['email']) && $_POST['email'] != "") {
if (mail ($receiverMail, "¡Tienes correo nuevo!", $_POST['message'], "From:
$_POST[email]")) {
echo "<p>Gracias por enviarme tu opiniòn.</p>\n";
} else {
echo "<p>Lo siento, ha ocurrido un error.</p>\n";
}
}
?>
</body>
</html>
En este script os podias ayudar mucho del post Trabajo con mails.
Y por último la más complicada por lo menos para mi:
3) 3) Realizar un contador de visitas. Es necesario crear un archivo de texto en blanco llamado contador.txt en la misma ubicación donde se ejecuta el script.
<html>
<head>
<title>Soluciones a las prácticas - El blog de Amizba</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h1>Libro de visitas</h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"
Tu comentario:<br>
<textarea cols="55" rows="4" name="comment"></textarea><br>
Tu nombre:<br>
<input type="text" name="name"><br>
Tu e-mail:<br>
<input type="text" name="email"><br>
<input type="submit" value="publica:">
</form>
<h3>Mostrar todos los comentarios</h3>
<?php
//Guarda el nombre del archivo en la variable
$file ="contador.txt";
//¿variable comment definida? ¿Nombre e e-mail no estan vacios?
//if isset($_POST['comment']) && $_POST['name'] ! = "" && $_POST['email'] != "" {
if (isset($_POST['comment']) && isset($_POST['name']) != "" && $_POST['email'] != "") {
$comment = $_POST['comment'];
$name = $_POST['name'];
$email = $_POST['email'];
//El archivo se abre para escritura-lectura
$fp = fopen($file, "r+");
//Leer todos los datos y almacenar en $old
$old = fread ($fp, filesize($file));
//Se crea el vinculo de e-mail
$email = "<a href=\mailto:$email\">$email</a>";
//Se incluye la fecha y se le da formato
$dateOfEntry = date ("y-n-j");
//Ocultar caracteres html, eliminar slashes, mantener saltos de linea
$comment = htmlspecialchars($comment);
// $comment = stripslashes(n12br($comment));
$comment = stripslashes($comment);
//"Montar la entrada (entry) del libro de visitas
$entry="<p><b>$name</b> ($email) wrote on <i>$dateOfentry</i>;<br>$comment</p>\n";
//El cursor invisible salta al principio
rewind($fp);
//Escribir en la nueva entrada antes de las antiguas en el archivo:
fputs($fp, "$entry \n $old");
//cerrar rl archivo
fclose($fp);
}
//Mostrar el archivo completo
readfile($file);
?>
</body>
</html>
En el script os dejo una serie de anotaciones, si algo no lo tenéis claro me lo indicáis en un mail o comentario. Bueno pues hasta aquí las prácticas. En el próximo post dedicaré más cosas a PHP. De momento esto es todo, hasta pronto!