FAQ: Messages d'erreur les plus fréquents : Différence entre versions

De PGVWiki
Sauter à la navigation Sauter à la recherche
 
(7 révisions intermédiaires par le même utilisateur non affichées)
Ligne 12 : Ligne 12 :
 
Les types d’erreurs les plus communs qui sont responsable de cet avertissement (warning en anglais) sont l’emploi de caractères BOM dans les fichiers de traduction de langues, les erreurs de permissions des fichiers (autorisations de lecture/écriture/exécution), ou bien les erreurs de configuration de la session. Les caractères BOM (Byte Order Mark) qui seraient présents dans les fichiers de traduction de langues peuvent être vérifiés à partir de la page d’édition des langues. Référez vous aux autres paragraphes de cette FAQ pour obtenir les informations qui vous permettront de traiter ces différents types d’erreurs.  
 
Les types d’erreurs les plus communs qui sont responsable de cet avertissement (warning en anglais) sont l’emploi de caractères BOM dans les fichiers de traduction de langues, les erreurs de permissions des fichiers (autorisations de lecture/écriture/exécution), ou bien les erreurs de configuration de la session. Les caractères BOM (Byte Order Mark) qui seraient présents dans les fichiers de traduction de langues peuvent être vérifiés à partir de la page d’édition des langues. Référez vous aux autres paragraphes de cette FAQ pour obtenir les informations qui vous permettront de traiter ces différents types d’erreurs.  
  
 +
==Warning: session_start() [function.session-start]: open(/tmp\sess_2056cb1c9e9ebe4bee597b943e7bda56, O_RDWR) failed==
  
 +
Cela signifie que PHP ne peut pas écrire les nouvelles données dans un fichier temporaire afin qu’elles puissent être stockées entre des requêtes PHP. Il y beaucoup de raisons possibles à cela, mais elles n’ont aucun lien avec PhpGedView.
  
<!-- Language links...DO NOT DELETE -->
+
La première chose à vérifier est que le répertoire /tmp ou le répertoire C:\PHP\sessiondata ont des droits d’écriture pour PHP. La deuxième chose à vérifier est que le paramètre session.save_path  du fichier php.ini (/etc/php.ini or C:\WINDOWS\php.ini) pointe bien sur le bon emplacement.
 +
 
 +
Ces paramètres ne peuvent certainement être changés que par l'administrateur du serveur. PhpGedView a un paramètre de configuration qui vous permet de modifier le paramètre session.save_path uniquement pour les scripts PhpGedView.  Pour le modifier, allez dans le fichier de configuration de PhpGedView (Administration --> Configurer PhpGedView) et paramétrez le « Répertoire des sauvegardes de sessions » à "./index" ou tout autre répertoire dans lequel vous avez donné les droits d'écriture à PHP.
 +
 
 +
==Notice: Undefined variable _SERVER==
 +
 
 +
Cela signifie que vous faites fonctionner PhpGedView sur une version de PHP qui n'est pas supportée.  PhpGedView exige une version de PHP supérieure ou égale à 4.3.0.  Pour résoudre ce problème, vous devez d'abord contacter votre hébergeur web et lui demander de mettre à jour sa version de PHP.
 +
 
 +
Si pour quelque raison que ce soit, votre hébergeur web ne veut pas mettre à jour son installation PHP, vous devrez remplacer toutes les variables $_SERVER par $HTTP_SERVER_VARS dans le code source de PhpGedView afin de résoudre ce problème.
 +
 
 +
==Alerte à l'injection SQL (SQL Injection warning) lors de l'ajout ou de l'édition de notes?==
 +
 
 +
L'injection SQL injection est une technique courante utilisée par les hackers qui leur permet d'obtenir le contrôle de la base de données. PhpGedView vous protège de cette attaque, mais parfois ce message peut apparaître PhpGedView fait une mauvaise interprétation d'une partie du texte qui est entrée en tant que commande SQL.
 +
 
 +
Pour résoudre ce problème, essayez de rechercher des mots tels que INSERT, DELETE, UPDATE, DROP, et TABLE et choisissez des mots de remplacement ou bien mettez les dans un ordre différent. Le message d'erreur devrait vous donner certaines indications sur le ou les mots qui sont à l'origine de cet avertissement.
 +
 
 +
==Warning: mail() [function.mail]: SMTP server response: 501==
 +
 
 +
Cet avertissement signifie probablement que votre serveur de messagerie SMTP ne supporte pas les adresses email sous la forme Nom complet <email@adresse>. Cette erreur est courante sur les serveurs SMTP qui fonctionnent dans un environnement Windows.
 +
 
 +
Si possible, vous devez consulter la documentation de votre serveur SMTP afin de voir si vous pouvez changer ces paramètres. Vous pouvez aussi configurer PhpGedView afin de n’utiliser que l’adresse email seule sans inclure le nom complet en suivant les étapes suivantes:
 +
 
 +
