lunedì 9 luglio 2012

Appunti Reti di Calcolatori - Parte 2: PHP

Installare PHP:
  1. Scaricare i sorgenti da www.php.net
  2. Scompattare archivio sorgenti php (sudo tar -xjvf [nome_archivio.gz])
  3. ATTENZIONE: per il formato tar.bz2 usare j al posto di z!)
  4. Entrare nella directory dei sorgenti PHP
  5. ./configure --prefix=<stesso/prefix/di/apache> --with-apxs2=</prefix/di/apache>/bin/apxs
  6. make
  7. make install



--> Per compilare php nel laboratorio LINFA il comando “configure” deve essere:./configure --disable-libxml --disable-dom –disable-simplexml --disable-xml --disable-xmlreader --disable-xmlwriter –without-pear --prefix=/tmp/apache --with-apxs2=/tmp/apache/bin/apxs


--> Nel file <prefix>/conf/httpd.conf ci devono essere due righe:

LoadModule php5_module     modules/libphp5.so
Questa direttiva viene aggiunta automaticamente quando si fa make install (se manca c'è stato un errore nell'installazione).

AddType application/x-httpd-php .php
Va aggiunto a mano!
Indica che i file con estensione .php sono di tipo “application/x-httpd-php” e devono quindi essere gestiti dall'interprete PHP.

Prova: se tutto è andato a buon fine si può creare una pagina di prova PHP per testarne il funzionamento:

<html>
<body>
<h1>It works!</h1>
<?php phpinfo(); ?>
</body>
</html>


Creazione e utilizzo degli array
Creazione: $arr=array(chiave1=>valore1, chiave2=>valore2)
Inserire/modificare un valore in un array: $arr[chiave]=valore
Leggere un valore in un array: echo $arr[chiave];
Stampare il contenuto di un array: print_r($arr)
Cancellare un elemento: unset($arr[chiave]);
Scorrere un array: foreach ($arr as $key=>$val)

Array Superglobals per l'interazione con il server http:
$_SERVER: variabili relative al server e alla richiesta
$_GET: variabili fornite dal metodo GET HTTP
$_POST: variabili fornite dal metodo POST HTTP
$_COOKIE: variabili fornite dai cookie HTTP
$_FILES: variabili riguardanti file trasmessi al server
tramite upload
$_ENV: variabili d'ambiente
$_REQUEST: qualsiasi input fornito dall'utente
(confluenza delle variabili GET, POST e COOKIE)


Creazione di un form HTML (con relativo programma in PHP):
form method=GET action="calcolatrice.php"> Metodo associato (per passaggio parametri) e nome dell'azione da caricare (il file stesso)
<input type=text name=a></input> Casella di input con testo salvato in a
<select name=operazione> Variabile in cui salvare risultato selezione

Campi del menù a tendina, fra apici la stringa che compare a schermo
<option value="somma">+</option>

<option value="sottrazione">-</option>
<option value="moltiplicazione">*</option>

<option value="divisione">/</option>
</select> Termine delle possibili selezioni
<input type=text name=b></input> Testo salvato in b
<input type=submit name="go" value="calcola"></input> Tasto per far partire azione
</form>

<?php
$a=$_REQUEST["a"];
$b=$_REQUEST["b"];
$op=$_REQUEST["operazione"];
$ops=array("somma"=>"+", "sottrazione"=>"-",
"moltiplicazione"=>"*", "divisione"=>"/");
if ($op=="somma"){$res=$a+$b;}
if ($op=="sottrazione"){$res=$a-$b;}
if ($op=="moltiplicazione"){$res=$a*$b;}
if ($op=="divisione"){$res=$a/$b;}
if ($_REQUEST["go"]=="calcola"){
echo "<p>$a $ops[$op] $b = $res </p>";
}
?>
</body></html>

Parsing dei parametri passati:
<html>
<head><title>PHP test</title></head>
<body>
<?php
$lang=$_SERVER[HTTP_ACCEPT_LANGUAGE];
$hello=array("it"=>"ciao", "fr"=>"bonjour", "en"=>"hello");
echo "Full Accept-Language Header: \"$lang\" <br>\n";
$lang=substr($lang, 0, 2);
echo "Identified language: \"$lang\"<br>\n";
echo "<h1>$hello[$lang]</h1>";
?>
</body>
</html>
 




Nessun commento:

Posta un commento