osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> [resolu] Petit bug après envoi newsletter
Jomanix
posté 21 Oct 2003, 12:24
Message #1


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 63
Inscrit : 15-September 03
Lieu : Moselle
Membre no 1464



Bonjour,

Cette erreur s'affiche une fois que j'ai envoyé une newsletter et que je clique sur un autre lien dans le menu de l'admin (avec la Creload5):
CODE
Warning: implode(): Bad arguments. in /home/xxx/www/catalog/admin/includes/modules/newsletters/product_notification.php on line 178

1064 - You have an error in your SQL syntax near ')' at line 1

select distinct pn.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address from customers c, products_notifications pn where c.customers_id = pn.customers_id and pn.products_id in

[TEP STOP]


Apparement, c'est sans conséquence puisque la newsletter arrive à destination smile.gif mais je voudrais tout de même savoir a quoi est due cette erreur ? idea.gif
Go to the top of the page
 
Gnidhal
posté 21 Oct 2003, 12:47
Message #2


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9221
Inscrit : 4-March 03
Lieu : Pau
Membre no 927



surement parce que les paramètres exploités par le implode de la ligne 178 n'existent plus.
Mais ce qui me parait chelou, c'est l'erreur mysql reporté car le ne vois pas de ")" dans la chaîne citée.
Mais peut-être que ton fichier est mal transféré, car une erreur en ligne 1 signifie généralement que les fin de ligne ont sauté confused.gif
retente un transfert ftp de tes fichiers en mode binaire.
Donc d'abord nouveau transfert, puis après on revoit le code aux lignes incriminées pour comprendre où est le loup wink.gif


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
Jomanix
posté 21 Oct 2003, 13:02
Message #3


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 63
Inscrit : 15-September 03
Lieu : Moselle
Membre no 1464



Tous mes fichiers ont déjà été transférés en binaire, car j'ai eu effectivement des problèmes à la première install en transfert ascii. confused.gif
En fait, mon copier-coller a déconné, il fallait lire:

select distinct pn.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address from customers c, products_notifications pn where c.customers_id = pn.customers_id and pn.products_id in ()

Voilà, ces parenthèses changent quelque chose au problème ?
Go to the top of the page
 
Gnidhal
posté 21 Oct 2003, 13:10
Message #4


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9221
Inscrit : 4-March 03
Lieu : Pau
Membre no 927



Il devrait y avoir une valeur entre les parenthèses je pense, valeur qui est sûrement assignée par l'implode précédent.
Donc les deux erreurs sont peut-être liées.

Alors regarde ce qui se passe dans la ligne 178, sûrement un array manquant ou vide.
essaye d'ajouter une condition au cas ou le array soit vide pour zapper la portion de code car c'est quand tu quittes la section newsletter que ça cafouille. Donc je pense qu'il faut gérer cela entre le application_top et le fichier product_notification.php.

Bon courage wink.gif


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
pericles
posté 21 Oct 2003, 13:27
Message #5


Ceinture marron OSC
Icône de groupe

Groupe : Administrateur
Messages : 1670
Inscrit : 14-August 02
Membre no 369



Peux-tu mettre la ligne de code qui pose probleme ?
La fonction implode attend des parametres qui ne sont pas la ou vide.
De plus, il ya fort a parier que le retour de implode est utilise dans la construction de la requete. Or le message d'erreur du a implode fait que le in () est vide.


--------------------
CVS 2.2 MS1 (17/02/2003)
Go to the top of the page
 
Jomanix
posté 21 Oct 2003, 13:37
Message #6


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 63
Inscrit : 15-September 03
Lieu : Moselle
Membre no 1464



Yes, voili voilou la lige de code:

CODE
$ids = implode(',', $chosen);



       $products_query = tep_db_query("select distinct pn.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address from " . TABLE_CUSTOMERS . " c, " . TABLE_PRODUCTS_NOTIFICATIONS . " pn where c.customers_id = pn.customers_id and pn.products_id in (" . $ids . ")");


En tout cas, on peut dire que ce forum est réactif ! Bravo et merci à tous les spé d'OSC pour la rapidité de leurs réponses ! wink.gif
Go to the top of the page
 
