Ben URL'ye geçirmeden önce urlencode değişken yaptık
http://example.com/Restaurants?alias=F%26B
Ama sayfa yazdırma gibi çalıştığınızda
$alias = rawurldecode($_GET['alias']);
echo $alias;
sadece F basar. Bunu çözmek için?
Ben URL'ye geçirmeden önce urlencode değişken yaptık
http://example.com/Restaurants?alias=F%26B
Ama sayfa yazdırma gibi çalıştığınızda
$alias = rawurldecode($_GET['alias']);
echo $alias;
sadece F basar. Bunu çözmek için?
AFAIK $_GET zaten çözülür.
Bkz php.net
The superglobals $_GET and $_REQUEST are already decoded. Using urldecode() on an element in $_GET or $_REQUEST could have unexpected and dangerous results.
Bu durum için özel farklı bir kodlama sistemi kullanarak bu sorunu çözmek mümkün:
function encode($string)
{
$result = str_replace("|","||",$string);
return str_replace("&","|20",$result);
}
function decode($string)
{
$result = str_replace("|20","&",$string);
return str_replace("||","|",$result);
}
'|' Karakteri Bu temelde kullanarak ayrı bir kaçışa sistemi oluşturmak olacaktır. O karakter normalde kullanmadığınız ve bir alan ayırıcı değil mi herhangi bir şey olabilir.
Burada, Apache ve böylece dönüşüm işeme, farklı bir şey için URL dönüşümü olmaz. Ayrıca tarayıcılar dönüşümü olmaz.
Zihin bu yapacağınız decode($_GET['alias']) ve kullanıcı basarak veya komut takip ettiğini encode() url.