如何防止从用户输入中删除“/”等特殊字符?

时间:2011-01-14 23:36:09

标签: php url path

一个新手问题......

我正在开发一个Joomla模板,在此我想提供从远程位置或本地加载资源(图像,JavaScript和CSS)。

我使用以下代码:

<?php

class MyclassName {

function CDNPath(){
return $this->getParam("cdn-path","templates/myTemplate/cdn");
}

}
?>

现在,我想通过用户输入调用$cdn_path的值。我能够获得路径,但它正在移除'/'标记。请参阅以下示例:

CDN的正确路径为http://mydomain.com/cdn

假设读为:

<link rel="stylesheet" href="/joomla/http://mydomain.com/cdn/css/template.css" type="text/css" media="screen" />

而它的读物为:

<link rel="stylesheet" href="/joomla/http:mydomain.comcdn/css/template.css" type="text/css" media="screen" />

joomla的分解是joomla的根目录,http://mydomain.com/cdn/是用户输入

两个挑战:

  1. 它正在从用户输入中删除所有'/'个字符。

  2. 它将Joomla Root 'joomla'添加到路径的开头。

  3. 我编码错了吗?如果是,那么正确的语法是什么。

    如果您觉得自己会比这更好,请随时提出任何新方法。

    请帮助。

1 个答案:

答案 0 :(得分:1)

如果您通过帖子获得输入(我不确定您是如何从用户那里获取输入的。) 所以你可以尝试这样的东西来添加斜杠:

<?php
//create array to temporarily grab variables
$input_arr = array();
//grabs the $_POST variables and adds slashes
foreach ($_POST as $key => $input_arr) {
$_POST[$key] = addslashes($input_arr);
}
?> 

如果它的数组..