Gnidhal
posté 21 Oct 2003, 13:45
Message #7


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9221
Inscrit : 4-March 03
Lieu : Pau
Membre no 927



(Il a raison Pericles, avec ta ligne de code c'est plus facile à piger laugh.gif )

essaye d'encadrer cette ligne par
CODE
if is_array($chosen) {

ta ligne

}
ça devrait plus planter là en tous cas wink.gif


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
Jomanix
posté 21 Oct 2003, 14:13
Message #8


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 63
Inscrit : 15-September 03
Lieu : Moselle
Membre no 1464



Marche pô ! cry.gif
Voici l'erreur reportée:
Parse error: parse error, expecting `'('' in /home/xxx/www/catalog/admin/includes/modules/newsletters/product_notification.php on line 179
Fatal error: Cannot instantiate non-existent class: product_notification in /home/xxx/www/catalog/admin/newsletters.php on line 225


Mais je ne sais pas si j'ai bien encadré la ligne, chuis nul en PHP blush.gif
Je peux mettre la totalité du fichier en question sur ce thread pour avoir plus de précisions sur l'endroit où insérer ta ligne Gnidhal question.gif (le fichier fait quand même 213 lignes...au pire, on efface le post après)
Go to the top of the page
 
pericles
posté 21 Oct 2003, 14:47
Message #9


Ceinture marron OSC
Icône de groupe

Groupe : Administrateur
Messages : 1670
Inscrit : 14-August 02
Membre no 369



Faure faire un dump de ta variable $chosen
Tu remplaces :
CODE
$ids = implode(',', $chosen);

par
CODE
echo '<pre>'; print_r($chosen); die;

$ids = implode(',', $chosen);

Et tu nous dit ce qu'il t'affiche. A priori, il semble que ta variable $chosen ne soit pas initialise et que ce ne soit pas un tableau.
A voir et investiguer dans cette direction par rapport a la variable $chosen.


--------------------
CVS 2.2 MS1 (17/02/2003)
Go to the top of the page
 
Gnidhal
posté 21 Oct 2003, 15:02
Message #10


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9221
Inscrit : 4-March 03
Lieu : Pau
Membre no 927



OOps , Pericles est sur le debug smile.gif
Bon de mon coté, je propose un pansement de première urgence pour faire tourner...

en attendant, tu peux remplacer simplement la ligne actuelle $ids = ... par :
CODE
       $ids = (is_array($chosen)) ? implode(',', $chosen): "0";


ça ne résoud pas le pb de fond, car le $chosen est vraisemblablement vide.
Comme il est passé dans le formulaire par un rollover, c'est pas normal qu'il soit vide.


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
Jomanix
posté 21 Oct 2003, 15:16
Message #11


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 63
Inscrit : 15-September 03
Lieu : Moselle
Membre no 1464



Bon ben, ça marche biggrin.gif
Vraiment trop fort ce Gnidhal !
Merci pour votre aide à tous ! wink.gif
Go to the top of the page
 
Gnidhal
posté 21 Oct 2003, 21:40
Message #12


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9221
Inscrit : 4-March 03
Lieu : Pau
Membre no 927



Waip, mais ça ne résoud qu'à moitié le problème. confused.gif
Il n'est pas exclus qu'il y ait un bug dans ce module, j'avais décelé quelques autres de même type ailleurs, mais dans des contribs externes et lié à la localisation français bien souvent.
pas graves mais pas clairs.

Il n'est pas normal que quand tu veux sortir du module ça rappèle la fonction sans envoyer de paramètre.

Bon l'apparence est sauve, mais il faudra un jour se pencher sur le détail.
Il serait bon de chercher à debugger la chose si d'autres rencontrent le même soucis.

La rustine que je t'ai donné, c'est à la va vite pour gérer l'erreur, pas pour en éliminer la source.

La méthode Pericles qui va à la recherche de la valeur de $chosen pour comprendre où ça coince est plus pro. Donc si tu as de nouveaux soucis, suis cette filière d'enquête... wink.gif


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 28th March 2024 - 20:22
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)