Ejercicio equipos

Index:

 <h1>Página super guay</h1>
        Hola, dinos tu nombre para saber como dirigirnos hacia ti:
        <form action="panel.php">
            <input type="text" name="nombre">
            <input type="submit">
        </form>

Panel:

<?php
        session_start();
        require_once 'librerias.php';
        $nombre = filter_input(INPUT_GET, 'nombre', FILTER_SANITIZE_STRING);
        if (empty($nombre) && !isset($_SESSION['nombre'])) {
            ?>
            <h2>No has introducido ningún nombre. Por favor vuelve atrás.</h2>
            <a href="index.php">Vuelve atrás y pon un nombre ¡hombre!</a>
            <?php
        } else {
            if (!empty($nombre)) {
                $_SESSION['nombre'] = $nombre;
            } else {
                $nombre = $_SESSION['nombre'];
            }
            ?>
            <h1>Hola <?= $nombre ?>, bienvenido a la página superguay</h1>
            <a href="equipos.php">Introducir equipos</a><br/>
            <a href="resultados.php">Introducir resultados</a>
           <?php
            if (isset($_SESSION['equipos'])) {
                ?>
                <a href="resultados.php">Introducir resultados</a>
                <?php
                pintaEquipos($_SESSION['equipos']);
            }
            if (isset($_SESSION['equipos']) && isset($_SESSION['resultados'])) {?>
                <a href="resultados.txt">Descargar resultados</a>
                <?php
                muestraResultados($_SESSION['equipos'], $_SESSION['resultados']);
            }
        }
        ?>

equipos:

<h1>Introduzca los equipos separados por comas</h1>
        <form action="guardar_equipos.php">
            <input type="text" name="equipos" size="100">
            <input type="submit">
        </form>

guardar_equipos:

 <?php
        session_start();
        require_once 'librerias.php';
        // Recuperar los equipos que nos han mandado
        $equipos = filter_input(INPUT_GET, "equipos");
        // Si está vacío poner un aviso y enlace a equipos.php
        if (empty($equipos)) {
            ?>
            <h1>No has mandado equipos, inténtalo de nuevo</h1>
            <a href="equipos.php">Volver a equipos</a>
            <?php
        } else {
            //Si no está vacío convertir la lista de equipos en un array
            $tabla = explode(",", $equipos);
            //guardarlo en la variable de sesión equipos
            $_SESSION['equipos'] = $tabla;
            // Y mostrarlo como una tabla HTML
            pintaEquipos($tabla);
        }
        ?>
              <a href="panel.php">Volver al panel</a>

resultados:

<?php
        session_start();
        require_once 'librerias.php';
         if(isset($_SESSION['equipos'])){
             pintaResultados($_SESSION['equipos']);
            }
            else{
                ?>
        <h1>No hay equipos definidos, vuelva atrás</h1>
        <a href="panel.php">Volver atrás</a>
        <?php
            }
        ?>

guardar_resultados:

<?php
        session_start();
        
        require_once 'librerias.php';
        // Recuperar los resultados que nos han mandado
        $resultados = filter_input(INPUT_POST, 'resultado',FILTER_DEFAULT, FILTER_REQUIRE_ARRAY);
        // Si está vacío poner un aviso y enlace a equipos.php
        if (empty($resultados)) {
            ?>
            <h1>No has mandado resultados, inténtalo de nuevo</h1>
            <a href="resultados.php">Volver a resultados</a>
            <?php
        } else {
            
            //guardarlo en la variable de sesión resultados
            $_SESSION['resultados'] = $resultados;
            // Y mostrarlo como una tabla HTML
            muestraResultados($_SESSION['equipos'],$_SESSION['resultados']);
  guardaResultados($_SESSION['equipos'],$_SESSION['resultados']);
        }
        ?>
              <a href="panel.php">Volver al panel</a>

librerias:

<?php

function pintaEquipos($tabla) {
    ?>
    <table>
        <tr><td>Equipos</td></tr>
        <?php foreach ($tabla as $valor) { ?>
            <tr><td><?= ucfirst($valor) ?></td></tr>
        <?php } ?>
    </table>
    <?php
}

function pintaResultados($tabla) {
    ?>
    <form action="guardar_resultados.php" method="post">
        <table>
            <tr><td>Resultados</td></tr>
            <?php for ($i = 0; $i < count($tabla); $i += 2) { ?>
                    <tr><!--<td><?php
                    echo $tabla[$i];
                    if (isset($tabla[$i + 1])) {
                        echo " - " . $tabla[$i + 1];
                    }
                    ?></td>-->
                    <td><?= $tabla[$i] . (isset($tabla[$i + 1]) ? " - " . $tabla[$i + 1] : "") ?></td>
                    <td><input type="text" name="resultado[]"></td>
                </tr>
            <?php } ?>
        </table>
        <input type="submit">
    </form>
    <?php
}

function muestraResultados($equipos,$resultados) {
    ?>

        <table>
            <tr><td>Resultados</td></tr>
            <?php for ($i = 0; $i < count($equipos); $i += 2) { ?>
                    <tr>
                    <td><?= $equipos[$i] . (isset($equipos[$i + 1]) ? " - " . $equipos[$i + 1] : "") ?></td>
                    <td><?=$resultados[$i/2]?></td>
                </tr>
            <?php } ?>
        </table>
     
    <?php
}
function guardaResultados($equipos, $resultados, $archivo = "resultados.txt",$tipo="w") {
    $fichero = fopen($archivo, $tipo);
    fwrite($fichero, "Resultados\n");
    for ($i = 0; $i < count($equipos); $i += 2) {
        fwrite($fichero, $equipos[$i] . (isset($equipos[$i + 1]) ? " - " . $equipos[$i + 1] : ""));
        fwrite($fichero, " : ".$resultados[$i / 2] . "\n");
    }
    fclose($fichero);
}

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos