Messaggio mer ago 05, 2009 10:00 am

[PHP DA ZERO - LEZIONE 5] Switch e Get

Premetto che tutti i controlli e le funzioni valide per $_POST sono valide per $_GET.

Ma allora qual è la differenza tra $_GET e $_POST?

$_POST è più sicuro e viene utilizzato per ottenere dei dati da un form.

$_GET viene utilizzato per gestire dei dati tramite "url".

Ad esempio.

esempio.php

  Codice:
<?php
echo "Ciao";

echo $_GET['nome'];
?>


Se dal browser raggiungiamo la pagina esempio.php in questo modo:

esempio.php?nome=Matteo

il messaggio che verrà mostrato sarà "Ciao Matteo";

se la raggiungiamo in quest'altro modo:

esempio.php?nome=Giovanni

il messaggio che verrà mostrato sarà "Ciao Giovanni";

e così via.


Un fondamentale componente da utilizzare principale per i $_GET ( ma non solo ) è switch

Scrivere:

pagina.php

  Codice:
<?php

switch($_GET['stato']){

case "usa":
echo "Washigton";
break;

case "italia":
echo "Roma";
break;

case "francia":
echo "Parigi";
break;

default:
echo "Stato non definito!";
break;


}

?>


equivale a scrivere questo:

  Codice:
<?php
if ($_GET['stato'] == "usa"){
echo "Washigton";
} elseif ($_GET['stato'] == "italia"){
echo "Roma";
} elseif ($_GET['stato'] == "francia"){
echo "Parigi";
} else {
echo "Stato non definito!";
}
?>


Scrivendo i due codici sovrastanti il risultato sarà lo stesso identico!!

Dunque, possiamo affermare che switch può sostituire il controllo if.

Lo script che abbiamo creato sopra fa questo:

Se raggiungiamo la pagina esempio.php dal nostro browser in questo modo:

pagina.php?stato=italia

ci apparirà la scritta "Roma",

raggiungendo in quest'altro modo:

pagina.php?stato=francia

ci apparirà la scritta "Parigi"

e cosi' via.

Invece, raggiungendo la pagina in questo modo:

pagina.php?stato=

oppure cosi':

pagina.php

(Cioè con il $_GET "stato" vuoto)

ci apparirà la scritta:

"Stato non definito!";

Gli Switch sono usatissimi per creare quell'effetto che agli utenti(e ai webmaster) piace tanto,
cioè un'intero sito in una sola pagina
:D

Ad esempio:

index.php


  Codice:
<?php
echo "<a href='index.php'>Home</a> | <a href='index.php?page=contatti'>Contatti</a> | <a href="index.php?page=bio'>Biografia</a> | <a href='index.php?page=links'>Links</a>";
echo "<p></p>";

switch($_GET['page']){

case "bio":
echo "Contenuto della pagina biografia";
break;

case "links":
echo "contenuto della pagina links";
break;

case "contatti":
?>
Contenuto della pagina contatti(IN HTML, chiudendo i tags php qui posso usare normale html!!!)
<?php
break;

default:
echo "Contenuto della home page, cioè di quando il get page è vuoto!";
break;

}
?>


Nella prossima lezione parleremo di altre variabili predefinite del php.