2011-06-27 54 views
0

Classic ASP(vbScript)のブロックをPHPに翻訳しようとしています。私は正直な試みをしましたが、私の翻訳は正しいとは思われません。誰かが私を助けてくれますか?いくつかのClassic ASP(vbScript)をPHPに変換する

まず、VBScriptのコード:

szTemp = Request.ServerVariables("URL") 
aryCrumbs = Split(szTemp,"/") 
iMax = Ubound(aryCrumbs) 

szCrumbPath = "http://" & Request.ServerVariables("SERVER_NAME") 
szTemp = "<a href=""" & szCrumbPath & """ style=""color:#600;"">Home</a>" 

For i = 0 To iMax -2 
szCrumbPath = szCrumbPath & "/" & aryCrumbs(i) 
szTemp = szTemp & " &gt; <a href=""" & szCrumbPath & """ style=""color:#600;"">" & CleanUp(aryCrumbs(i)) & "</a>" 'Note: The &gt; in this line refers to a server request variable. 
Next 

GetCrumbsArticleCategoryLevel = szTemp & "<span style=""color:#600;""> &gt; " & CleanUp(aryCrumbs(i)) & "</span>" 

そして、ここではPHPへの翻訳で私の試みです:PHPで

$szTemp = $_SERVER["PATH_INFO"]; // Get current URL path (doesn't include www) 
$aryCrumbs = explode("/",$szTemp); // Split path name by slashes into an array 
$iMax = count($aryCrumbs);   // Count array. 
$szCrumbPath = "http://". $_SERVER["HTTP_HOST"];  // Add on http to web server name 
$szTemp = '<a href="' . $szCrumbPath . '" style=&quot;color:#600;&quot;>Home</a>'; 

for ($i=0; $i<=($iMax-2); $i++) { 

$szCrumbPath = $szCrumbPath . "/" . $aryCrumbs[$i]; 
$szTemp = $szTemp ." &gt; <a href=&quot;" . $szCrumbPath . "&quot; style=&quot;color:#600;&quot;". ">" . CleanUp($aryCrumbs[$i]) . "</a>"; 
} 

$GetCrumbsArticleCategoryLevel = $szTemp."<span style=&quot;color:#600;&quot;>&gt; ".CleanUp($aryCrumbs[$i])."</span>"; 
+0

明確化し、物事を残して、確認してください数行のコードに>があります。私がこれを理解しているように、これはサーバー側変数であり、ナビゲーション要求の一部としてユーザーがURLに返す可能性があります。 –

+2

>は、HTMLエンティティであり、CGI変数ではありません。あなたのPHP文字列にそのまま置いてください。同様に、二重引用符をエンティティエンコードする必要はありません。 – staticsan

+0

実際の>文字を返すことになっている場合は、W3C仕様の –

答えて

2

得るために、「あなたはそう、\でそれを区切るために必要

例 "\となり"私はあなたがPHPでequivelentがあるRequest.Formが場合、Request.QueryStringのために$ _POSTや$ _GETを使うそうでない場合のために、$ _SERVERであるがRequest.ServerVariables( "GT")を、使用していたと仮定

翻訳

。 、VBScriptコードで:ユーザーははhtmlspecialchars()関数を使用して値あなたのhtmlエンコードを変更することができるかどう

は、そうでなければ、[XSS]クロスサイトスクリプティング攻撃のためのオープン

$szTemp = $_SERVER['REQUEST_URI']; 
$aryCrumbs = explode("/", $szTemp); 
$iMax = count($aryCrumbs); 

$szCrumbPath = "http://". $_SERVER["HTTP_HOST"]; 
$szTemp = "<a href=\"" . $szCrumbPath . "\" style=\"color: #600\">Home</a>"; 

for ($i=0; $i <= ($iMax - 2); $i++) { 
    $szCrumbPath = $szCrumbPath . "/" . $aryCrumbs[$i]; 
    $szTemp = $szTemp . " &gt; <a href=\"" . $szCrumbPath . "\" style=\"color: #600;\">" . CleanUp($aryCrumbs[$i]) . "</a>"; //The htmlspecialchars prevents a XSS attack 
} 
$GetCrumbsArticleCategoryLevel = $szTemp . "<span style=\"color:#600\"> &gt; " . CleanUp($aryCrumbs[$i]) . "</span>"; 
関連する問題