Interazione del client con il server.

La funzione rand(min, max) restituisce un numero casuale nell'intervallo compreso tra min e max.

I parametri possono essere omessi, in questo caso per min si assume 1 e per max si assume il massimo intero rappresentabile sul server in cui si esegue lo script.

Avviare il server web - attendere che nella tray bar l'icona segnali che il server web è in ascolto, ad esempio l'icona di Wamp Server deve diventare verde.

L'esempio che segue mostra sul browser del client un elenco di 10 numeri casuali compresi tra 1 e 100. In blocco Note scrivere i tag di base di una pagina web, all'interno del body inserire uno script php:

<html>

<head>

<title>Numeri Casuali</title>

</head>

<body>

<h2>Elenco di 10 numeri casuali compresi tra 1 e 100.</h2>

<?php

for ($i=0; $i<10; $i++) {

  echo rand(1, 100)."<br />";

}

?>

</body>

</html>

Salvare il file con il nome caso.php nella cartella C:/wamp/www.

Per eseguire lo script avviare il browser. Nella barra dell'indirizzo scrivere: localhost/caso.php.

Osservazioni:

Per generalizzare il programma, gli estremi dell'intervallo e la quantità di numeri possono venire richiesti dal lato client.

La seguente pagina web rappresenta l'interfaccia utente:

<html>

<head>

<title>Numeri Casuali</title>

</head>

<body>

<b>Richiesta di Numeri casuali:</b>

<form action="caso.php" method="get">

<table>

<tr><td>Quanti ne vuoi?</td>

    <td><input type="text" name="quanti" /></td></tr>

<tr><td>Compresi tra (minimo):</td>

    <td><input type="text" name="min" /></td></tr>

<tr><td>e (massimo):</td>

    <td><input type="text" name="max" /></td></tr>

<tr><td> </td>

    <td><input type="submit" value="invia Richiesta" /></td></tr>

</table>

</form>

</body>

</html>

Salvare questo file con il nome caso.htm nella stessa cartella del file precedente, quindi, dopo aver avviato il server, richiamare questa pagina scrivendo nella barra dell'indirizzo: http://localhost/caso.htm.

All'interno del browser la pagina ha l'aspetto seguente:

Richiesta di numeri casuali
Quanti ne vuoi?
compresi tra (minimo):
e (massimo):


Supponendo che nelle caselle del form si siano inseriti i valori 10, 1 e 100, si osservi che, quando si preme il pulsante di invio dei dati, l'indirizzo della pagina richiamata è:

http://localhost/caso.php?quanti=10&min=1&max=100

Si deve notare che i parametri, cioè i valori inseriti nelle caselle di testo da parte del client, sono stati aggiunti dopo l'indirizzo.

In particolare l'elenco dei parametri inizia con il carattere '?' dopo l'indirizzo. L'elenco dei parametri è formato dalle coppie Variabile=valore separate dal carattere '&'.

A questo punto bisogna insegnare allo script come acquisire i parametri.


Il metodo get.

Ritornare alla pagina caso.php e modificarla come indicato appresso.

La semplice pagina caso.php non acquisisce i parametri passati. Il server memorizza nell'array $_GET i parametri che il client ha inviato in coda all'indirizzo. Il nome del parametro rappresenta la chiave di accesso all'array.

<html>

<head>

<title>Numeri Casuali</title>

</head>

<body>

<?php

$q = $_GET["quanti"];

$min = $_GET["min"];

$max = $_GET["max"];

?>

<h2>Elenco di <?php echo $q ?> numeri casuali compresi tra <?php echo $min ?> e <?php echo $max ?>.</h2>

<?php

for ($i=0; $i<$q; $i++) {

  echo rand($min, $max)."<br />";

}

?>

</body>

</html>

Commenti al programma:

Il metodo GET è utile perchè i parametri possono essere trasmessi anche tramite un link.

Supponendo, ad esempio, che la richiesta molto frequente sia di 10 numeri casuali compresi tra 1 e 100, allora anzichè compilare il form si può rendere disponibile un link che specifichi anche i valori dei parametri. Nella pagina caso.htm inserire, dopo il form, la seguente riga:

<br /><br />Voglio 10 numeri casuali compresi

<A href="caso.php?quanti=10&min=1&max=100">tra 1 e 100</A>

Quest'ultimo esempio vuole mostrare che il metodo get è conveniente perchè si possono inviare dati al server accodandoli all'indirizzo, senza compilare il form.

Quando si deve inviare un account o quando la quantità di dati è elevata non è conveniente inviare i dati insieme all'indirizzo. Assegnando il valore POST all'attributo method del tag Form i dati vengono inviati al server dopo il pacchetto della richiesta http.

Nell'esempio di invio di una richiesta al server per la generazione di 10 numeri casuali, l'intestazione del tag form, nella pagina web del client, diventa:

<form action="caso.php" method="POST">

Mentre la pagina caso.php, dal lato server, viene modificata sostituendo l'array $_GET con l'array $_POST.