lsrc2: unable to properly decode base64 encoded responses

Plus d'informations
il y a 3 ans 11 mois - il y a 3 ans 11 mois #115890 par stefanverweij
stefanverweij a créé le sujet : 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:


Quelque chose est masqué pour les invités. Veuillez vous connecter ou vous enregistrer pour le visualiser.


Thanks in advance!
Best regards
Stefan
Dernière édition: il y a 3 ans 11 mois par stefanverweij. Raison: formatting

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 3 ans 11 mois #116050 par stefanverweij
stefanverweij a répondu au sujet : 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

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 3 ans 11 mois #116064 par fransmarcelissen
fransmarcelissen a répondu au sujet : 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

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 3 ans 11 mois #116071 par c_schmitz
c_schmitz a répondu au sujet : 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

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 3 ans 11 mois #116076 par stefanverweij
stefanverweij a répondu au sujet : 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

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 3 ans 11 mois #116173 par stevelegare
stevelegare a répondu au sujet : lsrc2: unable to properly decode base64 encoded responses
Can you give Us an exmample of replacing <string> when in base 64?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 3 ans 11 mois #116177 par stefanverweij
stefanverweij a répondu au sujet : 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.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 3 ans 10 mois #116302 par stevelegare
stevelegare a répondu au sujet : lsrc2: unable to properly decode base64 encoded responses
Great thanks for your help

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 3 ans 9 mois #117351 par stevelegare
stevelegare a répondu au sujet : 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?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 3 ans 9 mois #117352 par stevelegare
stevelegare a répondu au sujet : lsrc2: unable to properly decode base64 encoded responses
Using application/libraries/jsonRPCClient.php it seems Ok.
Thanks for your advice.

Connexion ou Créer un compte pour participer à la conversation.

Commencez dès maintenant !

Créez simplement un compte et commencez à utiliser LimeSurvey dès aujourd'hui.

Inscrivez-vous maintenant

Inscrivez-vous à notre Newsletter!