Sur une page, je suis "masquage"/URL de codage qui est passé à une autre page, là, je décode l'URL et commence la livraison du fichier à l'utilisateur.Besoin d'aide avec PHP codage/décodage URL
J'ai trouvé une fonction pour encoder/décoder les URL, mais parfois l'URL encodée contient "+" ou "/" et le lien décodé est cassé.
Je dois utiliser "structure de dossier" pour le lien, ne peut pas utiliser QueryString!
Voici fonction Encoding:
$urll = 'SomeUrl.zip';
$key = '123';
$result = '';
for($i=0; $i<strlen($urll); $i++) {
$char = substr($urll, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
$result = urlencode(base64_encode($result));
echo '<a href="/user/download/'.$result.'/">PC</a>';
Voici Décodage:
$urll = 'segment_3'; //Don't worry for this one its CMS retrieving 3rd "folder"
$key = '123';
$resultt = '';
$string = '';
$string = base64_decode(urldecode($urll));
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)-ord($keychar));
$resultt.=$char;
}
echo '<br />DEC: '. $resultt;
Alors, comment coder et décoder url. Merci
EDIT:
Je résolus avec str_replace :)
Lors de l'encodage:
$result = str_replace('%2B', '-', $result);
$result = str_replace('%2F', '_', $result);
Lors du décodage:
$urll = str_replace('-', '%2B', $urll);
$urll = str_replace('_', '%2F', $urll);
+1 Sécurité PHP –
Désolé de ne pas comprendre ce que vous voulez dire? – Kenan