cortesi Thu Apr 11 12:39:49 2002 EDT
Modified files:
/phpdoc/it/functions errorfunc.xml
Log:
adding translation up to EN 1.27 by pulici
Index: phpdoc/it/functions/errorfunc.xml
diff -u /dev/null phpdoc/it/functions/errorfunc.xml:1.7
--- /dev/null Thu Apr 11 12:39:49 2002
+++ phpdoc/it/functions/errorfunc.xml Thu Apr 11 12:39:47 2002
@@ -0,0 +1,579 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- EN-Revision: 1.27 Maintainer: pulici Status: ready -->
+ <reference id="ref.errorfunc">
+ <title>Funzioni di gestione degli errori e di logging</title>
+ <titleabbrev>Errori e logging</titleabbrev>
+
+ <partintro>
+ <para>
+ Le seguenti sono le funzioni per la gestione degli errori ed il
+ logging. Esse permettono di definire regole personalizzate per la
+ gestione degli errori, e anche di modificarne la modalit� della
+ gestione stessa. Ci� permette di cambiare ed integrare i
+ messaggi di errore adattandoli alle vostre esigenze.
+ </para>
+ <para>
+ Grazie alle funzioni di logging, � possibile inviare messaggi direttamente
+ ad altre macchine, alla posta elettronica (o ad un gateway pager o di
+ posta elettronica!), ai log di sistema, ecc., in modo da effettuare il log e
+ controllare selettivamente le parti pi� importanti delle vostre applicazioni e
+siti web.
+ </para>
+ <para>
+ Le funzioni di restituzione dell'errore consentono la personalizzazione del
+ livello e del tipo di errore, dal semplice avviso sino a funzioni
+ personalizzate restituite durante gli errori.
+ </para>
+ </partintro>
+
+ <refentry id="function.error-log">
+ <refnamediv>
+ <refname>error_log</refname>
+ <refpurpose>invia un messaggio di errore</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Descrizione</title>
+ <methodsynopsis>
+ <type>int</type><methodname>error_log</methodname>
+ <methodparam><type>string</type><parameter>messaggio</parameter></methodparam>
+ <methodparam
+choice="opt"><type>int</type><parameter>tipo_messaggio</parameter></methodparam>
+ <methodparam
+choice="opt"><type>string</type><parameter>destinazione</parameter></methodparam>
+ <methodparam
+choice="opt"><type>string</type><parameter>header_extra</parameter></methodparam>
+ </methodsynopsis>
+ <para>
+ Invia un messaggio di errore la log del server web, ad una porta
+ <acronym>TCP</acronym> o ad un file. Il primo parametro,
+ <parameter>messaggio</parameter>, � il messaggio di errore che deve
+ essere registrato. Il secondo parametro,
+ <parameter>tipo_messaggio</parameter> indica la destinazione del
+ messaggio:
+ <table>
+ <title><function>error_log</function> tipi di log</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>0</entry>
+ <entry>
+ <parameter>messaggio</parameter> � inviato al log di sistema
+ di PHP, utilizzando il sistema di log del Sistema Operativo o un file,
+ a seconda di come sia impostata la direttiva di configurazione <link
+ linkend="ini.error-log">error_log</link>.
+ </entry>
+ </row>
+ <row>
+ <entry>1</entry>
+ <entry>
+ <parameter>messaggio</parameter> � inviato via posta elettronica
+ all'indirizzo indicato nel parametro <parameter>destinazione</parameter>
+ parameter.
+ Questo � l'unico tipo di messaggio nel quale viene usato il quarto
+ parametro, <parameter>headers_extra</parameter>. Questo tipo di
+ messaggio utilizza la stessa funzione interna di
+ <function>mail</function>.
+ </entry>
+ </row>
+ <row>
+ <entry>2</entry>
+ <entry>
+ <parameter>messaggio</parameter> viene inviato attraverso la connessione
+ di debug di PHP. Questa opzione � disponibile solo nel caso che il
+ <link linkend="install.configure.enable-debugger">debug remoto sia stato
+ abilitato</link>. In questo caso, il parametro
+ <parameter>destinazione</parameter> specifica il nome dell'host o
+ l'indirizzo IP e opzionalmente, numero di porta, del socket che ricever�
+ l'informazione di debug.
+ </entry>
+ </row>
+ <row>
+ <entry>3</entry>
+ <entry>
+ <parameter>messaggio</parameter> � aggiunto al file
+ <parameter>destinazione</parameter>.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ <warning>
+ <para>
+ Il debug remoto via TCP/IP � una caratteristica di PHP 3
+ <emphasis>non</emphasis> disponibile in PHP 4.
+ </para>
+ </warning>
+ <para>
+ <example role="php">
+ <title><function>error_log</function> esempi</title>
+ <programlisting role="php">
+<![CDATA[
+// Invia notifica via log del server se non � possibile
+// connettersi al database.
+if (!Ora_Logon ($username, $password)) {
+ error_log ("Database Oracle non disponibile!", 0);
+}
+
+// Notifica via posta elettronica all'amministratore se esauriscono i FOO
+if (!($foo = allocate_new_foo()) {
+ error_log ("Problemi seri, FOO esauriti!", 1,
+ "[EMAIL PROTECTED]");
+}
+
+// altri modi per chiamare error_log():
+error_log ("Problema!", 2, "127.0.0.1:7000");
+error_log ("Problema!", 2, "loghost");
+error_log ("Problema!", 3, "/var/tmp/my-errors.log");
+]]>
+ </programlisting>
+ </example>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.error-reporting">
+ <refnamediv>
+ <refname>error_reporting</refname>
+ <refpurpose>definisce quali errori di PHP vengono restituiti</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <methodsynopsis>
+ <type>int</type><methodname>error_reporting</methodname>
+ <methodparam
+choice="opt"><type>int</type><parameter>livello</parameter></methodparam>
+ </methodsynopsis>
+ <para>
+ Definisce il livello di restituzione di errore di PHP e ritorna il vecchio
+ livello. Il livello di restituzione dell'errore pu� essere una maschera di
+ bit o una costante named. L'utilizzo delle costanti named � caldamente
+ consigliato per assicurare la compatibilit� con versioni future.
+ All'aggiungere di livelli di errore, la gamma degli interi viene incrementata,
+ perci� vecchi livelli di errore basati sull'intero non si comporteranno
+ sempre come ci si aspetta.
+ <example role="php">
+ <title>Error Integer changes</title>
+ <programlisting role="php">
+<![CDATA[
+error_reporting (55); // Equivalente a E_ALL ^ E_NOTICE in PHP 3
+
+/* ...in PHP 4, '55' indica (E_ERROR | E_WARNING | E_PARSE |
+E_CORE_ERROR | E_CORE_WARNING) */
+
+error_reporting (2039); // Equivalente a E_ALL ^ E_NOTICE in PHP 4
+
+error_reporting (E_ALL ^ E_NOTICE); // Il medesimo in PHP 3 e 4
+]]>
+ </programlisting>
+ </example>
+ Seguite i collegamenti delle costanti per conoscerne il significato:
+ <table>
+ <title><function>error_reporting</function> valori dei bit</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>valore</entry>
+ <entry>costante</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>1</entry>
+ <entry>
+ <link linkend="internal.e-error">E_ERROR</link>
+ </entry>
+ </row>
+ <row>
+ <entry>2</entry>
+ <entry>
+ <link linkend="internal.e-warning">E_WARNING</link>
+ </entry>
+ </row>
+ <row>
+ <entry>4</entry>
+ <entry>
+ <link linkend="internal.e-parse">E_PARSE</link>
+ </entry>
+ </row>
+ <row>
+ <entry>8</entry>
+ <entry>
+ <link linkend="internal.e-notice">E_NOTICE</link>
+ </entry>
+ </row>
+ <row>
+ <entry>16</entry>
+ <entry>
+ <link linkend="internal.e-core-error">E_CORE_ERROR</link>
+ </entry>
+ </row>
+ <row>
+ <entry>32</entry>
+ <entry>
+ <link linkend="internal.e-core-warning">E_CORE_WARNING</link>
+ </entry>
+ </row>
+ <row>
+ <entry>64</entry>
+ <entry>
+ <link linkend="internal.e-compile-error">E_COMPILE_ERROR</link>
+ </entry>
+ </row>
+ <row>
+ <entry>128</entry>
+ <entry>
+ <link linkend="internal.e-compile-warning">E_COMPILE_WARNING</link>
+ </entry>
+ </row>
+ <row>
+ <entry>256</entry>
+ <entry>
+ <link linkend="internal.e-user-error">E_USER_ERROR</link>
+ </entry>
+ </row>
+ <row>
+ <entry>512</entry>
+ <entry>
+ <link linkend="internal.e-user-warning">E_USER_WARNING</link>
+ </entry>
+ </row>
+ <row>
+ <entry>1024</entry>
+ <entry>
+ <link linkend="internal.e-user-error">E_USER_NOTICE</link>
+ </entry>
+ </row>
+ <row>
+ <entry>2047</entry>
+ <entry>
+ <link linkend="internal.e-all">E_ALL</link>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ <para>
+ <example role="php">
+ <title>esempi <function>error_reporting</function></title>
+ <programlisting role="php">
+<![CDATA[
+// Turn off all error reporting
+error_reporting (0);
+
+// Report simple running errors
+error_reporting (E_ERROR | E_WARNING | E_PARSE);
+
+// Reporting E_NOTICE can be good too (to report uninitialized
+// variables or catch variable name misspellings)
+error_reporting (E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
+
+// Report all PHP errors (use bitwise 63 in PHP 3)
+error_reporting (E_ALL);
+]]>
+ </programlisting>
+ </example>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.restore-error-handler">
+ <refnamediv>
+ <refname>restore_error_handler</refname>
+ <refpurpose>
+ Ripristina la precedente funzione di gestione dell'errore
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Descrizione</title>
+ <methodsynopsis>
+ <type>void</type><methodname>restore_error_handler</methodname>
+ <void/>
+ </methodsynopsis>
+ <para>
+ Utilizzata dopo la modifica della funzione di gestione degli errori con
+ <function>set_error_handler</function>, per ripristinare la precedente
+ modalit� di gestione (che pu� essere quella di configurazione o una
+ definita dall'utente).
+ </para>
+ <para>
+ Vedere anche <function>error_reporting</function>,
+ <function>set_error_handler</function>,
+ <function>trigger_error</function>, <function>user_error</function>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.set-error-handler">
+ <refnamediv>
+ <refname>set_error_handler</refname>
+ <refpurpose>
+ Configura una funzione di gestione dell'errore definita dall'utente.
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Descrizione</title>
+ <methodsynopsis>
+ <type>string</type><methodname>set_error_handler</methodname>
+
+<methodparam><type>string</type><parameter>error_handler</parameter></methodparam>
+ </methodsynopsis>
+ <para>
+ Configura una funzione utente (<parameter>error_handler</parameter> per
+ gestire gli errori in uno script. Restituisce, se esistente, il precedente
+ gestore degli errori, o &false; in caso di errore. Questa funzione pu�
+ essere utilizzata per definire un sistema personalizzato di gestione degli
+ errori durante l'esecuzione, per esempio in applicazioni dove sia
+ necessario svuotare dati o file in caso di un determinato errore
+ critico, o quando sia necessario, in determinate condizioni, attivare
+ un errore (con <function>trigger_error</function>)
+ </para>
+ <para>
+ La funzione utente richiede 2 parametri: il codice errore e una stringa
+ descrittiva dell'errore. Da PHP 4.0.2, � possibile opzionalmente fornire
+ altri 3 parametri aggiuntivi: il nome del file, il numero di riga e il
+ contesto dove � avvenuto l'errore (un array che punto alla tabella
+ dei simboli attiva nel punto in cui � avvenuto l'errore).
+ </para>
+ <para>
+ L'esempio sottostante mostra la gestione
+ delle eccezioni interne attivando gli errori e gestendoli tramite
+ una funzione definita dall'utente:
+ <example>
+ <title>
+ Gestione errori con <function>set_error_handler</function> e
+ <function>trigger_error</function>
+ </title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+// ridefinisce la costante dell'errore utente - solo PHP 4
+define (FATAL,E_USER_ERROR);
+define (ERROR,E_USER_WARNING);
+define (WARNING,E_USER_NOTICE);
+
+// configura il livello di restituzione errore per questo script
+error_reporting (FATAL | ERROR | WARNING);
+
+// funzione di gestione dell'errore
+function myErrorHandler ($errno, $errstr, $errfile, $errline) {
+ switch ($errno) {
+ case FATAL:
+ echo "<b>FATAL</b> [$errno] $errstr<br>\n";
+ echo " Fatal error in line ".$errline." of file ".$errfile;
+ echo ", PHP ".PHP_VERSION." (".PHP_OS.")<br>\n";
+ echo "Aborting...<br>\n";
+ exit 1;
+ break;
+ case ERROR:
+ echo "<b>ERROR</b> [$errno] $errstr<br>\n";
+ break;
+ case WARNING:
+ echo "<b>WARNING</b> [$errno] $errstr<br>\n";
+ break;
+ default:
+ echo "Unkown error type: [$errno] $errstr<br>\n";
+ break;
+ }
+}
+
+// funzione di prova del gestore di errore
+function scale_by_log ($vect, $scale) {
+ if ( !is_numeric($scale) || $scale <= 0 )
+ trigger_error("log(x) for x <= 0 is undefined, you used: scale = $scale",
+ FATAL);
+ if (!is_array($vect)) {
+ trigger_error("Incorrect input vector, array of values expected", ERROR);
+ return null;
+ }
+ for ($i=0; $i<count($vect); $i++) {
+ if (!is_numeric($vect[$i]))
+ trigger_error("Value at position $i is not a number, using 0 (zero)",
+ WARNING);
+ $temp[$i] = log($scale) * $vect[$i];
+ }
+ return $temp;
+}
+
+// configura il gestore dell'errore definito dall'utente
+$old_error_handler = set_error_handler("myErrorHandler");
+
+// attiva alcuni errori, definendo prima un array misto con elementi non numerici
+echo "vector a\n";
+$a = array(2,3,"foo",5.5,43.3,21.11);
+print_r($a);
+
+// genera il secondo array, generando un avviso
+echo "----\nvector b - a warning (b = log(PI) * a)\n";
+$b = scale_by_log($a, M_PI);
+print_r($b);
+
+// questo � il problema, passiamo una stringa al posto di un array
+echo "----\nvector c - an error\n";
+$c = scale_by_log("not array",2.3);
+var_dump($c);
+
+// errore critico, il log di zero o di un numero negativo non � definito
+echo "----\nvector d - fatal error\n";
+$d = scale_by_log($a, -2.5);
+
+?>
+]]>
+ </programlisting>
+ </example>
+ E l'esecuzione di questo script, dar�
+ <informalexample>
+ <programlisting>
+<![CDATA[
+vector a
+Array
+(
+ [0] => 2
+ [1] => 3
+ [2] => foo
+ [3] => 5.5
+ [4] => 43.3
+ [5] => 21.11
+)
+----
+vector b - a warning (b = log(PI) * a)
+<b>WARNING</b> [1024] Value at position 2 is not a number, using 0 (zero)<br>
+Array
+(
+ [0] => 2.2894597716988
+ [1] => 3.4341896575482
+ [2] => 0
+ [3] => 6.2960143721717
+ [4] => 49.566804057279
+ [5] => 24.165247890281
+)
+----
+vector c - an error
+<b>ERROR</b> [512] Incorrect input vector, array of values expected<br>
+NULL
+----
+vector d - fatal error
+<b>FATAL</b> [256] log(x) for x <= 0 is undefined, you used: scale = -2.5<br>
+ Fatal error in line 36 of file trigger_error.php, PHP 4.0.2 (Linux)<br>
+Aborting...<br>
+]]>
+ </programlisting>
+ </informalexample>
+ </para>
+ <para>
+ E' importante ricordare che il gestore degli errori standard di PHP viene
+ completamente saltato. La configurazione di <function>error_reporting</function>
+non avr� effetto
+ e il vostro gestore di errore sar� richiamato senza considerarla - in ogni
+ caso sar� possibile leggere il valore corrente di
+<function>error_reporting</function>
+ ed agire di conseguenza. E' di particolare rilevanza il fatto che questo
+ valore sar� 0 se la riga che causa l'errore viene precedura dall'
+ <link linkend="language.operators.errorcontrol">operatore di controllo errore
+@</link>.
+ </para>
+ <para>
+ Notare anche che � vostra responsabilit� definire <function>die</function>
+ se necessario. Se la funzione di gestione dell'errore ritorna, lo script
+ continer� l'esecuzione con la riga seguente a quella che ha causato
+ l'errore.
+ </para>
+ <para>
+ Vedere anche <function>error_reporting</function>,
+ <function>restore_error_handler</function>,
+ <function>trigger_error</function>, <function>user_error</function>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.trigger-error">
+ <refnamediv>
+ <refname>trigger_error</refname>
+ <refpurpose>
+ Genera un messaggio a livello utente di errore/avviso/avvertimento message
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Descrizione</title>
+ <methodsynopsis>
+ <type>void</type><methodname>trigger_error</methodname>
+ <methodparam><type>string</type><parameter>error_msg</parameter></methodparam>
+ <methodparam
+choice="opt"><type>int</type><parameter>error_type</parameter></methodparam>
+ </methodsynopsis>
+ <para>
+ Utilizzata per attivare una condizione di errore utente, pu�
+ essere usata in congiunzione con il gestore di errore interno, o con
+ una funzione definita dall'utente che sia configurata per essere il
+ nuovo gestore di errore con (<function>set_error_handler</function>).
+ Funziona soltanto con la famiglia di costanti E_USER, e punta alla
+ predefinita <constant>E_USER_NOTICE</constant>.
+ </para>
+ <para>
+ Questa funzione � utile quando sia necessario generare una particolare
+ risposta ad un'eccezione durante l'esecuzione.
+ Per esempio:
+ <informalexample>
+ <programlisting>
+<![CDATA[
+if (assert ($divisor == 0))
+ trigger_error ("Cannot divide by zero", E_USER_ERROR);
+]]>
+ </programlisting>
+ </informalexample>
+ <note>
+ <para>
+ Vedere <function>set_error_handler</function> per un esempio pi� esplicativo.
+ </para>
+ </note>
+ </para>
+ <para>
+ Vedere anche <function>error_reporting</function>,
+ <function>set_error_handler</function>,
+ <function>restore_error_handler</function>,
+ <function>user_error</function>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.user-error">
+ <refnamediv>
+ <refname>user_error</refname>
+ <refpurpose>
+ Genera un messaggio di errore/avviso/avvertimento a livello utente
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Descrizione</title>
+ <methodsynopsis>
+ <type>void</type><methodname>user_error</methodname>
+ <methodparam><type>string</type><parameter>error_msg</parameter></methodparam>
+ <methodparam
+choice="opt"><type>int</type><parameter>error_type</parameter></methodparam>
+ </methodsynopsis>
+ <para>
+ Questo � un alias per la funzione <function>trigger_error</function>.
+ </para>
+ <para>
+ Vedere anche <function>error_reporting</function>,
+ <function>set_error_handler</function>,
+ <function>restore_error_handler</function> e
+ <function>trigger_error</function>
+ </para>
+ </refsect1>
+ </refentry>
+
+ </reference>
+
+<!-- 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:"../../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
+-->
+