Installazione in ambiente Linux
Tutte le attuali distribuzioni includono il supporto PHP. Quella che adopero attualmente, RedHat 7.2, è stabile ed efficiente. Ma vi capiterà sicuramente di dover aggiornare il vostro server Linux, di conseguenza è necessario configurarlo manualmente, dopo aver scaricato i file opportuni dal sito della GTK, da quello Zend, oppure da quello ufficiale php.
Si possono scegliere le confezioni precompilate RPM, che si installano facilmente col comando
    rpm -ivh nomefile.rpm.
Altrimenti bisogna compilare direttamente il pacchetto e comunemente si usa come web server Apache Occorrerà decomprimere i sorgenti col comando
   tar xvfz nomefile.tar.gz
poi si dovrà eseguire il comando di configurazione dopo essere entrati nella directory appena creata
   ./configure
se si desiderano altre opzioni, si potrà accedere all'help con ./configure --help, come ad esempio nella configurazione sotto Apache con MySQL ./configure --with-mysql --with-apxs
successivamente occorrerà configurarlo col comando
   make
   make install
Poi occorre configurare e copiare php.ini (in genere in /usr/local/lib ma anche in /etc/) anche se è meglio lasciarlo con le impostazioni predefinite, almeno inizialmente per chi è alle prime armi. Occorrerà aggiungere file di configurazione del server apache (http.conf in /etc/httpd/conf/) aggiungendo una riga che permetterà al demone di interpretare correttamente i file con estensione php
   AddType application/x-httpd-php  .php
a questo punto si riavvia il server web con la nuova configurazione
   /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf
La directory in cui potremo inserire in nostri  file php è la stessa che viene usata, naturalmente, da linux
  /var/www/html
Infine l'esecuzione in un browser, Konqueror per esempio, di un file che contenga lo script <?php phpinfo() ?> ci dirà se  la configurazione e l'installazione hanno avuto successo (vedi figura).

Le funzioni Include() e Require()
Le due funzioni permettono di includere un secondo file in quello in cui esse sono presenti. Mentre il primo può essere utilizzato in espressioni condizionali, il secondo è a queste refrattario e ciò spiega il maggior uso del primo, a causa appunto della sua notevole flessibilità.
Ora, ammesso che voi dobbiate ripetere la stessa pagina numerose volte e cambiare solo il corpo centrale, potreste benissimo includere, a seconda delle esigenze, ora l'uno ora l'altro. Se poi aggiungete il fatto che include(), come detto, risente delle istruzioni condizionali, ne comprenderete certamente l'enorme utilità. Prima di mostrarvi un esempio, ragionate sul fatto che in ASP il comando corrispondente non è una funzione, ma un comando vero e proprio che IIS legge e processa prima della pagina HTML, poi lo esegue con quest'ultima, obbligando il programmatore a fare ragionamenti estremamente astrusi proprio sull'uso delle espressioni condizionali, pari a quelle dell'uovo e della gallina. In PHP invece si tratta di una normale funzione, presente nel normale flusso di istruzioni del programma e con tutti i vantaggi che ne derivano!

il file da includere myinclude

<b><i> Buon giorno papi </i></b>

il file richiamante include.php

<html><head><title>include file</title></head>
<body>
<?php
     include("myinclude");
 ?>
</body>
</html>

La funzione mail()
Essa permette di inviare e-mail ed ha questa sintassi
   bool mail (string a, string soggetto, string messaggio [, string header_addizionali, string [parametri_addizionali]])
come si può intuire facilmente, essa restituisce TRUE se è andato tutto bene, FALSE nel caso contrario. Ecco un esempio completo tratto direttamente dal manuale ufficiale.

<?php
/* destinatari */
$destinatari .= "Mary <mary@u.college.edu>" . ", " ; // da notare il comma
$destinatari .= "Kelly <kelly@u.college.edu>" . ", ";
$destinatari .= "ronabop@php.net";

/* soggetto */
$soggetto = "Promemoria compleanno per Agosto";

