Используйте urlencode или http_build_query . Тогда не нужно декодировать сообщение.
base64 - это не шифрование, и почти каждый программист может определить его и преобразовать. Вы не должны передавать это как какой-то безопасный способ отправки сообщения со страницы на страницу.
Если вы просто хотите, чтобы он не был изменен, вы также можете отправить хеш строки с секретной солью для вашего сервера.
$salt = 'longsecretconstanttexthere';
$url .= '?' . http_build_query(array('text' => $str, 'hash' => md5($str . $salt));
Получение конца:
$str = $_GET['text'];
if ($_GET['hash'] !== md5($str . $salt)) {
//not the original string
}
Для секретного метода сохраните текст в $ _SESSION или дБ с ключом. Отправьте этот ключ на следующую страницу.