2017-02-10 15 views
0

Я думал, что это будет простой поиск Google, но кажется, что моя техника не так распространена, как я думал.Encode Base64 в JavaScript, отправить с GET, декодировать в PHP

Как я могу encode в Base64 строке в JavaScript, чтобы поместить его благополучно на линии с параметром GET (моя Base64 строки содержит много /, + и = и decode точно такие же строки в PHP, для того, чтобы сохранить его в базе данных?

Когда я отправляю строку Base64 без кодирования, мой PHP скрипт не принимает его.

я found a solution для кодирования и декодирования Base64 строку в JavaScript, но не в это для меня смысл.

+0

Что вы подразумеваете под «' encode' строка 'Base64'? Преобразовать строку в представление 'base64'? Можете ли вы включить 'javascript',' php', что вы пробовали в Question? – guest271314

+0

Нет, я имею в виду, как я могу сделать его «URL-безопасным», потому что он содержит некоторые '/' и '+' и '=' –

+0

@JohnBrunner. См. Мой ответ, сообщите мне, если вам нужен более подробный пример , – matt

ответ

4

Таким образом, в JavaScript (обновляется с кодирующей URI):

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

btoa example

Вы должны быть затем в состоянии добавить, что в кодировке Base64 на запрос GET.

Затем в PHP, после получения запроса:

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

base64_decode docs

+0

'nodejs' не отображается в тегах по Вопросу? – guest271314

+0

@ guest271314 Хорошая точка. Привет ... Дай мне секунду – matt

+0

Спасибо за ваш ответ, но я думаю, что задал вопрос неправильно. У меня уже есть строка Base64, и я хочу отправить ее через GET на мой сервер. Проблема в том, что строка Base64 содержит много/и +, что небезопасно для GET. Как я могу отправить его безопасно через GET? –

0

В Javascript

var password ="xyz" 
window.btoa(password) 

В PHP

$password = urldecode(base64_decode($_POST['password'])); 

 Смежные вопросы

  • Нет связанных вопросов^_^