⊗ppPmFmOFH 299 of 447 menu

Gestione del modulo in un unico file PHP

Nella lezione precedente il nostro modulo era posizionato su una pagina, ma inviato a un'altra. In realtà non è obbligatorio. Se si lascia l'attributo action vuoto o lo si rimuove completamente, il modulo verrà inviato a questa stessa pagina.

Come funzionerà: al primo accesso alla pagina compileremo il modulo con i dati e cliccheremo sul pulsante. Dopodiché la pagina si aggiornerà e il suo codice verrà eseguito nuovamente, ma questa volta con i dati del modulo.

Vediamo un esempio. Supponiamo di avere in un unico file un modulo e la sua gestione:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php var_dump($_GET); ?>

Al primo accesso alla pagina la funzione var_dump stamperà un array vuoto. E dopo l'invio del modulo stamperà i dati del modulo. Cioè la prima volta $_GET sarà vuoto, mentre la seconda volta - conterrà i dati del modulo.

Questo può causare problemi. Supponiamo, ad esempio, di inserire numeri nel modulo e di voler visualizzare la somma di questi numeri:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php echo $_GET['test1'] + $_GET['test2']; ?>

In questo caso, al primo accesso alla pagina vedremo errori PHP, dovuti al fatto che l'array $_GET è vuoto, mentre noi tentiamo di accedere ai suoi elementi.

Va detto che potresti non vedere gli errori nel browser. In tal caso controlla che la visualizzazione degli errori PHP sia attiva, e assicurati che sia il tuo primo accesso alla pagina e che non ci siano dati del modulo nella barra degli indirizzi.

Risolviamo il problema. Aggiungiamo una condizione in cui verificheremo che il modulo sia stato inviato.

Ad esempio, si può verificare se $_GET non è vuoto. Se $_GET non è vuoto - allora il modulo è stato inviato e si può eseguire la somma. Altrimenti siamo ancora al primo accesso alla pagina e la somma non verrà eseguita. Quindi, ecco il codice corretto:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php if (!empty($_GET)) { echo $_GET['test1'] + $_GET['test2']; } ?>

Chiedi all'utente cognome, nome e patronimico. Dopo l'invio del modulo, visualizza i dati inseriti.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta