Welcome, Guest
Username: Password: Remember me

TOPIC: PostgreSQL : prise en compte de l'apostrophe

PostgreSQL : prise en compte de l'apostrophe 1 year 6 months ago #85846

  • riqcles
  • riqcles's Avatar
  • OFFLINE
  • Expert Lime
  • Posts: 103
  • Thank you received: 6
  • Karma: 0
Bonsoir,
voici ma config :
WinXP / Easyphp - php 5.3.9 / postgresql 8.4.11 et postgresql 9.1.5.

J'ai importé un questionnaire dans les deux bases postgresql.
Je modifie le titre de chacun en rajoutant 'a

sur la 8.4.11 pas de problème.
sur la 9.1.5 erreur :
Error updating
UPDATE "lime_surveys_languagesettings" SET surveyls_title='Riqcles - Contrôle de gestion - INACTIF\'a', surveyls_description='complément du titre.', surveyls_welcometext='

<span style="color: #333399"><span style="font-family: Verdana">Merci de bien vouloir...</span></span>', surveyls_endtext='

<font color="#333399" face="Verdana">Merci d\'avoir répondu...</font>', surveyls_url='', surveyls_urldescription='', surveyls_dateformat='1', surveyls_numberformat='0' WHERE surveyls_survey_id=31767 and surveyls_language='fr'

<strong>ERREUR: erreur de syntaxe sur ou près de « a » LINE 2: ...- Contrôle de gestion - INACTIF\'a', survey... ^


J'ai essayé dans d'autres champs texte et j'ai toujours le même problème.

Je n'ai pas modifié de paramètres dans les fichiers php du serveur, ni dans ceux des serveurs postgresql.
LimeSurvey 2.00 build 130611 / 1.92+ build 120909 / 1.85+
VirtualBox/WinXP SP3/EasyPHP 12/ PHP 5.3.13/ PostGresql 9.1 /PostGresql 8.4.11
The administrator has disabled public write access.

Re: PostgreSQL : prise en compte de l'apostrophe 1 year 6 months ago #86061

  • riqcles
  • riqcles's Avatar
  • OFFLINE
  • Expert Lime
  • Posts: 103
  • Thank you received: 6
  • Karma: 0
J'ai essayé de modifier les paramètres du fichier php.ini (magic_quotes_gpc) avec toutes les valeurs possibles -> KO
J'ai essayé de modifier les paramètres du serveur PostgreSql (standard_conforming_strings, backslash_quote, quote_all_identifiers, bytea_output) -> KO. :(

Je me demande comment marche le mécanisme d'import du questionnaire avec ses apostrophes.
Vu qu'à l'import, il n'a aucun problème pour insérer le questionnaire dans la BDD. :blink:

Merci de vos lumières.
LimeSurvey 2.00 build 130611 / 1.92+ build 120909 / 1.85+
VirtualBox/WinXP SP3/EasyPHP 12/ PHP 5.3.13/ PostGresql 9.1 /PostGresql 8.4.11
The administrator has disabled public write access.

Re: PostgreSQL : prise en compte de l'apostrophe 1 year 6 months ago #86420

  • riqcles
  • riqcles's Avatar
  • OFFLINE
  • Expert Lime
  • Posts: 103
  • Thank you received: 6
  • Karma: 0
Bonsoir, le problème est résolu.

Il faut mettre le paramètre standard_conforming_strings à off sur la base de données et non sur le serveur.

La plus de problème d'apostrophe. :woohoo:

Mais vu la syntaxe SQL indiqué dans le message d'erreur, LimeSurvey (en 1.92) utilise le caractère \' pour l'apostrophe alors que dans le lien ici :
Pour PostGresql : wiki.postgresql.org/What%27s_new_in_PostgreSQL_9.1/fr (chapitre 12)
Pour PHP :
www.php.net/manual/fr/function.mysql-escape-string.php

on conseille d'utiliser la double quote : '' ou des fonctions comme celle-ci :
www.php.net/manual/fr/function.addslashes.php

