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