← Elenco file spia.php — 134 righe · 3,6 KiB · sola lettura
Il visualizzatore con evidenziazione non si è caricato (manca cm6.bundle.js o dmautone-shared non è raggiungibile): il file è mostrato come testo semplice, sempre in sola lettura.
<?php
/**
 * spia.php — Pagina "scatola nera" che mostra i dati ricevuti da un form.
 *
 * Non serve capire questo codice: serve solo a mostrare COSA arriva
 * e COME arriva (GET, POST, REQUEST).
 */
?>
<!DOCTYPE html>
<html lang="it">
<head>
    <meta charset="UTF-8">
    <title>Dati ricevuti</title>
    <style>
        body {
            font-family: "Segoe UI", Roboto, Arial, sans-serif;
            max-width: 900px;
            margin: 2rem auto;
            padding: 0 1rem;
            color: #222;
            line-height: 1.5;
        }
        h1 {
            color: #1a4d7a;
            border-bottom: 2px solid #1a4d7a;
            padding-bottom: .3rem;
        }
        h2 {
            color: #1a4d7a;
            margin-top: 2rem;
            font-size: 1.15rem;
        }
        .badge {
            display: inline-block;
            background: #2a7d4f;
            color: #fff;
            padding: .25rem .8rem;
            border-radius: 20px;
            font-weight: 600;
            font-size: .9rem;
        }
        .badge-get  { background: #1a4d7a; }
        .badge-post { background: #2a7d4f; }
        table {
            border-collapse: collapse;
            width: 100%;
            margin: .5rem 0 1.5rem;
        }
        th, td {
            border: 1px solid #c8d4de;
            padding: .5rem .8rem;
            text-align: left;
            vertical-align: top;
        }
        th {
            background: #e8f0f7;
            color: #1a4d7a;
        }
        tr:nth-child(even) td {
            background: #fafcfd;
        }
        .empty {
            color: #999;
            font-style: italic;
            margin: .3rem 0 1.5rem;
        }
        .ritorno {
            display: inline-block;
            margin-top: 1rem;
            color: #1a4d7a;
            text-decoration: none;
            font-weight: 600;
        }
        .ritorno:hover { text-decoration: underline; }
        code {
            background: #f4f6f8;
            padding: .1rem .4rem;
            border-radius: 3px;
            font-family: Consolas, Monaco, monospace;
            font-size: .95rem;
        }
    </style>
</head>
<body>

    <h1>Dati ricevuti dal form</h1>

    <p>
        Metodo HTTP usato:
        <?php
        $metodo = $_SERVER['REQUEST_METHOD'];
        $classe = $metodo === 'POST' ? 'badge-post' : 'badge-get';
        echo '<span class="badge ' . $classe . '">' . htmlspecialchars($metodo) . '</span>';
        ?>
    </p>

    <?php
    /**
     * Stampa una tabella con il contenuto di un array superglobale.
     */
    function mostra_array($titolo, $arr) {
        echo "<h2>" . htmlspecialchars($titolo) . "</h2>";

        if (empty($arr)) {
            echo '<p class="empty">Nessun dato ricevuto.</p>';
            return;
        }

        echo '<table>';
        echo '<tr><th style="width:30%">Campo</th><th>Valore</th></tr>';

        foreach ($arr as $chiave => $valore) {
            // Se il valore è un array (es. checkbox multiple), lo uniamo con virgole
            $valore_stampato = is_array($valore) ? implode(', ', $valore) : $valore;

            echo '<tr>';
            echo '<td><code>' . htmlspecialchars($chiave) . '</code></td>';
            echo '<td>' . htmlspecialchars($valore_stampato) . '</td>';
            echo '</tr>';
        }

        echo '</table>';
    }

    // Mostriamo i tre "contenitori" che PHP mette a disposizione
    mostra_array('$_GET',     $_GET);
    mostra_array('$_POST',    $_POST);
    mostra_array('$_REQUEST', $_REQUEST);
    ?>

    <a class="ritorno" href="modulo.html">&larr; Torna al modulo</a>

</body>
</html>