module_interface.class.php [Réglé]
problème de unserialize
Créations de Modules
Forensic Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre Forensic
- Inscrit le : 18/12/2006
Lorsque j'installe le module sur lequel je travaille actuellement, j'ai une erreur archivées concernant l'unserialize de mon fichier module_interface.class.php de mon module.
Remarque : unserialize() [<a href='function.unserialize'>function.unserialize</a>]: Error at offset 84 of 116 bytes
D'ailleurs, j'en profite pour souligner un problème mineur dans phpboost 3 dans la section des erreurs archivées de l'administration. Vous faites un lien je suppose vers la fonction problématique, je ne sais pas où d'ailleurs (PHP.net?). À corriger!
J'ai fait un bête copié collé à partir d'un autre module et j'ai modifié les noms des variables, classes etc...
Code PHP :
if( defined('PHPBOOST') !== true) exit; import('modules/module_interface'); class ClansInterface extends ModuleInterface { ## Public Methods ## /** * @method Constructeur de l'objet */ function ClansInterface() //Constructeur de la classe { parent::ModuleInterface('clans'); } function get_cache() { global $Sql; $config_clans = 'global $CONFIG_CLANS;' . "n"; //Récupération du tableau linéarisé dans la bdd. $CONFIG_CLANS = unserialize($Sql->query("SELECT value FROM " . DB_TABLE_CONFIGS . " WHERE name = 'clans'", __LINE__, __FILE__)); $CONFIG_CLANS = is_array($CONFIG_CLANS) ? $CONFIG_CLANS : array(); $config_clans .= '$CONFIG_CLANS = ' . var_export($CONFIG_CLANS, true) . ';' . "n"; return $config_clans; } } ?>
Je met le tableau sérialisé, mais puisqu'il fonctionnait dans le développement que j'avais créé pour phpboost 2, je suppose que le problème ne provient pas de là :
"config.ini" :
;config="a:4:{s:9:"team_name";s:10:"Sans Titre";s:8:"team_tag";s:4:"=ST=";s:13:"nombre_clans";i:50;s:13:"activ_recruit";i:1;}"
;config="a:4:{s:9:"team_name";s:10:"Sans Titre";s:8:"team_tag";s:4:"=ST=";s:13:"nombre_clans";i:50;s:13:"activ_recruit";i:1;}"
Merci d'avance pour l'aide reçu!
Forensic
Chercher sur le forum - /Consulter la Documentation - Consulter la Foire aux Questions (FAQ)
Dire bonjour et merci, c'est toujours apprécié et pensez à mettre vos messages en Réglé!
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Pour ce qui concerne l'autre problème, il y a de grandes chances pour que ce soit cette ligne qui ne fonctionne pas :
Code PHP :
$CONFIG_CLANS = unserialize($Sql->query("SELECT value FROM " . DB_TABLE_CONFIGS . " WHERE name = 'clans'", __LINE__, __FILE__));
Peux-tu confirmer ? Ton tableau sérialisé dans le config.ini est-il correct ? A première vue oui, mais je n'ai pas essayé.
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
Forensic Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre Forensic
- Inscrit le : 18/12/2006
Forensic
Chercher sur le forum - /Consulter la Documentation - Consulter la Foire aux Questions (FAQ)
Dire bonjour et merci, c'est toujours apprécié et pensez à mettre vos messages en Réglé!
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Mets un exit juste avant celle dont je te parlais et essaye de l'installer, tu verras si tu as l'erreur ou pas.
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
Forensic Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre Forensic
- Inscrit le : 18/12/2006
J'ai aussi testé en re-sérialisant mon tableau (j'ai aussi modifié le nom d'une variable) et en réinstallant le module sans le exit;, l'erreur ne s'archive pas. Donc, on peut considéré le problème comme étant réglé. Toutefois, en lisant le paragraphe plus haut, est-ce que ça te donne une idée du problème qui aurait pu causer ça?
Forensic
Chercher sur le forum - /Consulter la Documentation - Consulter la Foire aux Questions (FAQ)
Dire bonjour et merci, c'est toujours apprécié et pensez à mettre vos messages en Réglé!
Crunchfamily Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre Crunchfamily
- Inscrit le : 23/09/2008
Code TEXT :
;config="a:4:{s:9:"team_name";s:10:"Sans Titre";s:8:"team_tag";s:4:"=ST=";s:13:"nombre_clans";i:50;s:13:"activ_recruit";i:1;}"ton code n'était pas bon car tu as a:4 alors que tu as plus de 4 arguments, cela m'a fait la même chose chez moi. L'erreur
Remarque : unserialize() [<a href='function.unserialize'>function.unserialize</a>]: Error at offset 84 of 116 bytes
est vraiment typique d'un tableau mal sérialisé.
Édité par Crunchfamily Le 25/02/2009 à 02h29
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Un coup classique comme tu le dis, on a aussi souvent des problèmes avec les antislashes qui échappent les guillements à l'enregistrement dans la base de données, ça engendre aussi souvent ce genre d'erreur.
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
Forensic Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre Forensic
- Inscrit le : 18/12/2006
Bien vu pour le réglé, je crois que j'ai loupé de l'activer. Je comprend le fait qu'il y ait plus de quatre arguments. Si je comprend bien, c'aurait dû être a:5 au lieu de a:4? Comme j'ai dit dans mon précédent message, j'ai aussi essayé de refaire la sérialisation de mon tableau. Le résultat est le suivant :
Citation :
;config="a:4:{s:9:"team_name";s:10:"Sans Titre";s:8:"team_tag";s:4:"=ST=";s:4:"show";s:2:"50";s:13:"activ_recruit";s:1:"1";}"
;config="a:4:{s:9:"team_name";s:10:"Sans Titre";s:8:"team_tag";s:4:"=ST=";s:4:"show";s:2:"50";s:13:"activ_recruit";s:1:"1";}"
Comme vous pouvez le constater, la seule modification que j'ai fait est le nom d'une des variables (show) et c'est toujours inscrit a:4 alors que j'ai encore cinq arguments. Aucune erreur archivée.
Forensic
Chercher sur le forum - /Consulter la Documentation - Consulter la Foire aux Questions (FAQ)
Dire bonjour et merci, c'est toujours apprécié et pensez à mettre vos messages en Réglé!
Crunchfamily Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre Crunchfamily
- Inscrit le : 23/09/2008
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie
