2010-04-27 8 views
0

MySQL 데이터를 html로 내보내는 데 약간의 문제가 있습니다. 문제는 한 필드에서 나는 다음과 같은 값을 가지고 있습니다 : <a href="http://google.com">Google</a> 그리고 html 형식의 표를 내보낼 때이 필드에 대해 생성 된 html 표에 다음이 포함되어 있습니다. 유효한 html 링크가 아닌 &lt;a href=&quot;http://google.com&quot;&gt;Google&lt;/a&gt;. mysql을 사용하지 않고 테이블을 내 보내어 <> 문자로 변환 할 수 있습니까?MySQL 테이블을 HTML로 내보내기

메신저 코드를 사용하지 않습니다. 난 그냥 mysql 명령을 사용합니다 : mysql -H "select ...." 및 출력 파일을 지정합니다.

감사합니다.

답변

1
when i export the table in html format the generated html table for this fields contains: 
&lt;a href=&quot;http://google.com&quot;&gt;Google&lt;/a&gt; 

이상 하네 즉, 나는 (5.1.34에서) 그 행동을하지 않습니다! 내 예제에서 볼 수 있듯이 잘못된 HTML 형식의 위험을 감수해야합니다. 예. 값이 </table>이면 전체 출력이 중단됩니다.

일부 또는 모든 열에서 원시 HTML 콘텐츠를 허용하도록 출력 형식을 제어하려면 (a) 이 코드를 작성해야하며 (b) 데이터베이스의 내용이 안전하다고 알려진 HTML인지, 테이블을 손상시킬 수있는 조작 된 문자열 또는 악의적 인 JavaScript가 없는지 확인하십시오.

mysql에 대한 옵션이 작업에 불충분하며 다른 결과로 판단 할 때 매우 신뢰할만한 것으로 보입니다. MySQL 바인딩을 사용하여 스크립팅 언어를 선택하고 행을 수동으로 출력하려고합니다.

0

내보내기 목적은 데이터를 내보내고 시각적으로 설명하지 않는 것입니다. 유효한 링크를 원한다면 PHP 또는 스크립트 언어를 사용해야합니다.

그건 그렇고, 속임수로 할 수 있다고하더라도 그렇게해서는 안됩니다.

$ mysql -H -e "select 'a&b<c>d'"; 
<TABLE BORDER=1><TR><TH>a&b<c>d</TH></TR><TR><TD>a&b<c>d</TD></TR></TABLE> 

을 그리고 당신이 탈출로 인용 동작을 원하는 :

관련 문제