2011-01-14 4 views
0

총계 새내기 질문 ....사용자 입력에서 '/'와 같은 특수 문자를 제거하지 않으려면 어떻게해야하나요?

나는 Joomla 템플리트를 개발 중이며, 여기서는 자산 (이미지, JavaScript 및 CSS)을 원격지 또는 로컬에서로드하기위한 조항을 만들고 싶습니다.

나도 같은 위해 다음 코드를 사용하고이 지금의

<?php 

class MyclassName { 

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

} 
?> 

내가 사용자 입력을 통해 $cdn_path에 대한 값을 호출합니다. 경로를 가져올 수 있지만 '/' 표시가 삭제됩니다.

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

:

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

그것으로 읽는 반면 :으로 읽을 생각입니다 http://mydomain.com/cdn

CDN에 대한 올바른 경로는 다음과 같습니다 아래의 예를 참조하십시오

이것에 대한 해체는 joomla은 joomla의 루트 디렉토리입니다 는 사용자 입력에서 모든 '/' 문자를 제거하고

  1. : 및 http://mydomain.com/cdn/는 사용자 입력을

    두 과제이다.

  2. 경로 시작 부분에 Joomla 루트 'joomla'을 추가합니다.

내가 잘못 코딩 했습니까? 그렇다면 올바른 구문은 무엇입니까?

이보다 더 좋을 것이라고 생각 되시면 언제든지 새로운 방법을 제안하십시오.

친절히 도움.

당신이 포스트를 통해 입력을 얻는 경우
+0

사용자 입력을 인코딩하는 URL을 사용해 보셨나요? – Naatan

+0

안녕하세요 @Naatan은 게시물에 감사하지만 실제로 프로그래밍을 처음하는 초보자이며이를 수행하는 방법을 모르기 때문에 실제로 시도하지 않았습니다. 나는 아직 학습 단계에있다. 그러나 거기에 사용자 입력의 시작 부분에 Joomla의 루트 디렉토리를 추가하는 내 문제도 두 번째 도전입니다. –

+0

@Naatan 또한이 변수는'templateDetails.xml' 파일을 통한 사용자 입력이 될 것입니다. 따라서 사용자가 인코딩 된 URL을 입력하는 것은 불가능할 수 있습니다. –

답변

1

(IM하지 어떻게 사용자의 입력을 복용해야합니다.) 은 그래서 당신은 슬래시 추가하려면이 같은 뭔가를 시도 할 수 있습니다 :

<?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); 
} 
?> 

경우가 배열 ..

+0

안녕하세요 @Ayaz 도움을 주셔서 감사합니다. 나는 XML 형식의'templateDetails.xml' 파일을 통해 입력이 취해 지도록 Joomla를 사용하고 있습니다. 예 :' ' –

+0

메신저가 joomla를 시도한 이후로 나는 당신에게 많은 제안을 할 수는 없지만 이것을 발견했다. 라인 cb.core.php에서 cb.core.php 을 수정하여 : 99 (CB 1.1) 는 sefRelToAbs ('/'.$ uimage)에 sefRelToAbs ($의 uimage) 수정 –

관련 문제