View Issue Details

This bug affects 1 person(s).
 6
IDProjectCategoryView StatusLast Update
11950Bug reportsImport/Exportpublic2017-01-06 12:15
Reporterasshank Assigned Toc_schmitz  
PrioritynoneSeverityminor 
Status closedResolutionfixed 
Fixed in Version2.56.x 
Summary11950: Data corrupts buy copy survey. unconditional stripping of ']]>'
Description

In the copy-routine the string ']]>' is removed.

Steps To Reproduce

import the lss.
This survey contains 1 question. in the questiontext you'll find a few ']]>'.
Create a new survey, based on the imported lss.

In the new survey the ']]>' are gone.

TagsNo tags attached.
Attached Files
copybug.lss (13,823 bytes)   
<?xml version="1.0" encoding="UTF-8"?>
<document>
 <LimeSurveyDocType>Survey</LimeSurveyDocType>
 <DBVersion>260</DBVersion>
 <languages>
  <language>nl</language>
 </languages>
 <groups>
  <fields>
   <fieldname>gid</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>group_name</fieldname>
   <fieldname>group_order</fieldname>
   <fieldname>description</fieldname>
   <fieldname>language</fieldname>
   <fieldname>randomization_group</fieldname>
   <fieldname>grelevance</fieldname>
  </fields>
  <rows>
   <row>
    <gid><![CDATA[449]]></gid>
    <sid><![CDATA[225482]]></sid>
    <group_name><![CDATA[A]]></group_name>
    <group_order><![CDATA[0]]></group_order>
    <description/>
    <language><![CDATA[nl]]></language>
    <randomization_group/>
    <grelevance/>
   </row>
  </rows>
 </groups>
 <questions>
  <fields>
   <fieldname>qid</fieldname>
   <fieldname>parent_qid</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>gid</fieldname>
   <fieldname>type</fieldname>
   <fieldname>title</fieldname>
   <fieldname>question</fieldname>
   <fieldname>preg</fieldname>
   <fieldname>help</fieldname>
   <fieldname>other</fieldname>
   <fieldname>mandatory</fieldname>
   <fieldname>question_order</fieldname>
   <fieldname>language</fieldname>
   <fieldname>scale_id</fieldname>
   <fieldname>same_default</fieldname>
   <fieldname>relevance</fieldname>
   <fieldname>modulename</fieldname>
  </fields>
  <rows>
   <row>
    <qid><![CDATA[13612]]></qid>
    <parent_qid><![CDATA[0]]></parent_qid>
    <sid><![CDATA[225482]]></sid>
    <gid><![CDATA[449]]></gid>
    <type><![CDATA[T]]></type>
    <title><![CDATA[Demotekst]]></title>
    <question><![CDATA[<table width="100%">
<tr><td width="23%"></td><td width="35%"></td><td width="19%"></td><td width="23%"></td></tr>
<tr><td width="23%">Balans werk-privé</td><td width="35%">[BWPscore]</td><td width="19%"><div class="score">[[BWPscore]]</div></td><td width="23%" style="text-align:center"> <img width="14" [[BWPgemScore</td></tr>
<tr><td width="23%">Plezier & motivatie</td><td width="35%">[PEMscore]</td><td width="19%"><div class="score">[[PEMscore]]</div></td><td width="23%" style="text-align:center"> <img width="14" [[PEMgemScore</td></tr>
<tr><td width="23%">Werkdruk & stress</td><td width="35%">[WESscore]</td><td width="19%"><div class="score">[[WESscore]]</div></td><td width="23%"  style="text-align:center"> <img width="14" [[WESgemScore</td></tr>
<tr><td width="23%">Begeleiding</td><td width="35%">[BEBscore]</td><td width="19%"><div class="score">[[BEBscore]]</div></td><td width="23%" style="text-align:center" > <img width="14" [[BEBgemScore</td></tr>
<tr><td width="23%">Energie</td><td width="35%">[ENEscore]</td><td width="19%"><div class="score">[[ENEscore]]</div></td><td  width="23%" style="text-align:center"> <img width="14" [[ENEgemScore</td></tr>
</table>
]]></question>
    <preg/>
    <help/>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <question_order><![CDATA[1]]></question_order>
    <language><![CDATA[nl]]></language>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
    <modulename/>
   </row>
  </rows>
 </questions>
 <surveys>
  <fields>
   <fieldname>sid</fieldname>
   <fieldname>admin</fieldname>
   <fieldname>expires</fieldname>
   <fieldname>startdate</fieldname>
   <fieldname>adminemail</fieldname>
   <fieldname>anonymized</fieldname>
   <fieldname>faxto</fieldname>
   <fieldname>format</fieldname>
   <fieldname>savetimings</fieldname>
   <fieldname>template</fieldname>
   <fieldname>language</fieldname>
   <fieldname>additional_languages</fieldname>
   <fieldname>datestamp</fieldname>
   <fieldname>usecookie</fieldname>
   <fieldname>allowregister</fieldname>
   <fieldname>allowsave</fieldname>
   <fieldname>autonumber_start</fieldname>
   <fieldname>autoredirect</fieldname>
   <fieldname>allowprev</fieldname>
   <fieldname>printanswers</fieldname>
   <fieldname>ipaddr</fieldname>
   <fieldname>refurl</fieldname>
   <fieldname>publicstatistics</fieldname>
   <fieldname>publicgraphs</fieldname>
   <fieldname>listpublic</fieldname>
   <fieldname>htmlemail</fieldname>
   <fieldname>sendconfirmation</fieldname>
   <fieldname>tokenanswerspersistence</fieldname>
   <fieldname>assessments</fieldname>
   <fieldname>usecaptcha</fieldname>
   <fieldname>usetokens</fieldname>
   <fieldname>bounce_email</fieldname>
   <fieldname>attributedescriptions</fieldname>
   <fieldname>emailresponseto</fieldname>
   <fieldname>emailnotificationto</fieldname>
   <fieldname>tokenlength</fieldname>
   <fieldname>showxquestions</fieldname>
   <fieldname>showgroupinfo</fieldname>
   <fieldname>shownoanswer</fieldname>
   <fieldname>showqnumcode</fieldname>
   <fieldname>bouncetime</fieldname>
   <fieldname>bounceprocessing</fieldname>
   <fieldname>bounceaccounttype</fieldname>
   <fieldname>bounceaccounthost</fieldname>
   <fieldname>bounceaccountpass</fieldname>
   <fieldname>bounceaccountencryption</fieldname>
   <fieldname>bounceaccountuser</fieldname>
   <fieldname>showwelcome</fieldname>
   <fieldname>showprogress</fieldname>
   <fieldname>questionindex</fieldname>
   <fieldname>navigationdelay</fieldname>
   <fieldname>nokeyboard</fieldname>
   <fieldname>alloweditaftercompletion</fieldname>
   <fieldname>googleanalyticsstyle</fieldname>
   <fieldname>googleanalyticsapikey</fieldname>
  </fields>
  <rows>
   <row>
    <sid><![CDATA[225482]]></sid>
    <admin><![CDATA[Joost Assendelft]]></admin>
    <adminemail><![CDATA[joost@assendelft.net]]></adminemail>
    <anonymized><![CDATA[N]]></anonymized>
    <faxto/>
    <format><![CDATA[G]]></format>
    <savetimings><![CDATA[N]]></savetimings>
    <template><![CDATA[default]]></template>
    <language><![CDATA[nl]]></language>
    <additional_languages/>
    <datestamp><![CDATA[N]]></datestamp>
    <usecookie><![CDATA[N]]></usecookie>
    <allowregister><![CDATA[N]]></allowregister>
    <allowsave><![CDATA[Y]]></allowsave>
    <autonumber_start><![CDATA[0]]></autonumber_start>
    <autoredirect><![CDATA[N]]></autoredirect>
    <allowprev><![CDATA[N]]></allowprev>
    <printanswers><![CDATA[N]]></printanswers>
    <ipaddr><![CDATA[N]]></ipaddr>
    <refurl><![CDATA[N]]></refurl>
    <publicstatistics><![CDATA[N]]></publicstatistics>
    <publicgraphs><![CDATA[N]]></publicgraphs>
    <listpublic><![CDATA[N]]></listpublic>
    <htmlemail><![CDATA[Y]]></htmlemail>
    <sendconfirmation><![CDATA[Y]]></sendconfirmation>
    <tokenanswerspersistence><![CDATA[N]]></tokenanswerspersistence>
    <assessments><![CDATA[N]]></assessments>
    <usecaptcha><![CDATA[N]]></usecaptcha>
    <usetokens><![CDATA[N]]></usetokens>
    <bounce_email><![CDATA[joost@assendelft.net]]></bounce_email>
    <emailresponseto/>
    <emailnotificationto/>
    <tokenlength><![CDATA[15]]></tokenlength>
    <showxquestions><![CDATA[Y]]></showxquestions>
    <showgroupinfo><![CDATA[B]]></showgroupinfo>
    <shownoanswer><![CDATA[N]]></shownoanswer>
    <showqnumcode><![CDATA[X]]></showqnumcode>
    <bounceprocessing><![CDATA[N]]></bounceprocessing>
    <showwelcome><![CDATA[Y]]></showwelcome>
    <showprogress><![CDATA[Y]]></showprogress>
    <questionindex><![CDATA[0]]></questionindex>
    <navigationdelay><![CDATA[0]]></navigationdelay>
    <nokeyboard><![CDATA[N]]></nokeyboard>
    <alloweditaftercompletion><![CDATA[N]]></alloweditaftercompletion>
    <googleanalyticsstyle><![CDATA[0]]></googleanalyticsstyle>
    <googleanalyticsapikey/>
   </row>
  </rows>
 </surveys>
 <surveys_languagesettings>
  <fields>
   <fieldname>surveyls_survey_id</fieldname>
   <fieldname>surveyls_language</fieldname>
   <fieldname>surveyls_title</fieldname>
   <fieldname>surveyls_description</fieldname>
   <fieldname>surveyls_welcometext</fieldname>
   <fieldname>surveyls_endtext</fieldname>
   <fieldname>surveyls_url</fieldname>
   <fieldname>surveyls_urldescription</fieldname>
   <fieldname>surveyls_email_invite_subj</fieldname>
   <fieldname>surveyls_email_invite</fieldname>
   <fieldname>surveyls_email_remind_subj</fieldname>
   <fieldname>surveyls_email_remind</fieldname>
   <fieldname>surveyls_email_register_subj</fieldname>
   <fieldname>surveyls_email_register</fieldname>
   <fieldname>surveyls_email_confirm_subj</fieldname>
   <fieldname>surveyls_email_confirm</fieldname>
   <fieldname>surveyls_dateformat</fieldname>
   <fieldname>surveyls_attributecaptions</fieldname>
   <fieldname>email_admin_notification_subj</fieldname>
   <fieldname>email_admin_notification</fieldname>
   <fieldname>email_admin_responses_subj</fieldname>
   <fieldname>email_admin_responses</fieldname>
   <fieldname>surveyls_numberformat</fieldname>
   <fieldname>attachments</fieldname>
  </fields>
  <rows>
   <row>
    <surveyls_survey_id><![CDATA[225482]]></surveyls_survey_id>
    <surveyls_language><![CDATA[nl]]></surveyls_language>
    <surveyls_title><![CDATA[Copybug]]></surveyls_title>
    <surveyls_description/>
    <surveyls_welcometext/>
    <surveyls_endtext/>
    <surveyls_url/>
    <surveyls_urldescription/>
    <surveyls_email_invite_subj><![CDATA[Uitnodiging om deel te nemen aan een enquête]]></surveyls_email_invite_subj>
    <surveyls_email_invite><![CDATA[Geachte {FIRSTNAME},<br />
<br />
U wordt uitgenodigd om deel te nemen aan een enquête.<br />
<br />
De titel van de enquête is:<br />
'{SURVEYNAME}'<br />
<br />
'{SURVEYDESCRIPTION}'<br />
<br />
Om aan de enquête deel te nemen kunt u op onderstaande link klikken.<br />
<br />
Hoogachtend,<br />
<br />
{ADMINNAME} ({ADMINEMAIL})<br />
<br />
----------------------------------------------<br />
Klik op <br />
{SURVEYURL}<br />
 om aan het onderzoek deel te nemen.<br />
<br />
Als u deze enquête niet wilt invullen en ook geen nieuwe uitnodigingen wilt ontvangen, klik dan a.u.b. op de volgende link: {OPTOUTURL}<br />
<br />
Als u bent uitgesloten, maar toch deze enquête wilt invullen en ook nieuwe uitnodigingen wilt ontvangen, klik dan a.u.b. op de volgende link:<br />
 {OPTINURL} ]]></surveyls_email_invite>
    <surveyls_email_remind_subj><![CDATA[Herinnering om deel te nemen aan een enquête]]></surveyls_email_remind_subj>
    <surveyls_email_remind><![CDATA[Geachte {FIRSTNAME},<br />
<br />
Recent bent u uitgenodigd om aan een onderzoek deel te nemen.<br />
<br />
We hebben geconstateerd dat u nog niet aan het onderzoek hebt deelgenomen en willen u er bij dezen aan herinneren dat het onderzoek nog loopt en dat u, als u dat wilt, nog kan deelnemen. <br />
<br />
Het onderzoek is getiteld: <br />
''{SURVEYNAME}"<br />
<br />
''{SURVEYDESCRIPTION}"<br />
<br />
Om deel te nemen klikt u op onderstaande link. <br />
<br />
Hoogachtend,<br />
<br />
{ADMINNAME} ({ADMINEMAIL})<br />
<br />
----------------------------------------------<br />
Klik op:<br />
{SURVEYURL} om aan het onderzoek deel te nemen.<br />
<br />
Als u deze enquête niet wilt invullen en ook geen nieuwe uitnodigingen wilt ontvangen, klik dan a.u.b. op de volgende link: {OPTOUTURL}]]></surveyls_email_remind>
    <surveyls_email_register_subj><![CDATA[Bevestiging registratie enquête]]></surveyls_email_register_subj>
    <surveyls_email_register><![CDATA[Geachte {FIRSTNAME},<br />
<br />
U, of iemand die uw e-mailadres gebruikt, heeft zich aangemeld voor deelname aan het online onderzoek getiteld {SURVEYNAME}.<br />
<br />
Klik op onderstaande link om aan het onderzoek mee te doen:<br />
<br />
{SURVEYURL}<br />
<br />
Als u vragen heeft over de enquête, of als u zich niet heeft aangemeld voor deelname en meent dat u deze e-mail ten onrechte heeft ontvangen, kunt u contact opnemen met {ADMINNAME} via {ADMINEMAIL}.]]></surveyls_email_register>
    <surveyls_email_confirm_subj><![CDATA[Bevestiging van uw deelname aan onze enquête]]></surveyls_email_confirm_subj>
    <surveyls_email_confirm><![CDATA[Beste {FIRSTNAME},<br />
<br />
Dit e-mail bericht bevestigt dat u de enquête {SURVEYNAME} heeft ingevuld en dat uw antwoorden zijn opgeslagen. Hartelijk dank voor uw deelname.<br />
<br />
Als u vragen heeft over deze e-mail, neemt u dan contact op met de beheerder {ADMINNAME} via {ADMINEMAIL}.<br />
<br />
Hoogachtend,<br />
<br />
{ADMINNAME}]]></surveyls_email_confirm>
    <surveyls_dateformat><![CDATA[2]]></surveyls_dateformat>
    <email_admin_notification_subj><![CDATA[Respons inzending op enquête {SURVEYNAME}]]></email_admin_notification_subj>
    <email_admin_notification><![CDATA[Hallo,<br />
<br />
Er is een nieuwe respons voor de enquête '{SURVEYNAME}'.<br />
<br />
Klik op de volgende link om de enquête de herladen:<br />
{RELOADURL}<br />
<br />
Klik op de volgende link om de individuele enquête te bekijken:<br />
{VIEWRESPONSEURL}<br />
<br />
Klik op de volgende link om de individuele reactie te bewerken:<br />
{EDITRESPONSEURL}<br />
<br />
Bekijk de statistieken door hier te klikken:<br />
{STATISTICSURL}]]></email_admin_notification>
    <email_admin_responses_subj><![CDATA[Respons inzending op enquête {SURVEYNAME} met resultaten]]></email_admin_responses_subj>
    <email_admin_responses><![CDATA[Hallo,<br />
<br />
Er is een nieuwe respons voor  de enquête '{SURVEYNAME}'.<br />
<br />
Klik op de volgende link om de enquête te herladen:<br />
{RELOADURL}<br />
<br />
Klik op de volgende link om de individuele reactie te bekijken:<br />
{VIEWRESPONSEURL}<br />
<br />
Klik op de volgende link om de individuele reactie te bewerken:<br />
{EDITRESPONSEURL}<br />
<br />
Bekijk statistieken door hier te klikken:<br />
{STATISTICSURL}<br />
<br />
<br />
De volgende antwoorden zijn door de deelnemer gegeven:<br />
{ANSWERTABLE}]]></email_admin_responses>
    <surveyls_numberformat><![CDATA[1]]></surveyls_numberformat>
   </row>
  </rows>
 </surveys_languagesettings>
</document>
copybug.lss (13,823 bytes)   
Bug heat6
Complete LimeSurvey version number (& build)
I will donate to the project if issue is resolved
Browser
Database type & version
Server OS (if known)
Webserver software & version (if known)
PHP Version

Users monitoring this issue

There are no users monitoring this issue.

Activities

asshank

asshank

2016-11-25 13:18

reporter   ~42237

see https://github.com/LimeSurvey/LimeSurvey/commit/bae83315683bfb7ef8e11c35572f961083b0a37b

asshank

asshank

2016-11-25 14:21

reporter   ~42238

Part of XML problem using ']]>' in comments
http://stackoverflow.com/questions/2784183/what-does-cdata-in-xml-mean

I think we have to work on a solution ourselfs.

Don't use ']]>' but ']] >' in the content

asshank

asshank

2016-11-25 15:15

reporter   ~42239

Issue can be closed.

DenisChenu

DenisChenu

2016-11-25 18:01

developer   ~42241

Yes : but still an issue no ?

A minor issue , but if someone use ]]> in survey : we must not remove it.

Solution ? don't know :)

asshank

asshank

2016-11-25 19:40

reporter   ~42242

We have our own management of questiontexts. So, when saving text into the lime table we do a
str_replace(']]>',']] >',$question);
And for us that is the solution.

For working in lime admin and saving, I can suggest also this
str_replace(']]>',']] >',$question);
by use of the beforeSurveySettingsSave event in plugin or in core

Now we know that using [[tags]] (just for us) is the wrong choice in regard of XML and copy survey!.

asshank

asshank

2016-11-26 14:13

reporter   ~42244

So
str_replace(']]>',']] >',$value)
is more non disruptive then
str_replace(']]>','',$value)

I just made a PR https://github.com/LimeSurvey/LimeSurvey/pull/604

c_schmitz

c_schmitz

2016-11-30 14:01

administrator   ~42290

Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&amp;id=21635

c_schmitz

c_schmitz

2017-01-06 12:15

administrator   ~42664

New version released.

Related Changesets

LimeSurvey: master 3cf54e08

2016-11-30 14:01:38

c_schmitz


Committer: GitHub Details Diff
Merge pull request #604 from BertHankes/patch-26

Fixed issue 11950: Data corrupts buy copy survey. unconditional stripping of ']]>'
Affected Issues
11950
mod - application/helpers/export_helper.php Diff File

Issue History

Date Modified Username Field Change
2016-11-25 13:11 asshank New Issue
2016-11-25 13:13 asshank File Added: copybug.lss
2016-11-25 13:18 asshank Note Added: 42237
2016-11-25 14:21 asshank Note Added: 42238
2016-11-25 15:15 asshank Note Added: 42239
2016-11-25 18:01 DenisChenu Note Added: 42241
2016-11-25 18:01 DenisChenu Project Development => Bug reports
2016-11-25 18:01 DenisChenu Category Import/Export => Other issues
2016-11-25 18:01 DenisChenu Severity partial_block => minor
2016-11-25 18:01 DenisChenu Category Other issues => Accessibility
2016-11-25 18:01 DenisChenu Product Version 2.5x =>
2016-11-25 18:02 DenisChenu Category Accessibility => Import/Export
2016-11-25 19:40 asshank Note Added: 42242
2016-11-26 14:13 asshank Note Added: 42244
2016-11-30 14:01 c_schmitz Changeset attached => LimeSurvey master 3cf54e08
2016-11-30 14:01 c_schmitz Note Added: 42290
2016-11-30 14:01 c_schmitz Assigned To => c_schmitz
2016-11-30 14:01 c_schmitz Resolution open => fixed
2016-11-30 14:01 c_schmitz Status new => resolved
2016-11-30 14:01 c_schmitz Fixed in Version => 2.56.x
2017-01-06 12:15 c_schmitz Note Added: 42664
2017-01-06 12:15 c_schmitz Status resolved => closed