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
+-->
+


Reply via email to