Algunos comentarios sobre la realización de ejercicios:
La mayoría de ejercicios propuestos como ejercicios básicos constan de dos páginas:
La página html enlaza a una hoja de estilo CSS (que es común a todos los ejercicios).
Tanto la página html como la hoja de estilo se pueden copiar de los ejemplos incluidos en los enunciados (dado que este es un curso de PHP, no un curso de HTML /CSS).
El formulario incluye controles cuyo nombre debe estar relacionado con la información que se va a escribir en ellos.
La página php es el programa PHP que debe escribir el alumno.
En todos los primeros ejercicios propuestos en este curso, la página php siempre tiene que realizar las tareas:
En el caso de ejercicios más complejos, los ejercicios pueden constar de una página html y varias páginas php o constar únicamente de páginas php.
Volver al principio de la página
En los enunciados de los ejercicios se incluye un ejemplo de ejercicio resuelto y un enlace al ejercicio resuelto, que se puede abrir en una pestaña (o ventana) diferente. Mostrando el código fuente de las páginas de los ejercicios, se puede ver el código HTML buscado. Ese código fuente se puede copiar y pegar en las páginas PHP.
A continuación se muestra un ejemplo de ejercicio y de enlace al ejercicio:
Enlace a ejemplo Recogida de datos 1
Volver al principio de la página
A continuación se comenta una posible solución para la página php del ejemplo anterior.
La página php del ejemplo contiene cuatro fragmentos:
A continuación se muestra el código fuente con los fragmentos PHP con fondo gris y los fragmentos HTML con fondo blanco:
<?php /** * Ejemplo de recogida de datos 1 - ejemplo_recogida_datos_1.php * * @author Bartolomé Sintes Marco <bartolome.sintes+mclibre@gmail.com> * @copyright 2011 Bartolomé Sintes Marco * @license http://www.gnu.org/licenses/agpl.txt AGPL 3 or later * @version 2011-11-13 * @link http://www.mclibre.org */ print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">\n"; ?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejemplo de recogida de datos 2 (Resultado). Ejemplo de ejercicio.
PHP. Bartolomé Sintes Marco</title>
<link href="mclibre_php_soluciones.css" rel="stylesheet" type="text/css"
title="Color" />
</head>
<body>
<h1>Ejemplo de recogida de datos 2 (Resultado)</h1>
<?php
function recoge($var)
{
$tmp = (isset($_REQUEST[$var])) ? strip_tags(trim(htmlspecialchars($_REQUEST[$var]))) : '';
if (get_magic_quotes_gpc()) {
$tmp = stripslashes($tmp);
}
return $tmp;
}
$nombre = recoge('nombre');
$edad = recoge('edad');
$nombreOk = FALSE;
$edadOk = FALSE;
if ($nombre=="") {
print "<p class=\"aviso\">No ha escrito su nombre.</p>\n";
} else {
$nombreOk = TRUE;
}
if ($edad=="") {
print "<p class=\"aviso\">No ha escrito su edad.</p>\n";
} elseif (!is_numeric($edad)) {
print "<p class=\"aviso\">No ha escrito la edad como número.</p>\n";
} elseif (!ctype_digit($edad)) {
print "<p class=\"aviso\">No ha escrito la edad como número entero.</p>\n";
} elseif ($edad<0 || $edad>130) {
print "<p class=\"aviso\">La edad no está entre 0 y 130 años.</p>\n";
} else {
$edadOk = TRUE;
}
if ($nombreOk && $edadOk) {
print "<p>Su nombre es <strong>$nombre</strong>.</p>\n";
print "<p>Su edad es <strong>$edad</strong>.</p>\n";
}
print "<p><a href=\"ejemplo_recogida_datos_1.html\">Volver al formulario.</a></p>\n";
?>
<address> Este programa forma parte del curso "Páginas web con PHP" disponible en <a href="http://www.mclibre.org/">http://www.mclibre.org</a><br /> Autor: Bartolomé Sintes Marco<br /> Última modificación de esta página: 13 de noviembre de 2011 </address> <p class="licencia">El programa PHP que genera esta página está bajo <a rel="license" href="http://www.gnu.org/licenses/agpl.txt">licencia AGPL 3 o posterior</a>.</p> </body> </html>
Por supuesto la página podría contener un único fragmento PHP en la que los fragmentos HTML fueran generados por instrucciones print.
Volver al principio de la página
El fragmento PHP que recoge y genera los datos tiene la siguiente estructura:
Dependiendo del tipo de dato, puede haber más o menos comprobaciones.
A continuación se muestra el código fuente con los tres apartados con fondo gris y fondo blanco alternados:
<?php
function recoge($var)
{
$tmp = (isset($_REQUEST[$var])) ? strip_tags(trim(htmlspecialchars($_REQUEST[$var]))) : '';
if (get_magic_quotes_gpc()) {
$tmp = stripslashes($tmp);
}
return $tmp;
}
$nombre = recoge('nombre');
$edad = recoge('edad');
$nombreOk = FALSE;
$edadOk = FALSE;
if ($nombre=="") {
print "<p class=\"aviso\">No ha escrito su nombre.</p>\n";
} else {
$nombreOk = TRUE;
}
if ($edad=="") {
print "<p class=\"aviso\">No ha escrito su edad.</p>\n";
} elseif (!is_numeric($edad)) {
print "<p class=\"aviso\">No ha escrito la edad como número.</p>\n";
} elseif (!ctype_digit($edad)) {
print "<p class=\"aviso\">No ha escrito la edad como número entero.</p>\n";
} elseif ($edad<0 || $edad>130) {
print "<p class=\"aviso\">La edad no está entre 0 y 130 años.</p>\n";
} else {
$edadOk = TRUE;
}
if ($nombreOk && $edadOk) {
print "<p>Su nombre es <strong>$nombre</strong>.</p>\n";
print "<p>Su edad es <strong>$edad</strong> años.</p>\n";
}
print "<p><a href=\"ejemplo_recogida_datos_1.html\">Volver al formulario.</a></p>\n";
?>
Volver al principio de la página
Esta página forma parte del curso "Páginas web con PHP" disponible en http://www.mclibre.org
Esta obra está bajo una licencia de Creative
Commons Reconocimiento-CompartirIgual 3.0 España.