/* messaggio */
$messaggio .= "La seguente mail include una tabella ASCII formattata\n";
$messaggio .= "Giorno \t\tMese \t\tAnno\n";
$messaggio .= "3-terzo \t\tAgo \t\t1970\n";
$messaggio .= "17-esimo\t\tAgo \t\t1973\n";

/* è possibile inserire una blocco con la firma */ 
$messaggio .= "--\r\n"; //Delimitatore di firma
$messaggio .= "Promemoria di compleanno con senza proprietà d'autore ma di pubblico dominio";

/* intestazioni addizionali per errori, campo CC, BCC, etc */

$intestazioni .= "From: Birthday Reminder <birthday@php.net>\n";
$intestazioni .= "X-Sender: <birthday@php.net>\n"; 
$intestazioni .= "X-Mailer: PHP\n"; // mailer
$intestazioni .= "X-Priority: 1\n"; // Messaggio urgente!
$intestazioni .= "Return-Path: <birthday@php.net>\n";  // Indirizzo di ritorno per errori

/* Se si vuole inviare una mail in formato html, togliere il commento alla seguente linea */
// $intestazioni .= "Content-Type: text/html; charset=iso-8859-1\n"; // Tipo Mime

$intestazioni .= "cc:birthdayarchive@php.net\n"; // CC in copia a
$intestazioni .= "bcc:birthdaycheck@php.net, birthdaygifts@php.net\n"; // BCC in copia cieca a

/* ed infine l'invio */
mail($destinatari, $soggetto, $messaggio, $intestazioni);

?>

Upload dei file
E' una delle più interessanti caratteristiche del PHP. Infatti con due soli file (uno è un form e l'altro processa i dati ricevuti) è possibile inviare, con tutta sicurezza, dati di qualsiasi tipo via Internet in una directory dedicata appositamente all'upload.
Le variabili necessarie da impostare sono tre:
$userfile_name il nome del file originario inviato dal client
$userfile_size    lunghezza del file in byte
$userfile           il nome temporaneo del file che dovrà essere memorizzato nel server
$userfile_type   tipo di file inviato

a questo punto bisogna costruire il form d'invio opportuno formload.php

<html><head><title>formload.php</title></head><body>

<form enctype="multipart/form-data" action="filesend.php" method="POST">
<!-- **** imponiamo un valore di 100000 byte (100 kbyte)**** -->
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<!-- **** nome del file 'ilfile' 
   accanto apparirà il pulsante [sfoglia] **** -->
File da inviare: <input type="file" name="ilfile"><br>
<input type=submit value="Invia"></td>
</form>

</body></html>

e il file di ricezione filesend.php

<html><head><title>filesend.php</title></head><body>

<b>variabili inviate</b> <BR>
$ilfile           <b><? echo $ilfile ?> </b><BR>
$ilfile_name <b><? echo $ilfile_name ?> </b><BR> 
$ilfile_size    <b><? echo $ilfile_size ?> </b><BR> 
$ilfile_type   <b><? echo $ilfile_type ?> </b><BR> 
 <BR>
<?
  // non è stato inviato nulla ?
  if ($ilfile_size == 0 ) {
    echo "Non è stato inviato alcun file <BR>";
    exit;
  }
  // grandezza superiore a quello richiesto ?
  if ($ilfile_size > 100000 ) {
    echo "Il file eccede la grandezza di 100000 byte <BR>";
    exit;
  }
  // copia il file con funzione copy() dalla directory temporanea a quella di destinazione
  $filetosend = './'. strtolower($ilfile_name);
  if (! copy($ilfile, $filetosend) ) {
    echo "Errore nel copiare file: la directory non ha i permessi di scrittura";
    exit;
  }

?>
</body></html>

Scarica gli esempi allegati

Attenzione: gli esempi qui mostrati funzionano con copia e incolla a patto che vengano tolti tutti i caratteri superflui (colore, spaziatura, ...) utili per una migliore visualizzazione sui browser, ma fastidiosi per il parser PHP!


Pagina precedente - Pagina successiva