2017-01-25 14 views
-1

私はウェブサイトを構築しています。私はbase64encode()とbase64decode()を使用しています。 私はbase64encode(value)を通してurlとiを受け取り、次に値をデコードします。私はデコードされた値を持っているページでは、私は前のページに行くと私は再び値をエンコードし、それを送信するエンコードを使用する1つのボタンがあります。前のページはその値をデコードし、もう一度同じページに送るためにエンコードします。Base64encondeとデコードを使用すると奇妙な値

私は最初に正しい値を受け取りますが、1を超えると奇妙な値が得られます。それは私のコードです:

最初のページ: ここで私は1つの値を受け取り、それをデコードします。私はこのコードをリストにしていたページの最後に

$tablename = base64_decode($_GET['tablename']); 

、ここで私は、エンコードされた値の送信:secondeページで

$descricao = base64_encode($row["descricao"]); 
       $tablename = base64_encode($tablename); 
       ?> 
       <a href="./gestaoalarme.php?descricao=<?=$descricao?>&tablename=<?=$tablename?>"> 

を私はエンコードされた値

$tablename=base64_decode($_GET['tablename']); 
を受け取ります

と私は戻って、エンコード値を送信するボタンがあります。

<a href="./verdispositivos.php?tablename=<?=base64_encode($tablename)?>" class="btn Back btn-lg"> 

初めての結果ですが、その後ではありません。

+0

これはDB関連のようです。もしそうなら、なぜあなたはこれをエンコードする必要性を感じますか?中間的なPHPスキルを持つ人は、それを解読できます。 –

答えて

1

Base64 encoded values are not URL safeの+/=文字が原因です。

また、URLに文字列を使用する前にurlencode()を使用する必要があります。

など。

$value_to_encode = 'some=string/here+foobar'; 
$encoded = urlencode(base64_encode($value_to_encode)); 
$decoded = base64_decode(urldecode($encoded)); 
+0

$ value_to_encode私はここに何を置くべきですか?変数またはURL? –

+1

@BrunoGonçalvesこの回答が解決した場合、問題は解決済みとしてマークする必要があります。コメントに記載されているように、*「PHPの中間スキルを持っている人は誰でもデコードできます」* - なぜこれをエンコード/デコードする必要があるのですか? –

+0

リンクに値を表示しないようにするだけでした –

関連する問題