Ejercicios (con formularios) - Controles en formularios (1) - Soluciones

En esta página se muestran una parte de las soluciones de los ejercicios Controles en formularios (1), concretamente el fragmento PHP, sin el principio ni el final de la página que se puede dejar en un fragmento HTML. La solución completa se puede descargar de la página de soluciones.

Controles en formularios (1) 1 - Caja de texto

<?php
function recoge($var)
{
    $tmp = (isset($_REQUEST[$var]))
        ? trim(htmlspecialchars($_REQUEST[$var], ENT_QUOTES, "UTF-8"))
        : "";
    return $tmp;
}

$nombre = recoge("nombre");

print "  <p>Su nombre es <strong>$nombre</strong>.</p>\n";
?>

Controles en formularios (1) 2 - Caja de texto - Dibuja cuadrado (1)

<?php
function recoge($var)
{
    $tmp = (isset($_REQUEST[$var]))
        ? trim(htmlspecialchars($_REQUEST[$var], ENT_QUOTES, "UTF-8"))
        : "";
    return $tmp;
}

$ancho = recoge("ancho");

print "  <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" \n"
    . "    width=\"{$ancho}px\" height=\"{$ancho}px\">\n";
print "    <rect x=\"0\" y=\"0\" width=\"$ancho\" height=\"$ancho\" fill=\"black\" />\n";
print "  </svg>\n";
?>

Controles en formularios (1) 3 - Caja de texto - Dibuja cuadrado (2)

<?php
function recoge($var)
{
    $tmp = (isset($_REQUEST[$var]))
        ? trim(htmlspecialchars($_REQUEST[$var], ENT_QUOTES, "UTF-8"))
        : "";
    return $tmp;
}

$ancho = recoge("ancho");

print "  <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" \n"
    . "    width=\"" . ($ancho + 8) . "px\" height=\"" . ($ancho + 8) . "px\">\n";
print "    <rect fill=\"white\" stroke=\"black\" stroke-width=\"4\" "
    . "x=\"2\" y=\"2\" width=\"" . ($ancho + 4) . "\" height=\"" . ($ancho + 4) . "\" />\n";
print "  </svg>\n";
?>

Controles en formularios (1) 4 - Botón radio - Fruta favorita (1)

<?php
function recoge($var)
{
    $tmp = (isset($_REQUEST[$var]))
        ? trim(htmlspecialchars($_REQUEST[$var], ENT_QUOTES, "UTF-8"))
        : "";
    return $tmp;
}

$fruta = recoge("fruta");

print "  <p>Su fruta preferida es $fruta.</p>\n";
?>

Controles en formularios (1) 5 - Botón radio - Fruta favorita (2)

<?php
function recoge($var)
{
    $tmp = (isset($_REQUEST[$var]))
        ? trim(htmlspecialchars($_REQUEST[$var], ENT_QUOTES, "UTF-8"))
        : "";
    return $tmp;
}

$fruta = recoge("fruta");

print "  <p><img src=\"img/frutas/$fruta\" width=\"300\" /></p>\n";
?>

Controles en formularios (1) 6 - Casilla de verificación - Colores (1)

<?php
function recoge($var)
{
    $tmp = (isset($_REQUEST[$var]))
        ? trim(htmlspecialchars($_REQUEST[$var], ENT_QUOTES, "UTF-8"))
        : "";
    return $tmp;
}

$fondo = recoge("fondo");
$letra = recoge("letra");

if ($fondo != "" && $letra != "") {
  print "  <p>Usted quiere cambiar: $fondo y $letra</p>\n";
} elseif ($fondo != "") {
  print "  <p>Usted quiere cambiar: $fondo</p>\n";
} elseif ($letra != "") {
  print "  <p>Usted quiere cambiar: $letra</p>\n";
} else {
  print "  <p>Usted no quiere cambiar nada</p>\n";
}
?>

Controles en formularios (1) 7 - Casilla de verificación - Colores (2)

Primera página (formulario):

<?php
$color = rand(0, 360);
print "  <label><input type=\"checkbox\" name=\"fondo\" value=\"hsl($color, 100%, 90%)\" /> Color del fondo de la página</label><br />\n";
print "  <label><input type=\"checkbox\" name=\"letra\" value=\"hsl($color, 100%, 30%)\" /> Color de la letra de la página</label>\n";
?>

Segunda página (resultado):

<?php
function recoge($var)
{
    $tmp = (isset($_REQUEST[$var]))
        ? trim(htmlspecialchars($_REQUEST[$var], ENT_QUOTES, "UTF-8"))
        : "";
    return $tmp;
}

$fondo = recoge("fondo");
$letra = recoge("letra");

print "  <style>body { background-color: $fondo; color: $letra; }</style>\n";
?>

Controles en formularios (1) 8 - Casilla de verificación - Colores (3)

<?php
function recoge($var)
{
    $tmp = (isset($_REQUEST[$var]))
        ? trim(htmlspecialchars($_REQUEST[$var], ENT_QUOTES, "UTF-8"))
        : "";
    return $tmp;
}

$fondo = recoge("fondo");
$letra = recoge("letra");

print "  <style>body { background-color: $fondo; color: $letra; }</style>\n";
?>

Controles en formularios (1) 9 - Caja de texto - Dibuja cuadrado (3)

<?php
function recoge($var)
{
    $tmp = (isset($_REQUEST[$var]))
        ? trim(htmlspecialchars($_REQUEST[$var], ENT_QUOTES, "UTF-8"))
        : "";
    return $tmp;
}

$ancho  = recoge("ancho");
$grosor = recoge("grosor");

print "  <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" \n"
    . "    width=\"" . ($ancho + 2 * $grosor) ."px\" height=\"" . ($ancho + 2 * $grosor) ."px\">\n";
print "    <rect fill=\"white\" stroke=\"black\" stroke-width=\"$grosor\" "
  . "x=\"" . ($grosor / 2) . "\" y=\"" . ($grosor / 2) . "\" width=\"" . ($ancho + $grosor) . "\" height=\"" . ($ancho + $grosor) . "\" />\n";
print "  </svg>\n";
?>