Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Encode Base64 in JavaScript, send with GET, decode in PHP

I thought this will be an easy Google-search, but it seems that my technique is not as common as I thought.

How can I encode a Base64 string in JavaScript, in order to put it safely on the line with a GET parameter (my Base64 string contains a lot of /, + and =, and decode the exact same string in PHP, in order to store it in a database?

When I post the Base64 string without encoding, my PHP script does not accept it.

I found a solution for encoding and decoding the Base64 string in JavaScript, but not in the way it makes sense for me.

like image 914
John Brunner Avatar asked Dec 02 '22 13:12

John Brunner


1 Answers

So in javascript (updated with encoding URI):

var myStr = "I am the string to encode";
var token = encodeURIComponent(window.btoa(myStr));

btoa example

You should be then able to add that base64 encoded string to your get request.

Then in PHP, after you retrieve the request:

<?php
   $str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';
   echo base64_decode(urldecode($str));
?>

base64_decode docs

like image 155
matt Avatar answered Jan 25 '23 22:01

matt