Autor Zpráva
loader
Profil *
Mám script:
RewriteRule  ^file/(.*)$ index.php?Name=$1 [QSA,L]



Ale keď do url zadám:
addr.cz/file/Nazov & Typ
addr.cz/file/...

Tak premenná v PHP
<?php
echo $_REQUEST['Name'];
?>

Nevydá žiadnu hodnotu.

Ako to opraviť ?
Kcko
Profil
např. znak & je "chráněným" znakem a mezera tam jistě také nemá moc co dělat.
loader
Profil *
Tak iný príkad na adresu: addr.cz/info/Spybot Search & Destroy
Davex
Profil
loader:
Pravidlem se přepisuje na adresu index.php?Name=info/Spybot Search & Destroy a hodnota Name by neměla být prázdná, protože PHP by mělo rozdělit parametry do

$_GET['Name'] = 'info/Spybot Search ';
$_GET['Destroy'] = '';

Aby se to nerozdělilo, tak se musí vynutit escapování speciálních znaků v přepsané adrese pomocí příznaku [B].

RewriteRule  ^file/(.*)$ index.php?Name=$1 [QSA,L,B]
loader
Profil *
Davex:
Ďakujem za odpoveď, ale chcem sa ešte spýtať, ako kódovať nejaké špeciálne znaky zadané v url do súboru ?
Príklad:
Zadané: info/吹响号
ale súbor v ktorom sa zadaný GET parameter načíta, také znaky zakóduje do zlého formátu.
Davex
Profil
loader:
Znaky, které přijdou v URL, by měly být v kódování UTF-8. Pokud je stránka v jiném kódování, tak se musí kódování sjednotit například pomocí iconv().

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0