mirror of
https://github.com/smarty-php/smarty.git
synced 2025-11-02 21:31:48 +01:00
193 lines
6.1 KiB
XML
193 lines
6.1 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: 1.5 Maintainer:gerald Status: ready -->
|
|
|
|
<chapter id="troubleshooting">
|
|
<title>Diagnostic des erreurs</title>
|
|
<para></para>
|
|
<sect1 id="smarty.php.errors">
|
|
<title>Erreurs Smarty/PHP</title>
|
|
<para>
|
|
Smarty peut identifier de nombreuses erreurs comme des attributs de
|
|
balises manquants ou de noms de variables malformés. Dans ce cas-là,
|
|
vous verrez apparaître une erreur semblable à :
|
|
</para>
|
|
<example>
|
|
<title>erreurs Smarty</title>
|
|
<screen>
|
|
<![CDATA[
|
|
Warning: Smarty: [in index.tpl line 4]: syntax error: unknown tag - '%blah'
|
|
in /path/to/smarty/Smarty.class.php on line 1041
|
|
|
|
Fatal error: Smarty: [in index.tpl line 28]: syntax error: missing section name
|
|
in /path/to/smarty/Smarty.class.php on line 1041
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
|
|
<para>
|
|
Smarty vous indique le nom du template, le numéro de la ligne et l'erreur.
|
|
Après cela, vous pouvez connaître le numéro de ligne où il y a eu erreur dans
|
|
la définition de la classe Smarty.
|
|
</para>
|
|
|
|
<para>
|
|
Il y a certaines erreurs que Smarty ne peut pas détecter, comme les
|
|
balises fermantes manquantes. Ce type d'erreurs est la plupart du temps
|
|
repéré dans la phase de compilation PHP du template compilé.
|
|
</para>
|
|
|
|
<example>
|
|
<title>Erreur d'analyse PHP</title>
|
|
<screen>
|
|
<![CDATA[
|
|
Parse error: parse error in /path/to/smarty/templates_c/index.tpl.php on line 75
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
<para>
|
|
Quand vous rencontrez une erreur d'analyse PHP, le numéro de la ligne
|
|
indiqué est celui du fichier PHP compilé et non du template. Vous pouvez alors
|
|
regarder le template et détecter l'erreur. Voici quelques erreurs fréquentes :
|
|
balises fermantes pour
|
|
<link linkend="language.function.if"><varname>{if}{/if}</varname></link>
|
|
ou
|
|
<link linkend="language.function.if"><varname>{section}{/section}</varname></link>
|
|
manquantes, ou syntaxe logique incorrecte dans une instruction <varname>{if}</varname>.
|
|
Si vous ne trouvez pas l'erreur, vous devrez alors ouvrir le fichier PHP compilé et aller à la
|
|
ligne correspondante pour trouver d'où vient l'erreur.
|
|
</para>
|
|
<example>
|
|
<title>Autres erreurs communes</title>
|
|
<screen>
|
|
<![CDATA[
|
|
Warning: Smarty error: unable to read resource: "index.tpl" in...
|
|
ou
|
|
Warning: Smarty error: unable to read resource: "site.conf" in...
|
|
]]>
|
|
</screen>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Le dossier
|
|
<link linkend="variable.template.dir"><parameter>$template_dir</parameter></link>
|
|
est incorrect, n'existe pas ou le fichier
|
|
the file <filename>index.tpl</filename> n'est pas dans le dossier
|
|
<filename class="directory">templates/</filename>.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Une fonction
|
|
<link linkend="language.function.config.load"><varname>{config_load}</varname></link>
|
|
est dans un template (ou
|
|
<link linkend="api.config.load"><varname>config_load()</varname></link>
|
|
a été appelé) et soit
|
|
<link linkend="variable.config.dir"><varname>$config_dir</varname></link>
|
|
est incohérent, n'existe pas, ou
|
|
<filename>site.conf</filename> n'est pas dans le dossier.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
<screen>
|
|
<![CDATA[
|
|
Fatal error: Smarty error: the $compile_dir 'templates_c' does not exist,
|
|
or is not a directory...
|
|
]]>
|
|
</screen>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Soit le dossier
|
|
<link linkend="variable.compile.dir"><parameter>$compile_dir</parameter></link>
|
|
n'est pas correctement défini, le dossier n'existe pas, ou
|
|
<filename>templates_c</filename> est un fichier et non un dossier.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<screen>
|
|
<![CDATA[
|
|
Fatal error: Smarty error: unable to write to $compile_dir '....
|
|
]]>
|
|
</screen>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Le dossier <link linkend="variable.compile.dir"><parameter>$compile_dir</parameter></link>
|
|
n'est pas accessible en écriture par le serveur web. Voir le bas
|
|
de la page sur l'<link linkend="installing.smarty.basic">installation de
|
|
Smarty</link> pour les permissions.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<screen>
|
|
<![CDATA[
|
|
Fatal error: Smarty error: the $cache_dir 'cache' does not exist,
|
|
or is not a directory. in /..
|
|
]]>
|
|
</screen>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Cela signifie que
|
|
<link linkend="variable.caching"><parameter>$caching</parameter></link> est activé et soit
|
|
le dossier
|
|
<link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link>
|
|
n'est pas correctement défini, le dossier n'existe pas, ou
|
|
<filename>cache</filename> est un fichier et non un dossier.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<screen>
|
|
<![CDATA[
|
|
Fatal error: Smarty error: unable to write to $cache_dir '/...
|
|
]]>
|
|
</screen>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Cela signifie que
|
|
<link linkend="variable.caching"><parameter>$caching</parameter></link> est activé et
|
|
le dossier
|
|
<link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link>
|
|
n'est pas accessible en écriture par le serveur web. Voir le bas
|
|
de la page sur l'<link linkend="installing.smarty.basic">installation de
|
|
Smarty</link> pour les permissions.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</example>
|
|
|
|
<para>
|
|
Voir aussi
|
|
<link linkend="chapter.debugging.console">le débogage</link>,
|
|
<link linkend="variable.error.reporting"><parameter>$error_reporting</parameter></link> et
|
|
<link linkend="api.trigger.error"><varname>trigger_error()</varname></link>.
|
|
</para>
|
|
</sect1>
|
|
</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:"../../../../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
|
|
--> |