php yönlendirme ve querystring

6 Cevap php

i komut dosyası var

    <?php
$to = $_GET["to"];

header("Location: $to");
?> 

i komut dosyası çağırın eğer böyle

out.php?to=http://site.ru/page.php?param1=1&param2=2

param $ için olabilir sadece http://site.ru/page.php?param1=1& olarak

nasıl düzeltebilirim? ben istiyorum ki $to = http://site.ru/page.php?param1=1&param2=2

6 Cevap

Aradığınız yerinde URL'sini kaçmak out.php yapabilirsiniz:

<a href="out.php?to=<?PHP echo htmlspecialchars(urlencode($to)); ?>">Go to $to</a>

& is a reserved character in an URI. When you access this URL, &param2=2 is interpreted as belonging to the current URL and not to the value of to.
If you want to transmit it literally, you have to encode it with %26:

http://site.ru/page.php?param1=1%26param2=2

Çoğu programlama dilleri bunu yapmak için bir işlev sağlar. (Örneğin, JavaScript, PHP). En iyi şey bütün URL kodlamak için.

base64 URL'ye ve sonra u başlığına geçirmeden önce onu deşifre göstermiştir ki örnekte :) için kodlama çalışın

Bunu UrlEncode

urlencode($to)

Ben daha önce aynı sorun koştu, bu ben ne yaptım:

$arr=explode('?to=',$_SERVER['REQUEST_URI'],2);
$new_to=$arr[1];

Now you can use the $new_to variable. Of course if you're using this for production environment, I would recommend encoding the url as the other answers advised. I was using it for testing curl script. getting the variable this way has lots of flaws, so be careful.

Siz "html_entity_decode" adında bir işlevi kullanabilirsiniz

Click Here for more information about this function

veya kullanım md5 URL'yi şifrelemek için işlev ve daha sonra bir varriable içine koyduğunuzda bunu şifresini.

Bu size yardımcı olur umarım