2012-10-21 113 views
0

報價我半天試圖在搜索在網上已經看到下面如何逃避頭PHP

<?php 
    header("Refresh: 2;url=test.php?ID=".$_GET['ID']"&UID=".$_GET['uid']); 
    echo "<img src='images/loading.gif'/>"; 
?> 

我知道這個問題是與頭部代碼中的引號我的代碼。 任何人都可以爲我糾正。

回答

-1

如果你是用字符串語法unversed,使用更簡單的一個:

header("Refresh: 2;url=test.php?ID=$_GET[ID]&UID=$_GET[uid]"); 

(省略數組鍵報價只允許在雙引號字符串上下文!)

+0

感謝的作品相信與否我沒有嘗試 –

+0

@BhoshanMoheeputh這也是不安全的,因爲參數不正確地轉義。 –

+0

@Jack:你的顯然是唯一正確的解決方案。我仍然用'header(「Refresh:2; URL = test.php?{$ _ GET-> multi-> http_build_query ['ID,UID']}」); – mario

0

使用urlencode($_GET['...'])這裏頭可能包含部分網址。

0

你錯過了.

<?php 

header("Refresh: 2;url=test.php?ID=".$_GET['ID']."&UID=".$_GET['uid']); 

// or header("Refresh: 2;url=test.php?ID=$_GET['ID']&UID=$_GET['uid']"); 

echo "<img src='images/loading.gif'/>"; 

?> 
1

你應該逃避,你從查詢字符串接收的參數!

使用http_build_query()構造查詢字符串:

header("Refresh: 2;url=test.php?" . http_build_query(array(
    'ID' => $_GET['ID'], 
    'UID' => $_GET['uid'], 
)));