base64_decode декодирует не закодированные данные. Как обойти ?

Статус
В этой теме нельзя размещать новые ответы.

usergeyv

Знаток
Регистрация
5 Июл 2013
Сообщения
152
Реакции
25
PHP:
 $link_url = base64_decode ($_SERVER['QUERY_STRING']);
$_SERVER['QUERY_STRING'] - ссылки, попадают кодированные и не кодированные.
Все нормально работает когда данные в закодированном виде (d3d3Lm51bGxlZC5jYw==),а как только не закодированные (Для просмотра ссылки Войди или Зарегистрируйся) выдает:
Для просмотра ссылки Войди или Зарегистрируйся

Как избежать декодирования не закодированных данных?
 
Последнее редактирование модератором:
PHP:
$data = $_SERVER['QUERY_STRING'];

//для теста можно что-то из этого разкоментиорвать
//$data = 'https://www.nulled.cc/';
//$data = 'd3d3Lm51bGxlZC5jYw==';

$decoded = base64_decode($data);
$link_url = base64_encode($decoded) === $data ? $decoded : $data;

var_dump(    $link_url    );

PS: желательно дизайн софта делать таким образом чтобы таких ситуаций не возникало.
Если есть данные которые могут быть в base64 или другом алгоритме, то они должны быть в соответствующей переменной. Например: $_GET['b64']. Либо все данные которые приходят должны быть закодированы в этом алгоритме.
 
PHP:
$data = $_SERVER['QUERY_STRING'];

//для теста можно что-то из этого разкоментиорвать
//$data = 'https://www.nulled.cc/';
//$data = 'd3d3Lm51bGxlZC5jYw==';

$decoded = base64_decode($data);
$link_url = base64_encode($decoded) === $data ? $decoded : $data;

var_dump(    $link_url    );

PS: желательно дизайн софта делать таким образом чтобы таких ситуаций не возникало.
Если есть данные которые могут быть в base64 или другом алгоритме, то они должны быть в соответствующей переменной. Например: $_GET['b64']. Либо все данные которые приходят должны быть закодированы в этом алгоритме.

все работает , но пишет
Код:
string(120) "здесь данные"
почему string(120)?

Скрин

поменял
Код:
var_dump(    $link_url    );
на
Код:
$data = $link_url;
работает, так правильно?
 

Вложения

  • Screenshot_9.png
    Screenshot_9.png
    59,6 KB · Просмотры: 7
Последнее редактирование модератором:
Почитай, что делает var_dump() - это просто для удобства разработки, чтобы точно знать формат данных.
А для сайта используй echo.

Просто закомментируй или удали строку с var_dump() поставив в начале строки
PHP:
//
А менять переменный местами бессмысленно.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху