2010-11-23 16 views
6

데이터베이스에 HTML을 저장하려고하므로 데이터베이스에서 양식을 검색 할 때 텍스트가 아닌 양식으로 표시해야합니다. 할 수있는 방법이 있습니까? 나는 그것이 텍스트로 보여줍니다 데이터베이스에서 위 검색 할 때mysql 데이터베이스에 html을 저장하는 방법

또한 데이터베이스에 양식 필드가 varchar(1000)

include('adodb.inc.php'); 
include('adodb-pager.inc.php'); 
$sql = 'select title as "TITLE",description as "DESCRIPTION",form as "ADD TO CART" from mathspapers order by sysdate desc'; 
$pager = new ADODB_Pager($db,$sql); 

$pager->Render(); 
이며, 형태 순간

$form = "<form id='' method='' action='' class=''> 
    <input type='hidden' name='my-item-id' value= $uid /> 
    <input type='hidden' name='my-item-name' value=$title /> 
    <input type='hidden' name='my-item-price' value='1' /> 
    <input type='hidden' name='my-item-qty' value='1' /> 
    <input type='submit' name='my-add-button' class='button' value='Add to cart'/> 
    </form>"; 

입니다

감사합니다.

+1

데이터베이스의 값을 읽고 클라이언트에 보내는 코드를 포함해야합니다. –

+0

코드를 검색하는 데 사용중인 코드를 표시하십시오. 또한, varchar 필드는 어떤 크기입니까? –

+0

POST를 직렬화로 저장하는 것으로 충분합니까? –

답변

8

데이터베이스에 텍스트를 저장할 때 아마도 addslashes()을 사용합니다.
그런 다음 데이터베이스에서 텍스트를 반환하면 HTML 텍스트를 표시하기 전에 stripslashes()과 같은 것이 필요합니다. PHP Manual on stripslashes

0

f를 추측해야했는데, VARCHAR 필드가 너무 작아서 모든 HTML을 차지할 수 없으므로 태그가 어딘가에서 잘려져 HTML이 텍스트로 표시되게되었습니다.

+0

안녕하세요, 답장을 보내 주셔서 감사합니다, 나는 텍스트로 전체 양식을 볼 수 있으므로 varchar가 작다고 생각하지 않습니다. – amir

0

더 이상의 증거가 없다면 양식 HTML을 HTML과 동등한 것으로 변환한다는 것입니다. 따라서 텍스트로만 '출력'한다는 것은 텍스트 일뿐입니다. 실제 소스 코드가 난 단지 저장하는 필드 이름과 데이터를 형성하기 위해 조언을 할 수있는 DB 필드에 <

1

대신 전체 양식 패턴을 저장하기위한 &lt; 같은 (그리고 값이) 아니라고하여 출력을 확인

더블 (값)을 키 - 값 쌍으로 사용합니다.

다음과 같은 표준 방식으로 저장하면 쉽게 사용할 수 있습니다. (폼 처리 페이지에서 사용)

$form_data = "my-item-id=".$_POST["my-item-id"]."&my-item-name=".$_POST["my-item-name"]."&my-item-price=".$_POST["my-item-price"]."&my-item-qty=".$_POST["my-item-qty"]; 

다음 (반드시 DB에서 $ form_data를 당기 후) DB에서 데이터를 사용하는 경우에만

데시벨

에서 $ form_data 저장하면 parse_str 사용할 수 있습니다

parse_str($form_data,$form_data_from_db); 

echo $ form_data_from_db [ "my-item-id"] 예를 들어 저장된 양식 입력을 인쇄합니다.

그러나 이것은 내 주요 조언이 아닙니다. 저장된 데이터 필드마다 패턴을 어떻게 작성합니까? 많은 cms와 같은 양식을 작성하는 함수를 작성하십시오.

시도해주세요.

function myform_pattern_1($id,$method,$action,$class,$form_data){ 

parse_str($form_data,$fd); 

$form_html = "<form id='' method='' action='' class=''>"; 
$form_html .= "<input type='hidden' name='my-item-id' value='".$fd["my-item-id"]."' />"; 
$form_html .= "<input type='hidden' name='my-item-name' value='".$fd["my-item-id"]."' />"; 
$form_html .= "<input type='hidden' name='my-item-price' value='".$fd["my-item-id"]."' />"; 
$form_html .= "<input type='hidden' name='my-item-qty' value='".$fd["my-item-id"]."' />"; 
$form_html .= "<input type='submit' name='my-add-button' class='button' value='Add to cart'/>"; 
$form_html .= "</form>"; 
return $form_html; 
} 

원하는 위치에서이 함수를 호출하십시오.

echo myform_pattern_1("form_id","post","","form_class",$form_data); 

이 사용법은 귀하의 방법에 큰 이점이 있습니다. 원할 때마다 양식 구문을 변경할 수 있습니다.나중에 Jquery 유효성 검사 플러그인을 통합하거나 다른 스타일을 사용하거나 태그를 추가하여 구문을 변경하려는 경우 DB에 전체 양식을 저장하는 경우 저장된 모든 db 필드를 변경해야합니다. 기능 사용은 당신이 내가 당신이 좋아하는 희망 불필요한 -repeating- 태그 등

, 시스테인

parse_str에 대한 자세한 내용은

를 저장하는 DB를 사용하지 않습니다 flexible.Also 훨씬 더; 반드시 htmlspecialchars를위한 PHP 문서에서 enter code here

0

http://php.net/manual/en/function.parse-str.php : 특정 문자가 만들어 번역은 웹 프로그래밍에서 매우 유용 HTML에서 특별한 의미가있다. 모든 HTML 문자 엔티티가 변환되어야하는 경우 htmlentities()를 대신 사용하십시오.

결과는 db에 저장되고 db에서 추출됩니다.

당신이 가지고 있습니다.

관련 문제