$ _GET удаляет некоторые символы (+) и ломает мой ключ шифрования

0

Как я могу получить $ _GET для полной строки? Он разбивает мой ключ encyption, поэтому я не могу зашифровать свой материал, используя opnessl_public_encrypt

$key = $_GET['key'];
$key = wordwrap($key, 65, "\n", true);
$key = <<<EOF
-----BEGIN PUBLIC KEY-----
$key
-----END PUBLIC KEY-----
EOF;

Оригинальный ключ:

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgrYDLP5THYt/if+wbShGksfKjmuTe7aI4UuOHNKuONT4ROdWxfN7nn1VH3gHekYDtBRkmSmMwCQLeDzzCBP+hKT0rcfypPf6oKUlzvslOcUxOT/NPElVV7O/zPulO1kIWVHls2o3ioob8r2Bh0dFTDwj6qceTe4SaAFsPN1nSVF/w2dv53ZIO3zwXLdFHJ8dzRW25eHiWTgaIWXk4nmWcwkAE49LcfcAwXWC/Q2nd4zP3uKbi4naacqMpNj5vUPmoJg7iKodrMY4v58dmmACuMqjHjgkQeMRPQK9AV7yaMx82fhUqjA+Dx396CPTCzpk6NDSN6GDKxRzIZS5jgYyfQIDAQAB

Ключ, который $_GET получает:

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgrYDLP5THYt/ifwbShGksfKjmuTe7aI4UuOHNKuONT4ROdWxfN7nn1VH3gHekYDtBRkmSmMwCQLeDzzCBP hKT0rcfypPf6oKUlzvslOcUxOT/NPElVV7O/zPulO1kIWVHls2o3ioob8r2Bh0dFTDwj6qceTe4SaAFsPN1nSVF/w2dv53ZIO3zwXLdFHJ8dzRW25eHiWTgaIWXk4nmWcwkAE49LcfcAwXWC/Q2nd4zP3uKbi4naacqMpNj5vUPmoJg7iKodrMY4v58dmmACuMqjHjgkQeMRPQK9AV7yaMx82fhUqjA Dx396CPTCzpk6NDSN6GDKxRzIZS5jgYyfQIDAQAB

Некоторые символы, такие как +, удаляются из строки, как я могу это исправить?

Теги:

2 ответа

0
Лучший ответ

Вы никогда не должны отправлять ключ активации через GET. Используйте POST и HTTPS, где это возможно. Кроме того, поскольку переменные GET находятся в URI, некоторые символы будут удалены. Опять же, чтобы избежать этого, используйте POST.

  • 1
    Использование POST не очень помогает. Реальная проблема заключается в том, что они должны быть закодированы URL
  • 0
    При отправке нестандартных символьных строк, да, это так. POST может обрабатывать намного большие строки и нестандартные символы, в то время как GET имеет много ограничений.
Показать ещё 1 комментарий
3

Вы не должны передавать этот символ внутри URL-адреса. Использовать urlencode() Ref

$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);

Учитывая ваше редактирование

Вы можете просто (обескураженно):

$key = str_replace(' ','+',$_GET['key']);
  • 0
    Я хочу понизить это после вашего предложения заменить пробелы на + . Исправьте проблему, не исправляйте ее
  • 0
    @JuanMendes: полностью согласен с вами, поэтому я написал обескураженный :). Сейчас я буду смелым

Ещё вопросы

Сообщество Overcoder
Наверх
Меню