Avant de donner plus de détail, je commence par donner un résumé car
j'ignore si le problème vient du C++ ou d'ailleurs.
J'ai donc un programme en fastcgi (qui utlise la libfcgi officielle) qui
récupère une chaine sur le flux d'entrée.
Lors de son activation, le programme détourne le flux d'entrée standard
et le flux de sortie vers un socket. Ma page web envoie une chaine de
caractère dans le socket et je lis le flux d'entrée que je place dans
une std::string au moyen d'un getline(std::cin, std::string &);
Chez moi en local ca marche impeccable. Mais sur le serveur web final,
ma string ne contient que les lettres de rang impair de la chaine de
départ.
Petite recherche sur google : neant. Mais autour de moi des gens
connaissent le problèmes, mais ne savent pas comment le résoudre.
A votre avis, dans quelle direction dois je cherche pour comprendre ce
qui se passe ?
Mais sur le serveur web final, ma string ne contient que les lettres de rang impair de la chaine de départ.
Une cause possible de ce symptôme est que ton programme s'attend à lire des caractères sur 16 bits, alors qu'on lui passe des caractères sur 8 bits.
fenkys
Fabien LE LEZ wrote:
On Thu, 02 Aug 2007 23:17:58 +0200, fenkys :
Chez moi en local ca marche impeccable.
Avec la même version du même serveur web ?
Apache 2.2 sur le nouveau serveur, 2.0 sur mon serveur perso.
Mais sur le serveur web final, ma string ne contient que les lettres de rang impair de la chaine de départ.
Une cause possible de ce symptôme est que ton programme s'attend à lire des caractères sur 16 bits, alors qu'on lui passe des caractères sur 8 bits.
J'étais arrivé à cette conclusion. Mais je suis incapable d'aller plus loin. Je ne sais pas si je dois agir sur le programme, la configuration du serveur, ou encore ailleurs.
LD
Fabien LE LEZ wrote:
On Thu, 02 Aug 2007 23:17:58 +0200, fenkys <contact@webiologie.org>:
Chez moi en local ca marche impeccable.
Avec la même version du même serveur web ?
Apache 2.2 sur le nouveau serveur, 2.0 sur mon serveur perso.
Mais sur le serveur web final,
ma string ne contient que les lettres de rang impair de la chaine de
départ.
Une cause possible de ce symptôme est que ton programme s'attend à
lire des caractères sur 16 bits, alors qu'on lui passe des caractères
sur 8 bits.
J'étais arrivé à cette conclusion. Mais je suis incapable d'aller plus
loin. Je ne sais pas si je dois agir sur le programme, la configuration
du serveur, ou encore ailleurs.
Apache 2.2 sur le nouveau serveur, 2.0 sur mon serveur perso.
Mais sur le serveur web final, ma string ne contient que les lettres de rang impair de la chaine de départ.
Une cause possible de ce symptôme est que ton programme s'attend à lire des caractères sur 16 bits, alors qu'on lui passe des caractères sur 8 bits.
J'étais arrivé à cette conclusion. Mais je suis incapable d'aller plus loin. Je ne sais pas si je dois agir sur le programme, la configuration du serveur, ou encore ailleurs.
LD
fenkys
fenkys wrote:
Bonjour,
Avant de donner plus de détail, je commence par donner un résumé car j'ignore si le problème vient du C++ ou d'ailleurs.
J'ai donc un programme en fastcgi (qui utlise la libfcgi officielle) qui récupère une chaine sur le flux d'entrée.
Lors de son activation, le programme détourne le flux d'entrée standard et le flux de sortie vers un socket. Ma page web envoie une chaine de caractère dans le socket et je lis le flux d'entrée que je place dans une std::string au moyen d'un getline(std::cin, std::string &);
Chez moi en local ca marche impeccable. Mais sur le serveur web final, ma string ne contient que les lettres de rang impair de la chaine de départ.
J'ai trouvé un moyen de contourner le problème. J'utilise la fonction int istream::get() pour lire le flux entrant caractère par caractère. Et je lis maintenant toutes les lettres.
Reste que je ne comprend pas ce qui se passe avec les getlines (je mets au pluriel car toutes les versions de getline on le même problème).
A+
LD
fenkys wrote:
Bonjour,
Avant de donner plus de détail, je commence par donner un résumé car
j'ignore si le problème vient du C++ ou d'ailleurs.
J'ai donc un programme en fastcgi (qui utlise la libfcgi officielle) qui
récupère une chaine sur le flux d'entrée.
Lors de son activation, le programme détourne le flux d'entrée standard
et le flux de sortie vers un socket. Ma page web envoie une chaine de
caractère dans le socket et je lis le flux d'entrée que je place dans
une std::string au moyen d'un getline(std::cin, std::string &);
Chez moi en local ca marche impeccable. Mais sur le serveur web final,
ma string ne contient que les lettres de rang impair de la chaine de
départ.
J'ai trouvé un moyen de contourner le problème. J'utilise la fonction
int istream::get() pour lire le flux entrant caractère par caractère. Et
je lis maintenant toutes les lettres.
Reste que je ne comprend pas ce qui se passe avec les getlines (je mets
au pluriel car toutes les versions de getline on le même problème).
Avant de donner plus de détail, je commence par donner un résumé car j'ignore si le problème vient du C++ ou d'ailleurs.
J'ai donc un programme en fastcgi (qui utlise la libfcgi officielle) qui récupère une chaine sur le flux d'entrée.
Lors de son activation, le programme détourne le flux d'entrée standard et le flux de sortie vers un socket. Ma page web envoie une chaine de caractère dans le socket et je lis le flux d'entrée que je place dans une std::string au moyen d'un getline(std::cin, std::string &);
Chez moi en local ca marche impeccable. Mais sur le serveur web final, ma string ne contient que les lettres de rang impair de la chaine de départ.
J'ai trouvé un moyen de contourner le problème. J'utilise la fonction int istream::get() pour lire le flux entrant caractère par caractère. Et je lis maintenant toutes les lettres.
Reste que je ne comprend pas ce qui se passe avec les getlines (je mets au pluriel car toutes les versions de getline on le même problème).
A+
LD
James Kanze
On Aug 4, 6:00 pm, fenkys wrote:
[...]
J'ai trouvé un moyen de contourner le problème. J'utilise la fonction int istream::get() pour lire le flux entrant caractère par caractère. Et je lis maintenant toutes les lettres.
Reste que je ne comprend pas ce qui se passe avec les getlines (je mets au pluriel car toutes les versions de getline on le même problème).
D'autant plus que getline doit se servir de istream::get(), ou de son equivalent.
-- James Kanze (GABI Software) email:james.kanze:gmail.com Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
On Aug 4, 6:00 pm, fenkys <cont...@webiologie.org> wrote:
[...]
J'ai trouvé un moyen de contourner le problème. J'utilise la fonction
int istream::get() pour lire le flux entrant caractère par caractère. Et
je lis maintenant toutes les lettres.
Reste que je ne comprend pas ce qui se passe avec les getlines (je mets
au pluriel car toutes les versions de getline on le même problème).
D'autant plus que getline doit se servir de istream::get(), ou de son
equivalent.
--
James Kanze (GABI Software) email:james.kanze:gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
J'ai trouvé un moyen de contourner le problème. J'utilise la fonction int istream::get() pour lire le flux entrant caractère par caractère. Et je lis maintenant toutes les lettres.
Reste que je ne comprend pas ce qui se passe avec les getlines (je mets au pluriel car toutes les versions de getline on le même problème).
D'autant plus que getline doit se servir de istream::get(), ou de son equivalent.
-- James Kanze (GABI Software) email:james.kanze:gmail.com Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34