2010-01-16 2 views
4

html 코드를 직접 편집 할 수있는 텍스트 영역이 필요합니다. textarea (html 태그 포함)가 MySQL 데이터베이스에 저장되어야하는 경우 양식을 제출 한 후 PHP를 사용하여 날짜를 받고 데이터베이스에 저장합니다. 내 문제는 HTML 코드가 PHP로 제대로 보내지지 않는다는 것입니다. HTML 코드가 아니라 텍스트 만 수신합니다. 어떻게 해결할 수 있을까요?양식을 통해 Textarea의 HTML 코드를 PHP로 보내십시오.

나의 양식은 다음과 같습니다

<form method="post" enctype="multipart/form-data" action="form.php"> 
    <textarea name="html_code"> 
     <a href="link">testlink</a> 
    </textarea> 
    <input type=submit value="submit"/> 
</form> 

form.php 이제 텍스트 영역의 내용

echo $_POST['html_code']; 

쇼 보여줄 수 있어야한다 : testlink

내가 원하는 : <a href="link">testlink</a>

답변

4

답장을 보내 주셔서 감사합니다. 나는 그 문제를 발견했다. 그것은 Joomla이었다. Joomla는 getVar를 통해 문자열을 받았을 때 HTML 태그를 제거했습니다. 문제를 해결하기 위해 마스크 옵션 JREQUEST_ALLOWRAW를 사용해야했습니다.

JRequest::getVar('html_code', '', 'post' , 'STRING', JREQUEST_ALLOWRAW); 
+2

안녕하세요 도미니크, 귀하의 답변에 당신이 Joomla 등을 사용하는 사람들 이이 같은 possilbe 문제를 인식 할 수 있도록 지정하는 것이 중요합니다. –

+0

@Toby Allen 네, 맞습니다. Joomla와 관련된 문제가 발생하지 않았습니다. – dominik

1

HTML p 나이? 코드가 실제 링크로 파싱되기 때문입니다.

출력 페이지의 원본을 봅니다.

+0

HTML 페이지의 소스를 보는 경우 "testlink"만 보입니다. – dominik

1

잘못된 인코딩 유형을 사용하고 있습니다.

"multipart/form-data"대신 "text/plain"이어야합니다.

Doug의 말처럼 데이터를 인코딩 할 필요가 없습니다. 양식을 제출할 때 인코딩되므로 미리 사용하기 전에 디코딩하는 것을 잊지 마십시오.

+0

인코딩이 문제라고 생각하지 않습니다. PHP는 인코딩을 자동으로 감지하고 필요한 것을 디코딩합니다. – Felix

1

양식은 다음과 같아야합니다

<form method="post" enctype="multipart/form-data" action="form.php"> 
    <textarea name="html_code"> 
     &lt;a href=&quot;link&quot;&gt;testlink&lt;/a&gt; 
    </textarea> 
    <input type=submit value="submit"/> 
</form> 

가 (아니, 엉망 아니에요 그들은 HTML entities라는 것입니다.)

당신은 그것을 달성하기 위해 PHP에서 htmlentities()를 사용할 수 있습니다.