Bonjour, j'ai un gros problème de CGI incompréhensible (enfin, pour moi):
Dans une page HTML, j'ai un formulaire pour uploader un fichier ainsi qu'un
commentaire.
Ce formulaire appel un script Perl qui récupère le fichier et le
commentaire. Après avoir stocké le fichier (fichier_temp) sur le serveur, le
nom de ce fichier et le commentaire sont répertoriés dans une base MySQL.
Chez moi, sur mon serveur, aucun problème.
Par contre, sur le serveur hébergé, il y a un gros problème que j'ai eu du
mal à comprendre:
Quand la taille du fichier dépasse une certaine limite (env. 1,7Mo), si le
commentaire contient des caractères accentués, ils ne sont pas stockés
correctement dans la base, comme si elle n'était pas configurée en UTF-8
("système" au lieu de "système", par exemple). Alors que si le fichier est
plus petit, aucun de problème.
J'ai essayé d'isoler le problème et c'est dès que la ligne "$query=new CGI;"
est présente qu'il se produit.
Si je supprime toutes les lignes entres "$dbh->do("set names 'utf8'");" et
"$dbh->do(qq{insert into documents (nom, commentaire) values ("$nom",
"$comm")});" et quelque soit la taille du fichier, les accents sont stockés
correctement. Le simple fait d'ajouter la ligne "$query=new CGI;", même sans
les autres, provoque le problème.
Je suis dans la quatrième dimension depuis 2 jours, si vous avez une idée,
n'hésitez surtout pas...
PS: Même si je remplace "$comm" par "système" dans la ligne
"$dbh->do(qq{insert into documents (nom, commentaire) values ("$nom",
"$comm")});", le problème se produit aussi, alors que le fichier upload.pl
est codé en UTF-8.
use CGI;
use DBI;
$dbh=DBI->connect("DBI:mysql:xxxx",'xxxx','xxxx');
$dbh->do("set names 'utf8'");
$query=new CGI;
$nom=$query->param('fichier');
$comm=$query->param('comm');
$upload_filehandle = $query->upload("fichier");
open (UPLOADFILE, ">fichier_temp");
binmode UPLOADFILE;
while (<$upload_filehandle>)
{
print UPLOADFILE;
}
close UPLOADFILE;
$dbh->do(qq{insert into documents (nom, commentaire) values ("$nom",
"$comm")});
$dbh->disconnect;
---------------------------------------------
Les serveurs:
Chez moi:
Apache/2.0.54
Linux Fedora Core 4
mysql Ver 14.7 Distrib 4.1.11, for redhat-linux-gnu (i386)
This is perl, v5.8.6 built for i386-linux-thread-multi
Chez l'hébergeur:
Apache: Server version: Apache/1.3.41 (Unix)
Mysql: Server version: 5.0.51a Source distribution
This is perl, v5.8.8 built for i386-freebsd-64int
FreeBSD 5.5-RELEASE-p20
Le Tue, 14 Sep 2010 13:28:05 +0200, Thierry a écrit :
Je suis dans la quatrième dimension depuis 2 jours, si vous avez une idée, n'hésitez surtout pas...
Il semble que vous ne connaissez rien à Perl et sans doute pas grand chose à la gestion des jeux de caractères dans MySql.
Message d'hier sur fr.comp.lang.perl : Message-ID: <4c8e16a5$0$5434$ -- Patrick Texier
vim:syntax=mail:ai:ts=4:et:twr
Thierry
"Patrick Texier" a écrit dans le message de news:
Le Tue, 14 Sep 2010 13:28:05 +0200, Thierry a écrit :
Je suis dans la quatrième dimension depuis 2 jours, si vous avez une idée, n'hésitez surtout pas...
Il semble que vous ne connaissez rien à Perl et sans doute pas grand chose à la gestion des jeux de caractères dans MySql.
Message d'hier sur fr.comp.lang.perl : Message-ID: <4c8e16a5$0$5434$ -- Patrick Texier
vim:syntax=mail:ai:ts=4:et:twr
Bonsoir,
Si vous vous permettez de douter de mes « compétences » en programmation, permettez moi de douter sur vos « compétences » en lecture.
Ok, mes explications ne sont peut-être pas très claires, dans ce cas, dites-le.
Je ne pense pas qu'il s'agisse dans mon cas d'un problème de gestion de jeux de caractères puisque mon problème ne se produit pas à chaque fois, mais en fonction de la taille du fichier transféré. Si c'était un problème de gestion de caractères, je pense que le problème se produirait à chaque fois.
Maintenant, si vous êtes sûre de vos avances, il serait beaucoup plus intelligent de donner quelques explications plutôt que de faire ce genre de réflexion qui ne feront pas avancer le problème.
"Patrick Texier" <p.texier@alussinan.org> a écrit dans le message de news:
i6odd5.3vvm8fl.1@genindre.org...
Le Tue, 14 Sep 2010 13:28:05 +0200, Thierry a écrit :
Je suis dans la quatrième dimension depuis 2 jours, si vous avez une
idée,
n'hésitez surtout pas...
Il semble que vous ne connaissez rien à Perl et sans doute pas grand
chose à la gestion des jeux de caractères dans MySql.
Message d'hier sur fr.comp.lang.perl :
Message-ID: <4c8e16a5$0$5434$ba4acef3@reader.news.orange.fr>
--
Patrick Texier
vim:syntax=mail:ai:ts=4:et:twr
Bonsoir,
Si vous vous permettez de douter de mes « compétences » en programmation,
permettez moi de douter sur vos « compétences » en lecture.
Ok, mes explications ne sont peut-être pas très claires, dans ce cas,
dites-le.
Je ne pense pas qu'il s'agisse dans mon cas d'un problème de gestion de jeux
de caractères puisque mon problème ne se produit pas à chaque fois, mais en
fonction de la taille du fichier transféré. Si c'était un problème de
gestion de caractères, je pense que le problème se produirait à chaque fois.
Maintenant, si vous êtes sûre de vos avances, il serait beaucoup plus
intelligent de donner quelques explications plutôt que de faire ce genre de
réflexion qui ne feront pas avancer le problème.
Le Tue, 14 Sep 2010 13:28:05 +0200, Thierry a écrit :
Je suis dans la quatrième dimension depuis 2 jours, si vous avez une idée, n'hésitez surtout pas...
Il semble que vous ne connaissez rien à Perl et sans doute pas grand chose à la gestion des jeux de caractères dans MySql.
Message d'hier sur fr.comp.lang.perl : Message-ID: <4c8e16a5$0$5434$ -- Patrick Texier
vim:syntax=mail:ai:ts=4:et:twr
Bonsoir,
Si vous vous permettez de douter de mes « compétences » en programmation, permettez moi de douter sur vos « compétences » en lecture.
Ok, mes explications ne sont peut-être pas très claires, dans ce cas, dites-le.
Je ne pense pas qu'il s'agisse dans mon cas d'un problème de gestion de jeux de caractères puisque mon problème ne se produit pas à chaque fois, mais en fonction de la taille du fichier transféré. Si c'était un problème de gestion de caractères, je pense que le problème se produirait à chaque fois.
Maintenant, si vous êtes sûre de vos avances, il serait beaucoup plus intelligent de donner quelques explications plutôt que de faire ce genre de réflexion qui ne feront pas avancer le problème.
SAM
Le 14/09/10 21:59, Thierry a écrit :
"Patrick Texier" a écrit dans le message de news:
Le Tue, 14 Sep 2010 13:28:05 +0200, Thierry a écrit :
Je suis dans la quatrième dimension depuis 2 jours, si vous avez une idée, n'hésitez surtout pas...
Il semble que vous ne connaissez rien à Perl et sans doute pas grand chose à la gestion des jeux de caractères dans MySql.
Message d'hier sur fr.comp.lang.perl : Message-ID:<4c8e16a5$0$5434$
Ok, mes explications ne sont peut-être pas très claires, dans ce cas, dites-le.
Heu ... vu que je n'ai pas accès au "Message d'hier" ...
Si tu nous rappelais de quoi il est question ? (sans peut-être trop abreuver de code perl et sql ?!)
à quel moment survient le problème ?
Indice pour l'idée de Patrick ? à ce que je crois, un fichier ne pèse pas le même poids suivant son encodage.
-- Stéphane Moriaux avec/with iMac-intel
Le 14/09/10 21:59, Thierry a écrit :
"Patrick Texier"<p.texier@alussinan.org> a écrit dans le message de news:
i6odd5.3vvm8fl.1@genindre.org...
Le Tue, 14 Sep 2010 13:28:05 +0200, Thierry a écrit :
Je suis dans la quatrième dimension depuis 2 jours, si vous avez une
idée,
n'hésitez surtout pas...
Il semble que vous ne connaissez rien à Perl et sans doute pas grand
chose à la gestion des jeux de caractères dans MySql.
Message d'hier sur fr.comp.lang.perl :
Message-ID:<4c8e16a5$0$5434$ba4acef3@reader.news.orange.fr>
Ok, mes explications ne sont peut-être pas très claires, dans ce cas,
dites-le.
Heu ... vu que je n'ai pas accès au "Message d'hier" ...
Si tu nous rappelais de quoi il est question ?
(sans peut-être trop abreuver de code perl et sql ?!)
à quel moment survient le problème ?
Indice pour l'idée de Patrick ?
à ce que je crois, un fichier ne pèse pas le même poids suivant son
encodage.
Le Tue, 14 Sep 2010 13:28:05 +0200, Thierry a écrit :
Je suis dans la quatrième dimension depuis 2 jours, si vous avez une idée, n'hésitez surtout pas...
Il semble que vous ne connaissez rien à Perl et sans doute pas grand chose à la gestion des jeux de caractères dans MySql.
Message d'hier sur fr.comp.lang.perl : Message-ID:<4c8e16a5$0$5434$
Ok, mes explications ne sont peut-être pas très claires, dans ce cas, dites-le.
Heu ... vu que je n'ai pas accès au "Message d'hier" ...
Si tu nous rappelais de quoi il est question ? (sans peut-être trop abreuver de code perl et sql ?!)
à quel moment survient le problème ?
Indice pour l'idée de Patrick ? à ce que je crois, un fichier ne pèse pas le même poids suivant son encodage.
-- Stéphane Moriaux avec/with iMac-intel
Thierry
"SAM" a écrit dans le message de news: 4c8fe9bf$0$32461$
Le 14/09/10 21:59, Thierry a écrit :
"Patrick Texier" a écrit dans le message de news:
Le Tue, 14 Sep 2010 13:28:05 +0200, Thierry a écrit :
Je suis dans la quatrième dimension depuis 2 jours, si vous avez une idée, n'hésitez surtout pas...
Il semble que vous ne connaissez rien à Perl et sans doute pas grand chose à la gestion des jeux de caractères dans MySql.
Message d'hier sur fr.comp.lang.perl : Message-ID:<4c8e16a5$0$5434$
Ok, mes explications ne sont peut-être pas très claires, dans ce cas, dites-le.
Heu ... vu que je n'ai pas accès au "Message d'hier" ...
Si tu nous rappelais de quoi il est question ? (sans peut-être trop abreuver de code perl et sql ?!)
à quel moment survient le problème ?
Indice pour l'idée de Patrick ? à ce que je crois, un fichier ne pèse pas le même poids suivant son encodage.
-- Stéphane Moriaux avec/with iMac-intel
Bonsoir, voici le "message d'hier", il est un peu long, mais il faut TOUT lire ;-)
Dans une page HTML, j'ai un formulaire pour uploader un fichier ainsi qu'un commentaire. Ce formulaire appel un script Perl qui récupère le fichier et le commentaire. Après avoir stocké le fichier (fichier_temp) sur le serveur, le nom de ce fichier et le commentaire sont répertoriés dans une base MySQL.
Chez moi, sur mon serveur, aucun problème. Par contre, sur le serveur hébergé, il y a un gros problème que j'ai eu du mal à comprendre: Quand la taille du fichier dépasse une certaine limite (env. 1,7Mo), si le commentaire contient des caractères accentués, ils ne sont pas stockés correctement dans la base, comme si elle n'était pas configurée en UTF-8 ("système" au lieu de "système", par exemple). Alors que si le fichier est plus petit, aucun de problème.
J'ai essayé d'isoler le problème et c'est dès que la ligne "$query=new CGI;" est présente qu'il se produit. Si je supprime toutes les lignes entres "$dbh->do("set names 'utf8'");" et "$dbh->do(qq{insert into documents (nom, commentaire) values ("$nom", "$comm")});" et quelque soit la taille du fichier, les accents sont stockés correctement. Le simple fait d'ajouter la ligne "$query=new CGI;", même sans les autres, provoque le problème.
Je suis dans la quatrième dimension depuis 2 jours, si vous avez une idée, n'hésitez surtout pas...
PS: Même si je remplace "$comm" par "système" dans la ligne "$dbh->do(qq{insert into documents (nom, commentaire) values ("$nom", "$comm")});", le problème se produit aussi, alors que le fichier upload.pl est codé en UTF-8.
use CGI; use DBI; $dbhÛI->connect("DBI:mysql:xxxx",'xxxx','xxxx'); $dbh->do("set names 'utf8'");
$query=new CGI; $nom=$query->param('fichier'); $comm=$query->param('comm'); $upload_filehandle = $query->upload("fichier"); open (UPLOADFILE, ">fichier_temp"); binmode UPLOADFILE; while (<$upload_filehandle>) { print UPLOADFILE; } close UPLOADFILE;
$dbh->do(qq{insert into documents (nom, commentaire) values ("$nom", "$comm")}); $dbh->disconnect;
---------------------------------------------
Les serveurs:
Chez moi: Apache/2.0.54 Linux Fedora Core 4 mysql Ver 14.7 Distrib 4.1.11, for redhat-linux-gnu (i386) This is perl, v5.8.6 built for i386-linux-thread-multi
Chez l'hébergeur: Apache: Server version: Apache/1.3.41 (Unix) Mysql: Server version: 5.0.51a Source distribution This is perl, v5.8.8 built for i386-freebsd-64int FreeBSD 5.5-RELEASE-p20
"SAM" <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> a écrit dans le message
de news: 4c8fe9bf$0$32461$ba4acef3@reader.news.orange.fr...
Le 14/09/10 21:59, Thierry a écrit :
"Patrick Texier"<p.texier@alussinan.org> a écrit dans le message de
news:
i6odd5.3vvm8fl.1@genindre.org...
Le Tue, 14 Sep 2010 13:28:05 +0200, Thierry a écrit :
Je suis dans la quatrième dimension depuis 2 jours, si vous avez une
idée,
n'hésitez surtout pas...
Il semble que vous ne connaissez rien à Perl et sans doute pas grand
chose à la gestion des jeux de caractères dans MySql.
Message d'hier sur fr.comp.lang.perl :
Message-ID:<4c8e16a5$0$5434$ba4acef3@reader.news.orange.fr>
Ok, mes explications ne sont peut-être pas très claires, dans ce cas,
dites-le.
Heu ... vu que je n'ai pas accès au "Message d'hier" ...
Si tu nous rappelais de quoi il est question ?
(sans peut-être trop abreuver de code perl et sql ?!)
à quel moment survient le problème ?
Indice pour l'idée de Patrick ?
à ce que je crois, un fichier ne pèse pas le même poids suivant son
encodage.
--
Stéphane Moriaux avec/with iMac-intel
Bonsoir, voici le "message d'hier", il est un peu long, mais il faut TOUT
lire ;-)
Dans une page HTML, j'ai un formulaire pour uploader un fichier ainsi qu'un
commentaire.
Ce formulaire appel un script Perl qui récupère le fichier et le
commentaire. Après avoir stocké le fichier (fichier_temp) sur le serveur, le
nom de ce fichier et le commentaire sont répertoriés dans une base MySQL.
Chez moi, sur mon serveur, aucun problème.
Par contre, sur le serveur hébergé, il y a un gros problème que j'ai eu du
mal à comprendre:
Quand la taille du fichier dépasse une certaine limite (env. 1,7Mo), si le
commentaire contient des caractères accentués, ils ne sont pas stockés
correctement dans la base, comme si elle n'était pas configurée en UTF-8
("système" au lieu de "système", par exemple). Alors que si le fichier est
plus petit, aucun de problème.
J'ai essayé d'isoler le problème et c'est dès que la ligne "$query=new CGI;"
est présente qu'il se produit.
Si je supprime toutes les lignes entres "$dbh->do("set names 'utf8'");" et
"$dbh->do(qq{insert into documents (nom, commentaire) values ("$nom",
"$comm")});" et quelque soit la taille du fichier, les accents sont stockés
correctement. Le simple fait d'ajouter la ligne "$query=new CGI;", même sans
les autres, provoque le problème.
Je suis dans la quatrième dimension depuis 2 jours, si vous avez une idée,
n'hésitez surtout pas...
PS: Même si je remplace "$comm" par "système" dans la ligne
"$dbh->do(qq{insert into documents (nom, commentaire) values ("$nom",
"$comm")});", le problème se produit aussi, alors que le fichier upload.pl
est codé en UTF-8.
use CGI;
use DBI;
$dbhÛI->connect("DBI:mysql:xxxx",'xxxx','xxxx');
$dbh->do("set names 'utf8'");
$query=new CGI;
$nom=$query->param('fichier');
$comm=$query->param('comm');
$upload_filehandle = $query->upload("fichier");
open (UPLOADFILE, ">fichier_temp");
binmode UPLOADFILE;
while (<$upload_filehandle>)
{
print UPLOADFILE;
}
close UPLOADFILE;
$dbh->do(qq{insert into documents (nom, commentaire) values ("$nom",
"$comm")});
$dbh->disconnect;
---------------------------------------------
Les serveurs:
Chez moi:
Apache/2.0.54
Linux Fedora Core 4
mysql Ver 14.7 Distrib 4.1.11, for redhat-linux-gnu (i386)
This is perl, v5.8.6 built for i386-linux-thread-multi
Chez l'hébergeur:
Apache: Server version: Apache/1.3.41 (Unix)
Mysql: Server version: 5.0.51a Source distribution
This is perl, v5.8.8 built for i386-freebsd-64int
FreeBSD 5.5-RELEASE-p20
"SAM" a écrit dans le message de news: 4c8fe9bf$0$32461$
Le 14/09/10 21:59, Thierry a écrit :
"Patrick Texier" a écrit dans le message de news:
Le Tue, 14 Sep 2010 13:28:05 +0200, Thierry a écrit :
Je suis dans la quatrième dimension depuis 2 jours, si vous avez une idée, n'hésitez surtout pas...
Il semble que vous ne connaissez rien à Perl et sans doute pas grand chose à la gestion des jeux de caractères dans MySql.
Message d'hier sur fr.comp.lang.perl : Message-ID:<4c8e16a5$0$5434$
Ok, mes explications ne sont peut-être pas très claires, dans ce cas, dites-le.
Heu ... vu que je n'ai pas accès au "Message d'hier" ...
Si tu nous rappelais de quoi il est question ? (sans peut-être trop abreuver de code perl et sql ?!)
à quel moment survient le problème ?
Indice pour l'idée de Patrick ? à ce que je crois, un fichier ne pèse pas le même poids suivant son encodage.
-- Stéphane Moriaux avec/with iMac-intel
Bonsoir, voici le "message d'hier", il est un peu long, mais il faut TOUT lire ;-)
Dans une page HTML, j'ai un formulaire pour uploader un fichier ainsi qu'un commentaire. Ce formulaire appel un script Perl qui récupère le fichier et le commentaire. Après avoir stocké le fichier (fichier_temp) sur le serveur, le nom de ce fichier et le commentaire sont répertoriés dans une base MySQL.
Chez moi, sur mon serveur, aucun problème. Par contre, sur le serveur hébergé, il y a un gros problème que j'ai eu du mal à comprendre: Quand la taille du fichier dépasse une certaine limite (env. 1,7Mo), si le commentaire contient des caractères accentués, ils ne sont pas stockés correctement dans la base, comme si elle n'était pas configurée en UTF-8 ("système" au lieu de "système", par exemple). Alors que si le fichier est plus petit, aucun de problème.
J'ai essayé d'isoler le problème et c'est dès que la ligne "$query=new CGI;" est présente qu'il se produit. Si je supprime toutes les lignes entres "$dbh->do("set names 'utf8'");" et "$dbh->do(qq{insert into documents (nom, commentaire) values ("$nom", "$comm")});" et quelque soit la taille du fichier, les accents sont stockés correctement. Le simple fait d'ajouter la ligne "$query=new CGI;", même sans les autres, provoque le problème.
Je suis dans la quatrième dimension depuis 2 jours, si vous avez une idée, n'hésitez surtout pas...
PS: Même si je remplace "$comm" par "système" dans la ligne "$dbh->do(qq{insert into documents (nom, commentaire) values ("$nom", "$comm")});", le problème se produit aussi, alors que le fichier upload.pl est codé en UTF-8.
use CGI; use DBI; $dbhÛI->connect("DBI:mysql:xxxx",'xxxx','xxxx'); $dbh->do("set names 'utf8'");
$query=new CGI; $nom=$query->param('fichier'); $comm=$query->param('comm'); $upload_filehandle = $query->upload("fichier"); open (UPLOADFILE, ">fichier_temp"); binmode UPLOADFILE; while (<$upload_filehandle>) { print UPLOADFILE; } close UPLOADFILE;
$dbh->do(qq{insert into documents (nom, commentaire) values ("$nom", "$comm")}); $dbh->disconnect;
---------------------------------------------
Les serveurs:
Chez moi: Apache/2.0.54 Linux Fedora Core 4 mysql Ver 14.7 Distrib 4.1.11, for redhat-linux-gnu (i386) This is perl, v5.8.6 built for i386-linux-thread-multi
Chez l'hébergeur: Apache: Server version: Apache/1.3.41 (Unix) Mysql: Server version: 5.0.51a Source distribution This is perl, v5.8.8 built for i386-freebsd-64int FreeBSD 5.5-RELEASE-p20