<?php 
/**
 * Ley de Ohm - ley_ohm.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-21
 * @link      http://www.mclibre.org
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU Affero General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Affero General Public License for more details.
 *
 *  You should have received a copy of the GNU Affero General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

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>Ley de Ohm (Formulario). 
  Exámenes. PHP. Bartolomé Sintes Marco</title>
  <link href="mclibre_php_soluciones.css" rel="stylesheet" type="text/css" 
  title="Color" />
</head>

<body>
<h1>Ley de Ohm (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;
}

$tension       = recoge('tension');
$intensidad    = recoge('intensidad');
$resistencia   = recoge('resistencia');
$tensionOk     = FALSE;
$intensidadOk  = FALSE;
$resistenciaOk = FALSE;

if ((($tension=="")&&($intensidad=="")) || (($tension=="")&&($resistencia==""))
    || (($intensidad=="")&&($resistencia==""))) {
    print "<p class=\"aviso\">Se necesitan al menos rellenar dos datos.</p>\n";
} else {
    if ($tension == "") {
        $tensionOk = TRUE;
    } elseif (!is_numeric($tension)) { 
        print "<p class=\"aviso\">No ha escrito la tensión como número.</p>\n";
    } else {
        $tensionOk = TRUE;
    }
    
    if ($intensidad == "") {
        $intensidadOk = TRUE;
    } elseif (!is_numeric($intensidad)) { 
        print "<p class=\"aviso\">No ha escrito la intensidad como número.</p>\n";
    } else {
        $intensidadOk = TRUE;
    }
    
    if ($resistencia == "") {
        $resistenciaOk = TRUE;
    } elseif (!is_numeric($resistencia)) { 
        print "<p class=\"aviso\">No ha escrito la resistencia como número.</p>\n";
    } elseif ($resistencia<0) {
        print "<p class=\"aviso\">La resistencia no puede ser negativa.</p>\n";
    } else {
        $resistenciaOk = TRUE;
    }
}

if ($tensionOk && $intensidadOk && $resistenciaOk) {
    
    if (($tension!="")&&($intensidad!="")&&($resistencia!=="")) {
        if ($tension == $intensidad*$resistencia) {
            print "<p>Los valores introducidos son correctos:</p>\n";
        } else {
            print "<p>Los valores introducidos <span class=\"aviso\">no</span> son posibles:</p>\n";
        }
        print "<ul>\n".
            "  <li>Tensión: $tension V</li>\n".
        	"  <li>Intensidad: $intensidad A</li>\n".
            "  <li>Resistencia: $resistencia &Omega;</li>\n".
            "</ul>\n";
    } elseif ($tension*$intensidad<0) {
        print "<p class=\"aviso\">Tensión e intensidad no pueden tener signos distintos.</p>\n";
    } elseif (($tension!="")&&($intensidad!="")&&($tension==0)&&($intensidad==0)) {
        print "<p class=\"aviso\">Si la tensión y la intensidad son nulas, la resistencia puede tomar cualquier valor.</p>\n";
    } elseif (($tension!="")&&($resistencia!="")&&($tension==0)&&($resistencia==0)) {
        print "<p class=\"aviso\">Si la tensión y la resistencia son nulas, la intensidad puede tomar cualquier valor.</p>\n";
    } elseif (($resistencia!="")&&($tension!=0)&&($resistencia==0)) {
        print "<p class=\"aviso\">Si la resistencia es nula, la tensión no puede ser no nula.</p>\n";
    } elseif (($intensidad!="")&&($tension!=0)&&($intensidad==0)) {
        print "<p class=\"aviso\">Si la intensidad es nula, la tensión no puede ser no nula.</p>\n";
    } else {
        print "<p>Valores calculados:</p>\n";
        if ($tension=="") {
            $tension = $resistencia*$intensidad;
        } elseif ($intensidad=="") {
            $intensidad = $tension/$resistencia;
        } else {
            $resistencia = $tension/$intensidad;
        }
        print "<ul>\n".
            "  <li>Tensión: $tension V</li>\n".
            "  <li>Intensidad: $intensidad A</li>\n".
            "  <li>Resistencia: $resistencia &Omega;</li>\n".
            "</ul>\n";
    }
}
print "<p><a href=\"ley_ohm.html\">Volver al formulario.</a></p>\n";
?>

<address>
  Esta página 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: 21 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>
