mirror of
https://github.com/php/doc-it.git
synced 2026-03-24 07:32:12 +01:00
532 lines
24 KiB
XML
532 lines
24 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- EN-Revision: 3e08a8aae657492bdcdc7c550099ddf072042fa9 Maintainer: pastore Status: ready -->
|
|
<!-- CREDITS: cortesi -->
|
|
<chapter xml:id="tutorial" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<title>Una semplice introduzione</title>
|
|
|
|
<para>
|
|
Di seguito, in una breve e semplice introduzione, vorremmo mostrare alcuni esempi
|
|
per l'utilizzo di PHP. Essi sono relativi soltanto alla creazione dinamica di pagine web,
|
|
anche se PHP non ha funzionalità limitate esclusivamente alla creazione
|
|
delle sole pagine web. Fare riferimento alla sezione intitolata
|
|
<link linkend="intro-whatcando">Cosa può fare PHP</link> per avere ulteriori informazioni.
|
|
</para>
|
|
<para>
|
|
Le pagine web create con PHP vengono trattate come normali pagine HTML e
|
|
possono essere create e modificate nello stesso modo in cui si sviluppano
|
|
normali pagine HTML.
|
|
</para>
|
|
|
|
<section xml:id="tutorial.requirements">
|
|
<title>Di cosa ho bisogno?</title>
|
|
<para>
|
|
In questo tutorial assumiamo che il vostro server abbia il suporto PHP attivato
|
|
e che tutti i file con estensione <filename>.php</filename>
|
|
vengano gestiti da questo. Quasi in tutti
|
|
i server questa è l'estensione di default per i file PHP., ma consultatevi col vostro
|
|
system administrator per sicurezza. Se il vostro server supporta PHP, allora, non è
|
|
necessario fare nulla. Semplicemente create i vostri file <filename>.php</filename> e
|
|
scaricateli nella vostra directory web, il server le analizzerà e le eseguirà
|
|
magicamente. Non è necessario compilare nulla nè installare strumenti aggiuntivi.
|
|
Si pensi ai file PHP come a dei semplici file HTML con una intera famiglia
|
|
aggiuntiva di magici tags che consentono di fare ogni
|
|
sorta di cose.
|
|
</para>
|
|
<para>
|
|
Diciamo che si vuole risparmiare larghezza di banda preziosa e sviluppare a livello locale.
|
|
In questo caso, si vorrà installare un web server, come
|
|
<link xlink:href="&url.apache;">Apache</link>, e naturalmente
|
|
<link xlink:href="&url.php.downloads;">PHP</link>. È molto probabile
|
|
che si desidera installare anche un database, come
|
|
<link xlink:href="&url.mysql.docs;">MySQL</link>.
|
|
</para>
|
|
<para>
|
|
È possibile installare questi applicativi singolarmente o scegliere un modo più semplice. Il nostro
|
|
manuale ha <link linkend="install">istruzioni per l'installazione di
|
|
PHP</link> (ammesso che si abbia già qualche web server funzionante). Se
|
|
si hanno problemi con l'installazione di PHP, suggeriamo di porre
|
|
della domande alla nostra <link xlink:href="&url.php.mailing-lists;">mailing list
|
|
dell'installazione</link>. Se si sceglie di andare sulla strada più semplice, quindi
|
|
<link xlink:href="&url.installkits;">individuare un pacchetto pre-configurato</link>
|
|
per il sistema operativo, che installa automaticamente tutti questi elementi
|
|
con pochi click. È facile configurare su qualsiasi sistema operativo, incluso MaxOSX,
|
|
Linux e Windows, un server web con il supporto a PHP.
|
|
Su Linux, è possibile trovare <link xlink:href="&url.rpmfind;">rpmfind</link> e
|
|
<link xlink:href="&url.rpmfind.pbone;">PBone</link> utili per
|
|
localizzare gli RPM. Potresti voler visitare anche <link
|
|
xlink:href="&url.apt-get;">apt-get</link> per trovare pacchetti per Debian.
|
|
</para>
|
|
</section>
|
|
|
|
<section xml:id="tutorial.firstpage">
|
|
<title>La prima pagina PHP</title>
|
|
<para>
|
|
Creare un file con nome <filename>ciao.php</filename> nella directory
|
|
principale del web server (<varname>DOCUMENT_ROOT</varname>)
|
|
che abbia il seguente contenuto:
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>Il nostro primo script PHP: <filename>ciao.php</filename></title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<html>
|
|
<head>
|
|
<title>Test PHP</title>
|
|
</head>
|
|
<body>
|
|
<?php echo "Hello World!<p>"; ?>
|
|
</body>
|
|
</html>
|
|
]]>
|
|
</programlisting>
|
|
<simpara>
|
|
Usa il tuo browser per accedere al file con il tuo URL del web server, finendo
|
|
con il collegamento al file <literal>/ciao.php</literal>. Quando si sviluppa localmente questo
|
|
URL sarà simile a <literal>http://localhost/ciao.php</literal>
|
|
o <literal>http://127.0.0.1/ciao.php</literal> ma questo dipende dalla
|
|
configurazione del web server. Se tutto è configurato correttamente, questo
|
|
file verrà analizzato da PHP e il seguente output sarà inviato al
|
|
vostro browser:
|
|
</simpara>
|
|
<screen role="html">
|
|
<![CDATA[
|
|
<html>
|
|
<head>
|
|
<title>Test PHP</title>
|
|
</head>
|
|
<body>
|
|
<p>Hello World</p>
|
|
</body>
|
|
</html>
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
Questo programma è molto semplice e sicuramente non era necessario fare ricorso a
|
|
PHP per creare una pagina come quella. Tutto ciò che essa fa è visualizzare:
|
|
<literal>Hello World!</literal> usando l'istruzione <function>echo</function>
|
|
di PHP. Nota che il file <emphasis>non ha bisogno di essere eseguibile</emphasis>
|
|
o speciale in alcun modo. Il server viene a sapere che questo file deve essere interpretato
|
|
da PHP perché si è utilizzata l'estensione ".php", per la quale il server è configurato
|
|
per passarlo a PHP. Si pensi ad esso come ad un normale file HTML nel quale sono contenuti
|
|
uno speciale set di tags che permettono di eseguire una moltitudine di cose interessanti.
|
|
</para>
|
|
<para>
|
|
Se si è provato questo esempio e non ha dato alcun output, o è apparso un pop-up
|
|
che chiedeva se scaricare la pagina, o se è apparso il file come testo, probabilmente che
|
|
il server su cui si stanno effettuando le prove non ha abilitato PHP o non è configurato opportunamente.
|
|
Provare a chiedere al proprio amministratore di abilitarlo per voi usando il capitolo
|
|
del manuale dedicato all'<link linkend="install">Installazione</link>.
|
|
Se si vogliono sviluppare in locale script PHP, leggere anche il capitolo
|
|
sull'installazione per assicurarsi che tutto sia configurato
|
|
correttamente. Assicurarsi che si accede al file via http con il server
|
|
che fornisce l'output. Se si richiama il file semplicemente dal proprio file
|
|
system, allora non sarà analizzato da PHP. Se i problemi persistono comunque,
|
|
non esitare a utilizzare una delle tante
|
|
opzioni del<link xlink:href="&url.php.support;">supporto PHP</link>.
|
|
</para>
|
|
<para>
|
|
L'obiettivo dell'esempio è quello di mostrare il formato speciale dei tag PHP.
|
|
In questo esempio abbiamo usato <literal><?php</literal> per indicare
|
|
l'inizio di un tag PHP. Quindi abbiamo scritto l'istruzione PHP e abbiamo lasciato la modalità PHP usando
|
|
il tag di chiusura, <literal>?></literal>. All'interno di un file HTML come questo si può
|
|
entrare ed uscire dalla modalità PHP quante volte si desidera. Per ulteriori dettagli,
|
|
leggere la sezione del manuale su <link linkend="language.basic-syntax">
|
|
sintassi di base di PHP</link>.
|
|
</para>
|
|
|
|
<note>
|
|
<info><title>Nota riguardo i Line Feed</title></info>
|
|
<para>
|
|
I Line feed hanno poco significato in HTML, rimangono comunque una buona idea
|
|
per rendere l'aspetto dell'HTML bello e pulito inserendo le line feeds al suo interno. Una
|
|
linefeed che segue immediatamente dopo una chiusura
|
|
<literal>?></literal> sarà rimossa da PHP. Questo può essere estremamente
|
|
utile quando si inseriscono molti blocchi PHP o si includono file
|
|
contenenti PHP che non dovrebbero avere dell'output. Allo stesso tempo
|
|
può esserci un po' di confusione. È possibile inserire uno spazio dopo la chiusura
|
|
<literal>?></literal> per forzare uno spazio e un line feed da stampare,
|
|
o puoi inserire un line feed esplicito nell'ultimo echo/print dall'interno
|
|
del blocco PHP.
|
|
</para>
|
|
</note>
|
|
|
|
<note>
|
|
<title>Nota riguardo gli editor di testo</title>
|
|
<para>
|
|
Esistomo molti editor di testo e Integrated Development Environment (IDE)
|
|
che possono essere usati per creare, modificare e gestire file PHP. Una lista parziale
|
|
di questi strumenti è disponibile qui: <link xlink:href="&url.phpeditorlist;">Lista degli Editor
|
|
PHP</link>. Se si desidera suggerire un nuovo programma, visitare la pagina sopra
|
|
e chiedere al curatore di aggiungerlo alla lista. Avere
|
|
un editor con evidenziazione della sintassi può essere utile.
|
|
</para>
|
|
</note>
|
|
|
|
<note>
|
|
<title>Nota riguardo i Word Processor</title>
|
|
<para>
|
|
Word processor quali StarOffice Writer, Microsoft Word e Abiword non
|
|
sono una buona scelta per modificare i file PHP. Se si volessero utilizzare comunque per questo
|
|
script d'esempio, ci si deve assicurare che il file venga salvato come <emphasis>testo
|
|
</emphasis> o PHP non sarà in grado di leggere ed eseguire lo script.
|
|
</para>
|
|
</note>
|
|
|
|
<note>
|
|
<title>Nota riguardo Blocco Note di Windows</title>
|
|
<para>
|
|
Se si scrive codice usando l'applicazione di Windows Blocco Note, occorre assicurarsi
|
|
che i file vengano salvati con estensione <filename>.php.</filename> (Blocco Note aggiunge
|
|
automaticamente l'estensione <filename>.txt</filename> ai file, a meno che non si intraprenda uno dei passi
|
|
descritti di seguito.) Quando si salva il file e
|
|
viene chiesto il nome da assegnargli,scrivere il nome fra virgolette
|
|
(ad esempio: "<filename>ciao.php</filename>"). In alternativa, si può cliccare sul
|
|
menu a tendina 'Documenti di Testo' nella finestra di 'Salvataggio' e cambiare l'impostazione
|
|
in "Tutti i File". A quel punto si può inserire il nome del file, senza usare le virgolette.
|
|
</para>
|
|
</note>
|
|
|
|
<para>
|
|
Ora che si è creato con successo uno script funzionante in PHP, è
|
|
il momento di creare il più famoso script PHP! Effettuare una chiamata alla funzione
|
|
<function>phpinfo</function> e si vedranno un sacco di informazioni
|
|
utili sul proprio sistema e configurazioni come le
|
|
<link linkend="language.variables.predefined">variabili predefinite</link> disponibili,
|
|
i moduli PHP caricati, e le impostazioni della
|
|
<link linkend="configuration">configurazione</link>. Prendere un po' di tempo e rivedere queste importanti informazioni.
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<info><title>Ricevere informazioni sul sistema da PHP</title></info>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php phpinfo(); ?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
</section>
|
|
|
|
<section xml:id="tutorial.useful">
|
|
<title>Qualcosa di utile</title>
|
|
<para>
|
|
Andiamo a fare qualcosa di leggermente più utile. Andremo a controllare
|
|
che tipo di browser sta utilizzando la persona che visita le nostre pagine.
|
|
Per fare questo si andrà a controllare la stringa dell'user agent che il browser
|
|
invia come parte della richiesta HTTP. Quest'informazione viene inviata in una <link
|
|
linkend="language.variables">variabile</link>. Le Variabili iniziano sempre
|
|
con il simbolo del dollaro in PHP. La variabile alla quale ci riferiamo adesso
|
|
è <varname>$_SERVER["HTTP_USER_AGENT"]</varname>.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
<varname>$_SERVER</varname> è una variabile
|
|
speciale riservata a PHP la quale contiene tutte le informazioni relative al Web Server.
|
|
È conosciuta come Variabile autoglobale (o Superglobale). Per maggiori informazioni
|
|
è possibile vedere la pagina del manuale relativa alle
|
|
<link linkend="language.variables.superglobals">Variabili Autoglobali</link>. Questo tipo di variabili è stato introdotto nella versione
|
|
<link xlink:href="&url.php.release4.1.0;">4.1.0</link> di PHP. Nelle versioni precedenti abbiamo
|
|
utilizzato gli ormai vecchi array <varname>$HTTP_*_VARS</varname>,
|
|
come <varname>$HTTP_SERVER_VARS</varname>. Dal PHP 5.4.0
|
|
queste variabili sono state rimosse. (Potete guardare nelle note
|
|
del <link linkend="tutorial.oldcode">vecchio codice</link>.)
|
|
</para>
|
|
</note>
|
|
<para>
|
|
Per visualizzare questa variabile, dobbiamo semplicemente:
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<info><title>Stampare a video una variable (un elemento d'Array)</title></info>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
echo $_SERVER["HTTP_USER_AGENT"];
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
<para>
|
|
L'output (risultato) di questo script potrebbe essere:
|
|
</para>
|
|
<screen role="html">
|
|
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
|
|
</screen>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
Ci sono molti <link linkend="language.types">types</link> (tipi) di
|
|
variabili disponibili in PHP. Nell'esempio di sopra abbiamo stampato
|
|
un elemento di un <link linkend="language.types.array">Array</link>.
|
|
Gli Array possono essere molto utili.
|
|
</para>
|
|
<para>
|
|
<varname>$_SERVER</varname> è soltanto una variabile che automaticamente
|
|
viene resa diponibile da PHP. È possibile visualizzare una lunga lista nella
|
|
sezione <link linkend="reserved.variables">Variabili riservate</link> del manuale
|
|
oppure ottenere la lista completa cercando
|
|
nell'output della funzione <function>phpinfo</function> utilizzata nell'esempio
|
|
della precedente sezione.
|
|
</para>
|
|
<para>
|
|
Si possono inserire istruzioni PHP multiple all'interno di un tag PHP e creare
|
|
piccoli blocchi di codice che fanno più di un singolo echo.
|
|
Per esempio, se si volesse controllare se l'utente usa Internet Explorer si potrebbe
|
|
fare questo:
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>Esempi usando le <link linkend="language.control-structures">strutture di
|
|
controllo</link> e le <link linkend="language.functions">funzioni</link></title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
|
|
echo 'Stai usando Internet Explorer<br />';
|
|
}
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
<para>
|
|
L'output di esempio di questo script potrebbe essere:
|
|
</para>
|
|
<screen role="html">
|
|
<![CDATA[
|
|
Stai usando Internet Explorer<br />
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
Qui introduciamo un paio di nuovi concetti. Abbiamo l'istruzione
|
|
<link linkend="control-structures.if">if</link> (se). Se avete una conoscenza
|
|
con la sintassi di base usata dal linguaggio C, questo dovrebbe sembrare
|
|
logico per voi. In caso contrario, dovreste probabilmente prendere
|
|
qualsiasi libro introduttivo di PHP e leggere i primi capitoli, o leggere
|
|
la parte del manuale relativa ai <link linkend="langref">Riferimenti del
|
|
Linguaggio</link>.
|
|
</para>
|
|
<para>
|
|
Il secondo concetto che abbiamo introdotto era la chiamata alla funzione
|
|
<function>strpos</function>. Questa è una funzione sviluppata in PHP
|
|
che cerca una stringa all'interno di un'altra stringa. In questo caso
|
|
abbiamo cercato <literal>'MSIE'</literal> (cosiddetta occorrenza) all'interno della stringa
|
|
<varname>$_SERVER["HTTP_USER_AGENT"]</varname> (cosiddetta haystack). Se la stringa viene trovata all'interno dell'haystack,
|
|
la funzione restituisce la posizione dell'occorrenza
|
|
relativa all'inizio dell'haystack. Altrimenti, restituisce &false;.
|
|
Se non restituisce &false;, l'espressione <link linkend="control-structures.if">if</link>
|
|
viene valutata come &true;
|
|
ed il codice all'interno dei relativi {braces} (sostegni) sarà
|
|
eseguito. Altrimenti, il codice non sarà eseguito. Sentitevi liberi di generare esempi
|
|
simili, con <link linkend="control-structures.if">if</link>,
|
|
<link linkend="control-structures.else">else</link> (altrimenti), ed altre
|
|
funzioni quali <function>strtoupper</function> e <function>strlen</function>.
|
|
Ogni pagina del manuale, relativa a queste funzioni contiene anche degli
|
|
esempi pratici. Se non sei sicuro di come utilizzare queste funzioni, vorrai leggere le
|
|
pagine del manuale su <link linkend="about.prototypes">come leggere una
|
|
definizione di funzione</link> e la sezione sulle
|
|
<link linkend="language.functions">funzioni PHP</link>.
|
|
</para>
|
|
<para>
|
|
Possiamo fare un passo avanti e mostrarvi come potete entrare ed uscite dal modo
|
|
PHP anche dall' interno di un blocco PHP:
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<info><title>Intercalare i modi PHP e HTML</title></info>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
|
|
?>
|
|
<h3>strpos() dovrebbe ritornare non-false</h3>
|
|
<b>Stai usando Internet Explorer</b>
|
|
<?php
|
|
} else {
|
|
?>
|
|
<h3>strpos() dovrebbe ritornare false</h3>
|
|
<b>Non stai usando Internet Explorer</b>
|
|
<?php
|
|
}
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
<para>
|
|
L'output di esempio di questo script potrebbe essere:
|
|
</para>
|
|
<screen role="html">
|
|
<![CDATA[
|
|
<h3>strpos() dovrebbe ritornare non-false</h3>
|
|
<b>Stai usando Internet Explorer</b>
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
Invece di usare la dichiarazione echo per fare l'output di qualcosa, saltiamo
|
|
fuori dalla modalità PHP inviando soltanto HTML puro. Il punto importante da notare qui
|
|
è che il flusso logico dello script rimane intatto. Solo uno dei blocchi
|
|
di HTML finirà per essere inviato come risposta, dipendendo dal
|
|
risultato di <function>strpos</function>. In altre parole, dipende
|
|
se la stringa <literal>MSIE</literal> viene trovata o meno.
|
|
</para>
|
|
</section>
|
|
|
|
<section xml:id="tutorial.forms">
|
|
<title>Trattare con i Form</title>
|
|
<para>
|
|
Una delle caratteritiche più forti di PHP è il modo in cui
|
|
gestisce i form. Il concetto da comprendere principalmente è che
|
|
qualsiasi elemento di un form sarà automaticamente disponibile per i
|
|
vostri script PHP. Per maggiori informazioni ed esempi relativi all'utilizzo dei
|
|
form consultate la sezione del manuale che si riferisce a le
|
|
<link linkend="language.variables.external">Variabili da sorgenti esterne</link>.
|
|
A seguire un esempio di un form HTML:
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<info><title>Un semplice form HTML</title></info>
|
|
<programlisting role="html">
|
|
<![CDATA[
|
|
<form action="action.php" method="POST">
|
|
<p>Il tuo Nome: <input type="text" name="name" value="" /></p>
|
|
<p>La tua età: <input type="text" name="age" value ="" /></p>
|
|
<p><input type="submit"></p>
|
|
</form>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
Questo form non ha niente di speciale. È un semplice form in HTML che non presenta
|
|
nessun tipo di tags particolari. Quando l'utente riempie questo form
|
|
e preme il pulsante submit, viene richiamata la pagina <filename>action.php</filename>.
|
|
In questo file il risultato sarà qualcosa di simile:
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<info><title>La stampa video di dati dal nostro form</title></info>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
Ciao <?php echo htmlspecialchars($_POST['name']); ?>.
|
|
La tua età è di <?php echo (int)$_POST['age']; ?> anni.
|
|
]]>
|
|
</programlisting>
|
|
<para>
|
|
Ecco un possibile output di questo script:
|
|
</para>
|
|
<screen role="html">
|
|
<![CDATA[
|
|
Ciao Joe. La tua età è di 22 anni.
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
A parte le parti relative a <function>htmlspecialchars</function> e
|
|
<literal>(int)</literal>, ciò che avviene dovrebbe risultare ovvio.
|
|
<function>htmlspecialchars</function> si assicura che qualsiasi carattere
|
|
speciale in HTML sia propriamente codificato in modo che la gente non possa iniettare tag HTML
|
|
o Javascript nella vostra pagina. Per il campo age, in quanto sappiamo che è un
|
|
numero, possiamo semplicemente <link linkend="language.types.typecasting">convertirlo</link>
|
|
in un <type>int</type> il quale si sbarazzerà automaticamente di qualsiasi
|
|
carattere strano. Puoi anche fare questo automaticamente con PHP
|
|
utilizzando l'estensione <link linkend="ref.filter">filter</link>.
|
|
Le variabili <varname>$_POST["name"]</varname> e <varname>$_POST["age"]</varname>
|
|
vengono impostate automaticamente dal PHP. Prima avevamo usato la variabile autoglobal
|
|
<varname>$_SERVER</varname>, ora invece abbiamo introdotto la variabile autoglobal
|
|
<varname>$_POST</varname>
|
|
che contiene tutti i dati di tipo POST. Notate che il <emphasis>metodo</emphasis>
|
|
del nostro form è il POST. Se usassimo il metodo <emphasis>GET</emphasis>
|
|
le informazioni ricavate dal nostro form si troverebbero invece in
|
|
<varname>$_GET</varname>.
|
|
Si può anche usare la variabile autoglobale <varname>$_REQUEST</varname>
|
|
se la provenienza dei dati richiesti non ci interessa. Questa variabile
|
|
contiene un misto di dati GET, POST e COOKIE.
|
|
</para>
|
|
</section>
|
|
|
|
<section xml:id="tutorial.oldcode">
|
|
<title>L'uso di vecchi codici con le nuove versioni di PHP</title>
|
|
<para>
|
|
Da quando il PHP è divenuto un linguaggio di scripting popolare, esistono
|
|
più fonti che producono listati di codice che si possono adoperare nei propri scripts.
|
|
La maggioranza degli sviluppatori del PHP ha cercato di renderlo compatibile con le versioni precedenti,
|
|
perciò uno script creato per una vecchia versione del PHP dovrebbe girare senza modifiche (in teoria) in una più
|
|
recente. In pratica, spesso possono servire delle correzioni.
|
|
</para>
|
|
<para>
|
|
Ecco due delle più importanti modifiche apportate al vecchio codice:
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
I vecchi arrays <varname>$HTTP_*_VARS</varname> non sono più disponibili a partire da
|
|
PHP 5.4.0.
|
|
In PHP <link xlink:href="&url.php.release4.1.0;">4.1.0</link>
|
|
furono introdotti i seguenti <link linkend="language.variables.superglobals">autoglobal arrays</link>:
|
|
Essi sono: <varname>$_GET</varname>, <varname>$_POST</varname>,
|
|
<varname>$_COOKIE</varname>, <varname>$_SERVER</varname>,
|
|
<varname>$_FILES</varname>, <varname>$_ENV</varname>,
|
|
<varname>$_REQUEST</varname>, e <varname>$_SESSION</varname>.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Le variabili esterne non vengono più registrate nel global scope per default.
|
|
In altre parole, da PHP
|
|
<link xlink:href="&url.php.release4.2.0;">4.2.0</link> la direttiva PHP
|
|
<literal>register_globals</literal> è
|
|
<emphasis>off</emphasis> per default in &php.ini;. Il metodo consigliato per accedere
|
|
a questi valori è quello che fa uso degli array autoglobali suddetti. Scripts, libri
|
|
e tutorials più vecchi possono contare su questa
|
|
direttiva su <literal>on</literal>. Se essa è <literal>on</literal>, per esempio, qualcuno
|
|
potrebbe usare <varname>$id</varname> dall'URL
|
|
<literal>http://www.example.com/foo.php?id=42</literal>. La variabile,
|
|
<varname>$_GET['id']</varname> sarebbe disponibile indifferentemente del fatto che sia on od off.
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
Per ulteriori dettagli su queste modifiche, vedere la sezione sulle
|
|
<link linkend="language.variables.predefined">variabili predefinite</link>
|
|
ed i links ad essa connessi.
|
|
</para>
|
|
</section>
|
|
|
|
<section xml:id="tutorial.whatsnext">
|
|
<title>E poi?</title>
|
|
<para>
|
|
Con quello che sapete ora dovreste essere in grado di comprendere la maggior parte
|
|
del manuale ed anche i vari scripts di esempio reperibili nelle
|
|
raccolte di esempi.
|
|
</para>
|
|
<para>
|
|
Per vedere varie slide delle presentazioni che mostrano di più ciò che PHP può fare,
|
|
consultare il Sito del Materiale della Conferenza di PHP:
|
|
<link xlink:href="&url.php.talks;">&url.php.talks;</link>
|
|
</para>
|
|
</section>
|
|
</chapter>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|