- Messages : 167
Fatal error: Cannot declare class Hook, because the name is already in use.
- scoubinaire
- Auteur du sujet
- Membre elite
Moins
Plus d'informations
il y a 6 ans 5 mois #980
par scoubinaire
Fatal error: Cannot declare class Hook, because the name is already in use. a été créé par scoubinaire
GRR340-RC3
Bonjour, si un usager crée une réservation à modérer, puis modifie cette réservation, l'administrateur reçoit 2 notifications (Une demande de réservation est à modérer ...) avec les liens de modération
(.../GRR340RC3/validation.php?id=xxxxx) pour la réservation d'origine et pour la réservation modifiée. Le second lien fonctionne correctement, mais si l'on clique sur le premier lien on obtient:
Fatal error: Cannot declare class Hook, because the name is already in use in ...\GRR340RC3\include\hook.class.php on line 19
Bonjour, si un usager crée une réservation à modérer, puis modifie cette réservation, l'administrateur reçoit 2 notifications (Une demande de réservation est à modérer ...) avec les liens de modération
(.../GRR340RC3/validation.php?id=xxxxx) pour la réservation d'origine et pour la réservation modifiée. Le second lien fonctionne correctement, mais si l'on clique sur le premier lien on obtient:
Fatal error: Cannot declare class Hook, because the name is already in use in ...\GRR340RC3\include\hook.class.php on line 19
Connexion ou Créer un compte pour participer à la conversation.
- scoubinaire
- Auteur du sujet
- Membre elite
Moins
Plus d'informations
- Messages : 167
il y a 6 ans 4 mois #1019
par scoubinaire
Réponse de scoubinaire sur le sujet Fatal error: Cannot declare class Hook, because the name is already in use.
Bonjour, c'est le dernier problème un peu gênant pour moi avec GRR340RC3
Désolé, j'aurais dû mettre ce sujet sur le forum "Signaler un problème"
Pour le reproduire il suffit de chercher à valider une réservation avec un id invalide par exemple http://nom-du-site/validation.php?id=99999
Voici le bypass que j'ai trouvé (mais attention ceci n'est qu'un bypass à n'utiliser que si la fonction Export XML (ou XML+) est désactivée (à vérifier dans Administration > Configuration > Modules internes)
Mettre en commentaires dans include/functions.inc.php
les lignes suivantes
include $racine."/include/hook.class.php"; ligne 1047
Hook::Appel("hookHeader2"); ligne 1058
Hook::Appel("hookHeader1"); ligne 1084
Désolé, j'aurais dû mettre ce sujet sur le forum "Signaler un problème"
Pour le reproduire il suffit de chercher à valider une réservation avec un id invalide par exemple http://nom-du-site/validation.php?id=99999
Voici le bypass que j'ai trouvé (mais attention ceci n'est qu'un bypass à n'utiliser que si la fonction Export XML (ou XML+) est désactivée (à vérifier dans Administration > Configuration > Modules internes)
Mettre en commentaires dans include/functions.inc.php
les lignes suivantes
include $racine."/include/hook.class.php"; ligne 1047
Hook::Appel("hookHeader2"); ligne 1058
Hook::Appel("hookHeader1"); ligne 1084
Connexion ou Créer un compte pour participer à la conversation.
- scoubinaire
- Auteur du sujet
- Membre elite
Moins
Plus d'informations
- Messages : 167
il y a 6 ans 1 mois #1266
par scoubinaire
Réponse de scoubinaire sur le sujet Fatal error: Cannot declare class Hook, because the name is already in use.
Bonjour, je relance ce sujet car ce n'est pas résolu avec GRR 340a.
Informations supplémentaires :
1- le message fatal error ne se produit qu'avec GRR installé en localhost
2- si grr est installé sur un site web, il n'y a pas le message Fatal error mais une page blanche est affichée.
Le problème se produit lorsqu'un Usager fait une réservation à modérer puis supprime ou modifie sa réservation (dans ce cas l'id de la réservation est modifié). Si l'administrateur cherche à modérer la réservation à l'aide du lien indiqué dans son mail on arrive sur ce problème.
On doit pouvoir recréer facilement ce problème avec un id inutilisé comme grr.monsite.fr/validation.php?id=999999
Informations supplémentaires :
1- le message fatal error ne se produit qu'avec GRR installé en localhost
2- si grr est installé sur un site web, il n'y a pas le message Fatal error mais une page blanche est affichée.
Le problème se produit lorsqu'un Usager fait une réservation à modérer puis supprime ou modifie sa réservation (dans ce cas l'id de la réservation est modifié). Si l'administrateur cherche à modérer la réservation à l'aide du lien indiqué dans son mail on arrive sur ce problème.
On doit pouvoir recréer facilement ce problème avec un id inutilisé comme grr.monsite.fr/validation.php?id=999999
Connexion ou Créer un compte pour participer à la conversation.
- Yan
- Developpeur GRR
Moins
Plus d'informations
- Messages : 2115
il y a 6 ans 1 mois #1268
par Yan
Réponse de Yan sur le sujet Fatal error: Cannot declare class Hook, because the name is already in use.
Bonjour,
le modérateur reçoit-il bien un mail pour la réservation modifiée ?
le modérateur reçoit-il bien un mail pour la réservation modifiée ?
Connexion ou Créer un compte pour participer à la conversation.
- scoubinaire
- Auteur du sujet
- Membre elite
Moins
Plus d'informations
- Messages : 167
il y a 6 ans 1 mois #1269
par scoubinaire
Réponse de scoubinaire sur le sujet Fatal error: Cannot declare class Hook, because the name is already in use.
Bonjour, Oui.
Lorsque l'usager crée une réservation à modérer, l'administrateur reçoit une première notification pour, par exemple l'id 6000. Si l'usager modifie sa réservation, l'id change et l' administrateur reçoit une seconde notification pour l'id suivant (6001). Si l'administrateur clique sur le lien dans la première notification (id 6000) la fatal error se produit. Par contre, le lien dans la seconde notification fonctionne bien (id 6001). La Fatal error peut se produire aussi bien en local host ou sur un vrai site Internet. Il devrait y avoir à la place le message : Accès refusé (accessdenied)
La réservation que vous demandez n'existe pas. Il est probable qu'elle ait été supprimée. (noreservation)
Lorsque l'usager crée une réservation à modérer, l'administrateur reçoit une première notification pour, par exemple l'id 6000. Si l'usager modifie sa réservation, l'id change et l' administrateur reçoit une seconde notification pour l'id suivant (6001). Si l'administrateur clique sur le lien dans la première notification (id 6000) la fatal error se produit. Par contre, le lien dans la seconde notification fonctionne bien (id 6001). La Fatal error peut se produire aussi bien en local host ou sur un vrai site Internet. Il devrait y avoir à la place le message : Accès refusé (accessdenied)
La réservation que vous demandez n'existe pas. Il est probable qu'elle ait été supprimée. (noreservation)
Connexion ou Créer un compte pour participer à la conversation.
- Yan
- Developpeur GRR
Moins
Plus d'informations
- Messages : 2115
il y a 6 ans 1 mois #1276
par Yan
Réponse de Yan sur le sujet Fatal error: Cannot declare class Hook, because the name is already in use.
Bonjour,
je pense qu'il y a un problème en amont : pouvez-vous m'envoyer le lien que reçoit le gestionnaire ou l'administrateur afin de modérer la réservation ?
je pense qu'il y a un problème en amont : pouvez-vous m'envoyer le lien que reçoit le gestionnaire ou l'administrateur afin de modérer la réservation ?
Connexion ou Créer un compte pour participer à la conversation.
- scoubinaire
- Auteur du sujet
- Membre elite
Moins
Plus d'informations
- Messages : 167
il y a 6 ans 1 mois #1282
par scoubinaire
Réponse de scoubinaire sur le sujet Fatal error: Cannot declare class Hook, because the name is already in use.
Bonjour, voici un exemple de message de réservation à modérer reçu par l'administrateur.
---
objet GRR : avis Salle 308 - 2018/10/06 - Réservation en attente de modération
voir l'en-tête complet
GRR ANRABB - Message automatique émis par le site GRR : grr.xxxxx.fr/
Une demande de réservation est à modérer :
grr.xxxxx.fr/validation.php?id=60097
Réservation effectuée par Hugo (hugo@xxxxx.fr)
Ressource : Salle 308 (MABB)
---
Voici le résultat de mes recherches :
Si j'essaie d'accéder à une réservation qui n'existe plus, par exemple avec
grr.xxxxx.fr/validation.php?id=99999
GRR devrait afficher les messages Accès refusé (accessdenied) suivi de
La réservation que vous demandez n'existe pas. Il est probable qu'elle ait été supprimée (noreservation)
Ces messages sont prévus dans validation.php
{ if (isset($reservation_is_delete))
showNoReservation($day, $month, $year, $back);
function showNoreservation se trouve dans functions.inc.php
on y trouve print_header($day, $month, $year, $type_session);
et dans function print_header : include $racine."/include/hook.class.php";
ce qui est curieux, c'est que la fonction print_header est exécutée 2 fois, ce qui cause le message de Fatal error la seconde fois.
---
cette solution fonctionne :
dans include/functions.inc.php
dans function showNoReservation($day, $month, $year, $back)
mettre en commentaire la ligne 3618 : print_header($day, $month, $year, $type_session);
---
objet GRR : avis Salle 308 - 2018/10/06 - Réservation en attente de modération
voir l'en-tête complet
GRR ANRABB - Message automatique émis par le site GRR : grr.xxxxx.fr/
Une demande de réservation est à modérer :
grr.xxxxx.fr/validation.php?id=60097
Réservation effectuée par Hugo (hugo@xxxxx.fr)
Ressource : Salle 308 (MABB)
---
Voici le résultat de mes recherches :
Si j'essaie d'accéder à une réservation qui n'existe plus, par exemple avec
grr.xxxxx.fr/validation.php?id=99999
GRR devrait afficher les messages Accès refusé (accessdenied) suivi de
La réservation que vous demandez n'existe pas. Il est probable qu'elle ait été supprimée (noreservation)
Ces messages sont prévus dans validation.php
{ if (isset($reservation_is_delete))
showNoReservation($day, $month, $year, $back);
function showNoreservation se trouve dans functions.inc.php
on y trouve print_header($day, $month, $year, $type_session);
et dans function print_header : include $racine."/include/hook.class.php";
ce qui est curieux, c'est que la fonction print_header est exécutée 2 fois, ce qui cause le message de Fatal error la seconde fois.
---
cette solution fonctionne :
dans include/functions.inc.php
dans function showNoReservation($day, $month, $year, $back)
mettre en commentaire la ligne 3618 : print_header($day, $month, $year, $type_session);
Connexion ou Créer un compte pour participer à la conversation.
- Yan
- Developpeur GRR
Moins
Plus d'informations
- Messages : 2115
il y a 6 ans 1 mois #1284
par Yan
Réponse de Yan sur le sujet Fatal error: Cannot declare class Hook, because the name is already in use.
Bonjour,
comme je ne suis pas sûr que l'appel à showNoReservation ne se fasse que dans ce cas, j'ai filtré en amont.
Ce qui donne, sur la branche stable 3.4.0 : github.com/JeromeDevome/GRR/commit/3c689...8ea68bfbe1d2bd3e5ac9
et sur la branche de développement devel3 : github.com/JeromeDevome/GRR/commit/7ca28...614a5a6fa6314ebb88c4
Merci pour votre analyse, j'attends le retour de vos tests.
Cordialement,
YN
comme je ne suis pas sûr que l'appel à showNoReservation ne se fasse que dans ce cas, j'ai filtré en amont.
Ce qui donne, sur la branche stable 3.4.0 : github.com/JeromeDevome/GRR/commit/3c689...8ea68bfbe1d2bd3e5ac9
et sur la branche de développement devel3 : github.com/JeromeDevome/GRR/commit/7ca28...614a5a6fa6314ebb88c4
Merci pour votre analyse, j'attends le retour de vos tests.
Cordialement,
YN
Connexion ou Créer un compte pour participer à la conversation.
- scoubinaire
- Auteur du sujet
- Membre elite
Moins
Plus d'informations
- Messages : 167
il y a 6 ans 1 mois #1289
par scoubinaire
Réponse de scoubinaire sur le sujet Fatal error: Cannot declare class Hook, because the name is already in use.
Bonjour
- pour GRR 3.4.0 tout fonctionne,
les messages indiquant que la réservation n'existe pas sortent comme prévu. Et la touche Retour qui ne fonctionnait pas, fonctionne.
Si je crée des nouvelles réservations à modérer ou non, ça fonctionne toujours.
Tout est OK
- pour GRR devel3
Comme ci-dessus : les messages indiquant que la réservation n'existe pas sortent comme prévu. Et la touche Retour qui ne fonctionnait pas, fonctionne.
Mais si j'essaie de créer une réservation (en cliquant sur la touche +) en étant administrateur ou pas j'obtient les messages suivants :
Warning: include(/include/hook.class.php): failed to open stream: No such file or directory in C:\xampp\htdocs\GRR-devel3\edit_entry.php on line 316
Warning: include(): Failed opening '/include/hook.class.php' for inclusion (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\GRR-devel3\edit_entry.php on line 316
Fatal error: Uncaught Error: Class 'Hook' not found in C:\xampp\htdocs\GRR-devel3\include\functions.inc.php:5058 Stack trace: #0 C:\xampp\htdocs\GRR-devel3\edit_entry.php(327): pageHeader2(6, 10, 2018, 'with_session') #1 {main} thrown in C:\xampp\htdocs\GRR-devel3\include\functions.inc.php on line 5058
- pour GRR 3.4.0 tout fonctionne,
les messages indiquant que la réservation n'existe pas sortent comme prévu. Et la touche Retour qui ne fonctionnait pas, fonctionne.
Si je crée des nouvelles réservations à modérer ou non, ça fonctionne toujours.
Tout est OK
- pour GRR devel3
Comme ci-dessus : les messages indiquant que la réservation n'existe pas sortent comme prévu. Et la touche Retour qui ne fonctionnait pas, fonctionne.
Mais si j'essaie de créer une réservation (en cliquant sur la touche +) en étant administrateur ou pas j'obtient les messages suivants :
Warning: include(/include/hook.class.php): failed to open stream: No such file or directory in C:\xampp\htdocs\GRR-devel3\edit_entry.php on line 316
Warning: include(): Failed opening '/include/hook.class.php' for inclusion (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\GRR-devel3\edit_entry.php on line 316
Fatal error: Uncaught Error: Class 'Hook' not found in C:\xampp\htdocs\GRR-devel3\include\functions.inc.php:5058 Stack trace: #0 C:\xampp\htdocs\GRR-devel3\edit_entry.php(327): pageHeader2(6, 10, 2018, 'with_session') #1 {main} thrown in C:\xampp\htdocs\GRR-devel3\include\functions.inc.php on line 5058
Connexion ou Créer un compte pour participer à la conversation.
- Yan
- Developpeur GRR
Moins
Plus d'informations
- Messages : 2115
il y a 6 ans 1 mois #1291
par Yan
Réponse de Yan sur le sujet Fatal error: Cannot declare class Hook, because the name is already in use.
Bonjour,
merci pour votre retour.
Pour ce qui est de l'erreur de chargement du module Hook, je n'ai pas cette erreur...
Pouvez-vous essayer de remplacer la ligne 316 par
et nous dire si c'est mieux ainsi ?
Cordialement,
YN
merci pour votre retour.
Pour ce qui est de l'erreur de chargement du module Hook, je n'ai pas cette erreur...
Pouvez-vous essayer de remplacer la ligne 316 par
Code:
include "./include/hook.class.php";
Cordialement,
YN
Les utilisateur(s) suivant ont remercié: scoubinaire
Connexion ou Créer un compte pour participer à la conversation.
Modérateurs: Yan