2017-01-25 3 views
-1

Ich baue eine Website und ich verwende die base64encode() und base64decode(). Ich sende den Base64encode (Wert) durch und URL und ich empfange und dann dekodiere ich den Wert. Auf der Seite, die ich den decodierten Wert habe, habe ich eine Taste, die auf die vorherige Seite geht, und ich benutze die Kodierung, um den Wert wieder zu kodieren und es zu senden. Auf der vorherigen Seite dekodiere ich diesen Wert und kodiere erneut, um auf dieselbe Seite zu senden.Seltsame Werte bei der Verwendung von Base64enconde und decode

Beim ersten Mal bekomme ich die richtigen Werte, aber wenn ich mehr als 1 mache, bekomme ich seltsamen Wert. Es ist mein Code:

Die erste Seite: Hier bekomme ich einen Wert und ich entziffere es.

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

Am Ende der Seite i mit diesem Code auf Liste, hier i den codierten Wert senden:

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

In der seconde Seite i den codierten Wert

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

und ich habe diese Taste, die zurückgeht und den Kodierungswert sendet.

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

Das erste Mal Ergebnisse, aber dann nicht.

+0

Dies scheint db-verwandt. Wenn ja; Warum hast du das Bedürfnis, dies zu verschlüsseln? Jeder mit PHP-Kenntnissen kann dies entschlüsseln. –

Antwort

1

Base64 encoded values are not URL safe aufgrund der +/und = Zeichen.

Sie müssen auch urlencode() verwenden, bevor Sie die Zeichenfolge in einer URL verwenden.

z.

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

$ value_to_encode was soll ich hier eingeben? eine Variable oder die URL? –

+1

@ BrunoGonçalves Wenn diese Antwort es gelöst hat, sollte die Frage als gelöst markiert werden. Auch wie ich in Kommentaren gesagt habe: * "Jeder, der über fortgeschrittene PHP-Fähigkeiten verfügt, kann das entschlüsseln" * - warum also die Notwendigkeit, dies zu kodieren/zu decodieren? –

+0

Ich habe mich nur geäußert, um den Wert in der Verbindung nicht anzuzeigen –

Verwandte Themen