(c'est peut être déjà dans le code de limesurvey :sick: )

A t'on des risques d'avoir des problèmes dans les futures versions de php et postgresql ? :huh:
LimeSurvey 2.00 build 130611 / 1.92+ build 120909 / 1.85+
VirtualBox/WinXP SP3/EasyPHP 12/ PHP 5.3.13/ PostGresql 9.1 /PostGresql 8.4.11
The administrator has disabled public write access.

Re: PostgreSQL : prise en compte de l'apostrophe 1 year 6 months ago #86777

  • riqcles
  • riqcles's Avatar
  • OFFLINE
  • Expert Lime
  • Posts: 103
  • Thank you received: 6
  • Karma: 0
Bonsoir, le problème est toujours présent mais bien caché.
Voici les étapes que je fait pour le trouver:
1. créer un questionnaire
2. créer un groupe avec des apostrophes partour (code, description, etc)
3. créer une question de type texte avec des apostrophes partour (code, description, etc)
4. laisser le questionnaire inactif et tester le questionnaire avec la "roue dentée"

tout fonctionne correctement. On peut saisir des réponses sans problèmes :woohoo:

5. modifier le type de question et choisir une question de type choix multiples
6. laisser les apostrophes dans le code de la question
7. exécuter le questionnaire.

La on a une erreur SQL qui indique un problème sur l'apostrophe. :blink:
ERREUR: erreur de syntaxe sur ou près de « array_filter » LINE 1: ...attributes" WHERE value LIKE '5'' and (attribute='array_filt... ^:SELECT qid,attribute FROM "lime_question_attributes" WHERE value LIKE '5'' and (attribute='array_filter' or attribute='array_filter_exclude')

J'ai modifié tout les paramètres possibles sur php, le serveur postgres et la base de données et rien a faire.

Je vais faire un mantis.
:(
LimeSurvey 2.00 build 130611 / 1.92+ build 120909 / 1.85+
VirtualBox/WinXP SP3/EasyPHP 12/ PHP 5.3.13/ PostGresql 9.1 /PostGresql 8.4.11
The administrator has disabled public write access.

Re: PostgreSQL : prise en compte de l'apostrophe 1 year 6 months ago #86790

  • riqcles
  • riqcles's Avatar
  • OFFLINE
  • Expert Lime
  • Posts: 103
  • Thank you received: 6
  • Karma: 0
LimeSurvey 2.00 build 130611 / 1.92+ build 120909 / 1.85+
VirtualBox/WinXP SP3/EasyPHP 12/ PHP 5.3.13/ PostGresql 9.1 /PostGresql 8.4.11
The administrator has disabled public write access.

Re: PostgreSQL : prise en compte de l'apostrophe 1 year 6 months ago #86794

  • riqcles
  • riqcles's Avatar
  • OFFLINE
  • Expert Lime
  • Posts: 103
  • Thank you received: 6
  • Karma: 0
Ok le bug est résolu dans la version 2.00.
Je ne peut pas passer toute l'installation en version 2.0 pour le moment (je dois refaire une étude d'impact et remobiliser tout les acteurs). :dry:

Je vais essayer de contourner le problème avec du Jquery et analyser le code php qui est utilisé pour les codes de sous questions (ou pour les autres types de questions : l'apostrophe ne gêne pas pour les autres types). :woohoo:
LimeSurvey 2.00 build 130611 / 1.92+ build 120909 / 1.85+
VirtualBox/WinXP SP3/EasyPHP 12/ PHP 5.3.13/ PostGresql 9.1 /PostGresql 8.4.11
The administrator has disabled public write access.

Re: PostgreSQL : prise en compte de l'apostrophe 1 year 6 months ago #86810

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 5854
  • Thank you received: 716
  • Karma: 222
Salut,

Replacer l'apostrophe ' par ’ (’) doit être faisable en javascript (et puis c'est plus joli).

Sinon, le patch de la 2 n'est pas applicable sur la 192 ?

Denis
PS: cf bugs.limesurvey.org/view.php?id=6646#c21176 la demande de Memno ;)
The administrator has disabled public write access.

Re: PostgreSQL : prise en compte de l'apostrophe 1 year 6 months ago #86879

  • riqcles
  • riqcles's Avatar
  • OFFLINE
  • Expert Lime
  • Posts: 103
  • Thank you received: 6
  • Karma: 0
Salut,
merci de ta réponse, je vais regarder l'ajout de javascript lors de la saisie des codes de questions de type case à cocher.

Par contre, j'ai installé la V2.00 et j'arrive à reproduire le problème. :blink:

Le mantis a été réouvert et j'essaie d'envoyer une capture animé en V2 pour montrer l'erreur (capture faite avec Wink)
LimeSurvey 2.00 build 130611 / 1.92+ build 120909 / 1.85+
VirtualBox/WinXP SP3/EasyPHP 12/ PHP 5.3.13/ PostGresql 9.1 /PostGresql 8.4.11
The administrator has disabled public write access.

Re: PostgreSQL : prise en compte de l'apostrophe 1 year 6 months ago #86908

  • riqcles
  • riqcles's Avatar
  • OFFLINE
  • Expert Lime
  • Posts: 103
  • Thank you received: 6
  • Karma: 0
La video est passé, le bug est ré-ouvert suite aux différents échanges.
Ne pas rajouter d'apostrophe dans les codes de questions, il est possible d'avoir un impact dans l'Expression Manager / code SGQA. :S

Je ne pense pas qu'une correction va etre implémenter dans la 1.92+. Par contre si on peut m'indiquer ou je peux reprendre le code des sous questions (qui empêche la saisie des apostrophes) pour l'intégrer dans les codes questions, je suis preneur. :silly:

J'ai "monté" limesurvey dans Netbean avec xdebug pour suivre la progression, mais je n'arrive pas à suivre l'accès aux lignes de programmations concernés. :whistle:
LimeSurvey 2.00 build 130611 / 1.92+ build 120909 / 1.85+
VirtualBox/WinXP SP3/EasyPHP 12/ PHP 5.3.13/ PostGresql 9.1 /PostGresql 8.4.11
The administrator has disabled public write access.

Re: PostgreSQL : prise en compte de l'apostrophe 1 year 6 months ago #86937

  • riqcles
  • riqcles's Avatar
  • OFFLINE
  • Expert Lime
  • Posts: 103
  • Thank you received: 6
  • Karma: 0
Ce mantis a déclenché une autre anomalie qui s'est terminé par une nouvelle release de la V 2.00 :whistle:

Je vais regarder le code en diff :woohoo:
LimeSurvey 2.00 build 130611 / 1.92+ build 120909 / 1.85+
VirtualBox/WinXP SP3/EasyPHP 12/ PHP 5.3.13/ PostGresql 9.1 /PostGresql 8.4.11
The administrator has disabled public write access.
Moderators: Nickko
Time to create page: 0.111 seconds
Donation Image