*Connectez-vous en tant qu’administrateur du site
 +
*Allez à la page d’administration
 +
*Cliquez sur « Configurer PhpGedView »
 +
*Paramétrez « Utiliser un en-tête simple pour les courriels » à « Oui »
 +
*Cliquez sur le bouton "Sauvegarder la configuration".
 +
 
 +
== ERROR 8: unserialize()==
 +
Vous obtenez un message d’erreur qui ressemble à ceci:
 +
ERROR 8: unserialize(): Error at offset 97 of 2658 bytes
 +
0 Error occurred on in function unserialize
 +
1 called from line 2586 of file functions_db.php in function get_event_list
 +
2 called from line 49 of file todays_events.php in function print_todays_events
 +
3 called from line 1 of file index.php(277) : eval()'d code in function eval
 +
4 called from line 277 of file index.php
 +
 
 +
Cette erreur peut se produire lorsque vous copiez l’installation de PHPGedView d’un serveur / domaine vers un autre. (Bien entendu, vous pouvez copier également le contenu de la base de données). Vous pouvez facilement prévenir cette erreur si vous effectuez les opérations suivantes :
 +
* Réalisez une sauvegarde de vos anciens paramètres dans "Mon portail". Sous "Administration" choisissez "Lancer la sauvegarde".
 +
* Réinstallez PHPGedView sur le nouveau serveur
 +
* Avant de lancer le programme : transférez (par FTP) le contenu du fichier de sauvegarde vers les répertoire du nouveau serveur. Vérifiez que vous avez les bons paramètres dans le fichier config.php.
 +
 
 +
----
 +
 
 +
Il peut également arriver que cette erreur se produise en fonctionnement normal. Cela peut être dû à un problème avec PHP. Une entrée dans la table utilisateur qui devait être sur 9 octets a ainsi été de seulement 7 octets. Une correction manuelle a fait disparaître cette erreur..
 +
 
 +
==Mot de passe PhpGedView perdu==
 +
 
 +
Si vous perdez votre mot de passe administrateur et que vous ne pouvez pas vous connecter, vous devriez voir apparaître le message d'erreur « Impossible d'authentifier l'utilisateur ».<br/>
 +
Ouvez un traitement de texte et écrivez ceci:<br/>
 +
