Corso Web – Lezione PHP – 5

Corso Web – Lezione PHP – #5

Introduzione

In questa lezione mostra come integrare uno script php all’interno di una pagina web per eseguir lo stesso senza richiamare un’altra pagina php.
Finore abbiamo visto che per eseguire uno script php che riceve gli input da un modulo html era necessario impostare nell’attributo “action” un idnirizzo di una pagina php da eseguire al cick del pulsante “invia / submit” del modulo html.
Oggi ti mostro come eseguire lo script PHP incorporato nella pagina web stessa. Talle appccio è utile ad esempio quando occorre popolare i campi del modulo html da una sorgente dati quali un file xml, un file csv, un file di testo, un database, ecc.
Un’altra possibilità d’uso è legata al fatto che l’utente man mano che inserisce i campii deve proseguire nell’inserimento di altri dettagli in un altro modulo html che il php genera solo dopo che l’utente ha impostate il primo modulo.
In PHP per conservare valori di dati fra pagine diverse è possibile utilizzare le sessioni che saranno oggetto della lezione 11.

Il problema

Immaginiamo di inserire mediante un modulo html i nomi di tre persone e le loro età e di fare in modo che lo script php visualizzi il nome e e l’età delle persona con età maggiore. Il modulo html è composto da ua tabella con 6 campi di testo tre di tipo testo e tre numerici ad inserimento obbligatorio e i due pulsanti “conferma” e “annulla”. Nel form l’attributo “action” conterrà un piccolo script php “<?php $PHP_SELF ?>” che quando viene invocato con la pressione del pulsante “submit” invoca il codice php presente nella pagina. La pagina html è salvata con estensione “php” in quanto il server riesce ad intepretare contemporaneamente sia html che php.

Il modulo html – prima parte

Il codice html del modulo html è

<!DOCTYPE html>
<html>
    <head>
        <meta chartset="utf-8">
        <title>Esercizio 5 HTML e PHP</title>
    </head>
    <body>
        <h2>Visualizza il nome e l'età della persona più adulta</h2>
        <h1>Dati della Persona</h1>
        <form name="frmsaluto" action="<?php $PHP_SELF?>" method="post">
            <table border="1">
                <tr>
                    <td><label for="nome1">Il tuo nome:</label></td>
                    <td><input type="text" name="nome1" id="nome1" value="iul tuo nome:" requird></td>
                </tr>
                <tr>
                    <td><label for="age1">La tua età:</label></td>
                    <td><input type="number" name="age1" id="age1" value="Dogotare età:" requird></td>
                </tr>
                <tr>
                    <td><label for="nome2">Il tuo nome:</label></td>
                    <td><input type="text" name="nome2" id="nome2" value="iul tuo nome:" requird></td>
                </tr>
                <tr>
                    <td><label for="age2">La tua età:</label></td>
                    <td><input type="number" name="age2" id="age2" value="Dogotare età:" requird></td>
                </tr>
                <tr>
                    <td><label for="nome3">Il tuo nome:</label></td>
                    <td><input type="text" name="nome3" id="nome3" value="iul tuo nome:" requird></td>
                </tr>
                <tr>
                    <td><label for="age3">La tua età:</label></td>
                    <td><input type="number" name="age3" id="age3" value="Dogotare età:" requird></td>
                </tr>
                <tr>
                    <td><input type="submit" name="saluta" id="saluta" value="Saluta !"></td>
                    <td><input type="reset" name="cancella" id="cancella"></td>
                </tr>
            </table>
        </form>

Il codice è incompleto in quanto occorre completare con la parte php.
Il codice php prevede un controllo che permette di non eseguire nessuna riga di codice se i dati non sono stati inviati con il metodo “POST”.  Nel nostro file php oltre che il codice html è presente anche il codice php racchiuso fra i tag “<?php” e “?>”, quindi il server quando la pagina è richiesta dal browser viene eseguito anche il codice php indipendentemente se l’utente ha inviato o meno il modulo html. Per questo all’inizio dello script è inserita una condizione:

    if($_SERVER[‘REQUEST_METHOD’]==’POST’)
{              // elabora // }
    else
                { // nulla // }

Lo script php

la quale verifica se il modulo è stato inviato in caso contrario non fa nulla (l’else è facoltativo ovviamente conviene per condizioni di errore o per emssaggi di avviso).
A questo punto il nostro codice html e pho termina con il seguente codice riportato qui:

        <?php
            if($_SERVER['REQUEST_METHOD']=='POST')
                {   echo "Hello World";
                    $age1=$_POST['age1'];
                    $age2=$_POST['age2'];
                    $age3=$_POST['age3'];
                    $nome1=$_POST['nome1'];
                    $nome2=$_POST['nome2'];
                    $nome3=$_POST['nome3'];
                    $agemax="";
                    $nomemax="";
                    if ($age1>$age2)
                    {
                        $agemax=$age1;
                        $nomemax=$nome1;
                    }
                    else
                    {
                        $agemax=$age2;
                        $nomemax=$nome2;
                    }
                    if ($agemax<$age3)
                    {
                        $agemax=$age3;
                        $nomemax=$nome3;
                    }
                    echo "<h1>La persona che ha età maggiore è:".$nomemax."</h1>";
                    echo "<h1>Con età: ".$agemax."<h1>";
                }
            else
                echo "";
            ?>
    </body>
</html>

La pagina php quando non viene invocata presenta il modulo html come mostra in figura:

Visualizzazione del form in html prima dell'invio ed esecuzione del codice php. il modulo è popolato con dati di esempio.

Quando l’utente clicca sul pulsante “Saluta” ()l’etichetta è modificabile via html) viene invocato lo script php che riceve gli input dal modulo html e esegue il programma per determinare fra le tre persone quella con età maggiore.
Il risultato è mostrato nella figura sotto.

Visualizzazione del risultato dell'esecuzione del php. il risultato è visualizzato sotto il modulo html.

I risultati sono visualizzati sotto il modulo html.  L’unico inconveniente è la presenza del form html che però può essere nascosta agendo a livello javascript sia tramite html che tramite php. Nel primo caso lo javascript deve esseere eseguiito contestualmente al clci del pulsante “submit”, nel secondo caso all’interno del codice php.

Video della lezione

Pubblicità