lsrc2: unable to properly decode base64 encoded responses

Mehr
3 Jahre 11 Monate her - 3 Jahre 11 Monate her #115890 von stefanverweij
stefanverweij erstellte das Thema lsrc2: unable to properly decode base64 encoded responses
Hi, I am working with the remote control acces in php and I cannot get the export_responses function to work, it gets the base64 encoded string (which decodes perfectly on www.base64decode.org ) but when I pass it through the base64decode function I get another string filled with the black box/question mark (U+FFFD ) so I am doing something wrong, but what?

My code:
<?php
header('Content-Type: text/html; charset=utf-8');
require_once '../application/libraries/jsonRPCClient.php';
define( 'LS_BASEURL', 'http://my_base_url'); 
define( 'LS_USER', 'my_user' );
define( 'LS_PASSWORD', 'my_password );
 
// the survey to process
$survey_id=my_survey_id;
// instanciate a new client
$myJSONRPCClient = new jsonRPCClient( LS_BASEURL.'/admin/remotecontrol' );
// receive session key
$sessionKey = $myJSONRPCClient->get_session_key( LS_USER, LS_PASSWORD );
// get all reponses:
$answers = $myJSONRPCClient->export_responses( $sessionKey, $survey_id, 'json', $sLanguageCode='nl' );
// release the session key
$myJSONRPCClient->release_session_key( $sessionKey );
 
$answers_decoded = base64_decode($answers);
var_dump($answers);
echo '<br><br>';
var_dump($answers_decoded);
?>

Gives the following result:


In diesem Beitrag ist für Gäste nicht alles sichtbar. Bitte melde dich an, oder registriere dich.


Thanks in advance!
Best regards
Stefan
Letzte Änderung: 3 Jahre 11 Monate her von stefanverweij. Begründung: formatting

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
3 Jahre 11 Monate her #116050 von stefanverweij
stefanverweij antwortete auf das Thema: lsrc2: unable to properly decode base64 encoded responses
Hi everyone, short update,

Apparently the return base64 encoded string was between two <string> tags, so I got it fixed by doing a string replace for '<string>' and '</string>' on the encoded string. (replace it with '') After that, it gets decoded properly. Is it supposed to do this or do I still have some settings wrong? It is working now however, and the remote control is a really wonderful tool!

Best regards
Stefan

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
3 Jahre 11 Monate her #116064 von fransmarcelissen
fransmarcelissen antwortete auf das Thema: lsrc2: unable to properly decode base64 encoded responses
I had the same problem after I upgraded limesurvey last month (I am not sure which version) before it did not occur. If you know this it is simple to remove the tags before decoding. Now I alway test it before decoding. I think this is a bug?
Frans

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
3 Jahre 11 Monate her #116071 von c_schmitz
c_schmitz antwortete auf das Thema: lsrc2: unable to properly decode base64 encoded responses
It is a bug with your XML-RPC client. It should accept both forms according to specs, with and without <string> and handle it properly.

Best regards

Carsten Schmitz
LimeSurvey project leader

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
3 Jahre 11 Monate her #116076 von stefanverweij
stefanverweij antwortete auf das Thema: lsrc2: unable to properly decode base64 encoded responses
Thanks for your answers,
I am using the jsonRPCClient that comes with Limesurvey (in ../application/libraries/jsonRPCClient.php), so I am not quite sure how to fix this? Is this one not working correctly? Is it better to use an external one anyway? I am on 2.05+ 141229 btw

Thanks,
Stefan

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
3 Jahre 11 Monate her #116173 von stevelegare
stevelegare antwortete auf das Thema: lsrc2: unable to properly decode base64 encoded responses
Can you give Us an exmample of replacing <string> when in base 64?

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
3 Jahre 11 Monate her #116177 von stefanverweij
stefanverweij antwortete auf das Thema: lsrc2: unable to properly decode base64 encoded responses
of course:
I first get the responses with export_responses:

$answers = $myJSONRPCClient->export_responses( $sessionKey, $survey_id, 'json', $sLanguageCode='nl', $sCompletionStatus = 'complete', $sHeadingType = 'code', $sResponseType = 'short');

then I create an array of the strings to be replaced:
$answersStringReplace = array('<string>', '</string>');

then do a str_replace:
$answersReplace = str_replace($answersStringReplace, '', $answers);

then base64_decode works just fine.

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
3 Jahre 10 Monate her #116302 von stevelegare
stevelegare antwortete auf das Thema: lsrc2: unable to properly decode base64 encoded responses
Great thanks for your help

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
3 Jahre 9 Monate her #117351 von stevelegare
stevelegare antwortete auf das Thema: lsrc2: unable to properly decode base64 encoded responses
I think I missed something.

My scripts are not functionning since the <string> thing (2 months). Can someone help me with this issue?

What RPC client are youy using?

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
3 Jahre 9 Monate her #117352 von stevelegare
stevelegare antwortete auf das Thema: lsrc2: unable to properly decode base64 encoded responses
Using application/libraries/jsonRPCClient.php it seems Ok.
Thanks for your advice.

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Jetzt loslegen!

Melden Sie sich jetzt an, und erstellen Sie in wenigen Minuten Ihre erste Umfrage.

Account einrichten

Abonnieren Sie unseren Newsletter

Abonnieren Sie unseren Newsletter für alle Neuigkeiten rund um LimeSurvey
captcha