<?php echo (crypt(''''mypassword'''')); ?>
 +
Changez le « mypassword » par votre propre mot de passe.<br/>
 +
 
 +
* Pour les utilisateurs Windows<br/>
 +
Sauvegardez le fichier sous le nom: C:\pgvpass.php, ou sous tout autre nom. Ouvrez votre console de commande et tapez :<br/>
 +
C:\php\php -f C:\pgvpass.php
 +
Le répertoire C:\php\ est le répertoire d'installation de PHP.<br/>
 +
 
 +
* Pour les utilisateurs UNIX/Linux:<br/>
 +
Sauvegardez le fichier sous  /home/user/pgvpass.php, ou sous tout autre nom. Ouvrez votre terminal et tapez:<br/>
 +
php -f /home/user/pgvpass.php
 +
 
 +
Le -f est l'option du programme php qui permet d'exécuter un fichier, tel que pgvpass.php. Copiez et collez le mot de passe crypté qui vous est retourné dans votre base de données et connectez vous à  PhpGedView.<br/>
 +
 
 +
Si vous utilisez MySQL vous pouvez utiliser la console de commande ou le terminal pour exécuter ceci. Tapez:
 +
mysql -u root -p '''Le nom_de votre base de données_phpgedview'''
 +
Assurez-vous que vous êtes bien dans la bonne base de données ! Une fois que vous êtes connecté à MySQL, tapez:
 +
UPDATE `pgv_users` SET `u_password` = ''''VOTRE_MOTDEPASSE_CRYPTE'''' WHERE CONVERT( `u_username` USING utf8 ) = ''''VOTRE_NOMUTILISATEUR'''' LIMIT 1 ;
 +
 
 +
==403 Error - Access Denied==
 +
 
 +
Si vous obtenez cette erreur, vérifiez l'adresse URL. Si le dernier paramètre de la ligne est "command=xxx" où xxx est la commande qui doit être exécutée (par exemple ged, user, etc), il est possible que votre programme fonctionne dans un module de sécurité d'un serveur Apache.
 +
 
 +
Vérifiez si votre programme fonctionne sur un serveur Apache.  Si oui, votre hébergeur peut avoir mis en route le moduke mod_security.  Mod_security n'aime pas que les commandes telles que "command=xxx" soient exécutées dans une adresse URL sauf s'il s'agit du premier paramètre de l'adresse URL.
 +
 
 +
Si tel est votre cas, voici le remède à appliquer.
 +
 
 +
Construisez un fichier .htaccess que vous placerez dans le répertoire de votre application PhpGedView avec les lignes suivantes:
 +
 
 +
<pre>
 +
<IfModule mod_security.c>
 +
  SecFilterEngine Off
 +
</IfModule>
 +
</pre>
 +
 
 +
<!-- Category links...DO NOT DELETE -->
 +
[[Category:phpGedView]]
  
 
[[en:FAQ: Common Error Messages]]
 
[[en:FAQ: Common Error Messages]]

Version actuelle datée du 20 mai 2007 à 11:06

Messages d’erreur courants

Pourquoi est-ce que j’obtiens une page blanche?

Si vous avez copié les fichiers de PhpGedView files sur votre site web et que vous obtenez une page blanche lorsque vous essayez d’accéder à PhpGedView avec votre navigateur Internet, cela signifie probablement que PHP n’est pas installé sur votre serveur web.

PhpGedView est écrit en utilisant le langage de programmation PHP et pour qu’il fonctionne, votre site web doit supporter PHP. Allez à la section PHP de cette page pour obtenir des informations afin de savoir si vous pouvez utiliser des fichiers PHP sur votre site web.

Warning: Cannot modify header information - headers already sent

Cette erreur est habituellement la conséquence d’autres erreurs sur le début de la page (c’est à dire des erreurs dans la partie en-tête –header en anglais). Recherchez d’autres erreurs qui s’afficheraient en premier sur la page et essayez de les résoudre d’abord. Si vous résolvez ces autres erreurs, alors l’erreur en objet disparaîtra.

Les types d’erreurs les plus communs qui sont responsable de cet avertissement (warning en anglais) sont l’emploi de caractères BOM dans les fichiers de traduction de langues, les erreurs de permissions des fichiers (autorisations de lecture/écriture/exécution), ou bien les erreurs de configuration de la session. Les caractères BOM (Byte Order Mark) qui seraient présents dans les fichiers de traduction de langues peuvent être vérifiés à partir de la page d’édition des langues. Référez vous aux autres paragraphes de cette FAQ pour obtenir les informations qui vous permettront de traiter ces différents types d’erreurs.

Warning: session_start() [function.session-start]: open(/tmp\sess_2056cb1c9e9ebe4bee597b943e7bda56, O_RDWR) failed

Cela signifie que PHP ne peut pas écrire les nouvelles données dans un fichier temporaire afin qu’elles puissent être stockées entre des requêtes PHP. Il y beaucoup de raisons possibles à cela, mais elles n’ont aucun lien avec PhpGedView.

La première chose à vérifier est que le répertoire /tmp ou le répertoire C:\PHP\sessiondata ont des droits d’écriture pour PHP. La deuxième chose à vérifier est que le paramètre session.save_path du fichier php.ini (/etc/php.ini or C:\WINDOWS\php.ini) pointe bien sur le bon emplacement.

Ces paramètres ne peuvent certainement être changés que par l'administrateur du serveur. PhpGedView a un paramètre de configuration qui vous permet de modifier le paramètre session.save_path uniquement pour les scripts PhpGedView. Pour le modifier, allez dans le fichier de configuration de PhpGedView (Administration --> Configurer PhpGedView) et paramétrez le « Répertoire des sauvegardes de sessions » à "./index" ou tout autre répertoire dans lequel vous avez donné les droits d'écriture à PHP.

Notice: Undefined variable _SERVER

Cela signifie que vous faites fonctionner PhpGedView sur une version de PHP qui n'est pas supportée. PhpGedView exige une version de PHP supérieure ou égale à 4.3.0. Pour résoudre ce problème, vous devez d'abord contacter votre hébergeur web et lui demander de mettre à jour sa version de PHP.

Si pour quelque raison que ce soit, votre hébergeur web ne veut pas mettre à jour son installation PHP, vous devrez remplacer toutes les variables $_SERVER par $HTTP_SERVER_VARS dans le code source de PhpGedView afin de résoudre ce problème.

Alerte à l'injection SQL (SQL Injection warning) lors de l'ajout ou de l'édition de notes?

L'injection SQL injection est une technique courante utilisée par les hackers qui leur permet d'obtenir le contrôle de la base de données. PhpGedView vous protège de cette attaque, mais parfois ce message peut apparaître PhpGedView fait une mauvaise interprétation d'une partie du texte qui est entrée en tant que commande SQL.

Pour résoudre ce problème, essayez de rechercher des mots tels que INSERT, DELETE, UPDATE, DROP, et TABLE et choisissez des mots de remplacement ou bien mettez les dans un ordre différent. Le message d'erreur devrait vous donner certaines indications sur le ou les mots qui sont à l'origine de cet avertissement.

Warning: mail() [function.mail]: SMTP server response: 501

Cet avertissement signifie probablement que votre serveur de messagerie SMTP ne supporte pas les adresses email sous la forme Nom complet <email@adresse>. Cette erreur est courante sur les serveurs SMTP qui fonctionnent dans un environnement Windows.

Si possible, vous devez consulter la documentation de votre serveur SMTP afin de voir si vous pouvez changer ces paramètres. Vous pouvez aussi configurer PhpGedView afin de n’utiliser que l’adresse email seule sans inclure le nom complet en suivant les étapes suivantes:

  • Connectez-vous en tant qu’administrateur du site
  • Allez à la page d’administration
  • Cliquez sur « Configurer PhpGedView »
  • Paramétrez « Utiliser un en-tête simple pour les courriels » à « Oui »
  • Cliquez sur le bouton "Sauvegarder la configuration".

ERROR 8: unserialize()

Vous obtenez un message d’erreur qui ressemble à ceci:

ERROR 8: unserialize(): Error at offset 97 of 2658 bytes
0 Error occurred on in function unserialize
1 called from line 2586 of file functions_db.php in function get_event_list
2 called from line 49 of file todays_events.php in function print_todays_events
3 called from line 1 of file index.php(277) : eval()'d code in function eval
4 called from line 277 of file index.php

Cette erreur peut se produire lorsque vous copiez l’installation de PHPGedView d’un serveur / domaine vers un autre. (Bien entendu, vous pouvez copier également le contenu de la base de données). Vous pouvez facilement prévenir cette erreur si vous effectuez les opérations suivantes :

  • Réalisez une sauvegarde de vos anciens paramètres dans "Mon portail". Sous "Administration" choisissez "Lancer la sauvegarde".
  • Réinstallez PHPGedView sur le nouveau serveur
  • Avant de lancer le programme : transférez (par FTP) le contenu du fichier de sauvegarde vers les répertoire du nouveau serveur. Vérifiez que vous avez les bons paramètres dans le fichier config.php.

Il peut également arriver que cette erreur se produise en fonctionnement normal. Cela peut être dû à un problème avec PHP. Une entrée dans la table utilisateur qui devait être sur 9 octets a ainsi été de seulement 7 octets. Une correction manuelle a fait disparaître cette erreur..

Mot de passe PhpGedView perdu

Si vous perdez votre mot de passe administrateur et que vous ne pouvez pas vous connecter, vous devriez voir apparaître le message d'erreur « Impossible d'authentifier l'utilisateur ».
Ouvez un traitement de texte et écrivez ceci:

<?php echo (crypt('mypassword')); ?>

Changez le « mypassword » par votre propre mot de passe.

  • Pour les utilisateurs Windows

Sauvegardez le fichier sous le nom: C:\pgvpass.php, ou sous tout autre nom. Ouvrez votre console de commande et tapez :

C:\php\php -f C:\pgvpass.php

Le répertoire C:\php\ est le répertoire d'installation de PHP.

  • Pour les utilisateurs UNIX/Linux:

Sauvegardez le fichier sous /home/user/pgvpass.php, ou sous tout autre nom. Ouvrez votre terminal et tapez:

php -f /home/user/pgvpass.php

Le -f est l'option du programme php qui permet d'exécuter un fichier, tel que pgvpass.php. Copiez et collez le mot de passe crypté qui vous est retourné dans votre base de données et connectez vous à PhpGedView.

Si vous utilisez MySQL vous pouvez utiliser la console de commande ou le terminal pour exécuter ceci. Tapez:

mysql -u root -p Le nom_de votre base de données_phpgedview

Assurez-vous que vous êtes bien dans la bonne base de données ! Une fois que vous êtes connecté à MySQL, tapez:

UPDATE `pgv_users` SET `u_password` = 'VOTRE_MOTDEPASSE_CRYPTE' WHERE CONVERT( `u_username` USING utf8 ) = 'VOTRE_NOMUTILISATEUR' LIMIT 1 ;

403 Error - Access Denied

Si vous obtenez cette erreur, vérifiez l'adresse URL. Si le dernier paramètre de la ligne est "command=xxx" où xxx est la commande qui doit être exécutée (par exemple ged, user, etc), il est possible que votre programme fonctionne dans un module de sécurité d'un serveur Apache.

Vérifiez si votre programme fonctionne sur un serveur Apache. Si oui, votre hébergeur peut avoir mis en route le moduke mod_security. Mod_security n'aime pas que les commandes telles que "command=xxx" soient exécutées dans une adresse URL sauf s'il s'agit du premier paramètre de l'adresse URL.

Si tel est votre cas, voici le remède à appliquer.

Construisez un fichier .htaccess que vous placerez dans le répertoire de votre application PhpGedView avec les lignes suivantes:

<IfModule mod_security.c> 
  SecFilterEngine Off 
</IfModule>