10/10/2018, 09:50
Giúp đỡ mình về insert dữ liệu từ fckeditor vào csdl
Dưới đây là trang sample01.php chứa bộ gõ fck
Tiếp theo là trang sampleposteddata.php xử lý dữ liệu do editor gửi sang
Ví dụ mình copy 1 bức ảnh trên trang dantri.com.vn vào editor và submit thì bên trang xử lý cho ra kết quả:
Bây giờ mình muốn cho toàn bộ kết quả trên được insert vào csdl, mình thêm đoạn code sau trong trang xử lý
nhưng dữ liệu trong csdl sau khi được thêm vào lại là như sau:
Các tag mở/đóng của các thẻ bay đâu hết, mà lại còn bị mã hóa như trên.
Bạn nào biết mình sai vì sao, hãy chỉ giùm mình với. Cám ơn sự giúp đỡ của các bạn !
PHP Code:
<html>
<head>
<title>FCKeditor - Sample</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="robots" content="noindex, nofollow">
<link href="../sample.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form action="sampleposteddata.php" method="post" target="_blank">
<?php
$sBasePath = $_SERVER***91;'PHP_SELF'***93; ;
$sBasePath = substr( $sBasePath, 0, strpos( $sBasePath, "_samples" ) ) ;
$oFCKeditor = new FCKeditor('FCKeditor1') ;
$oFCKeditor->BasePath = $sBasePath ;
$oFCKeditor->Value = 'Nhập nội dung...' ;
$oFCKeditor->Create() ;
?>
<br>
<input type="submit" value="Submit">
</form>
</body>
</html>
PHP Code:
<?php
if ( isset( $_POST ) )
$postArray = &$_POST ; // 4.1.0 or later, use $_POST
else
$postArray = &$HTTP_POST_VARS ; // prior to 4.1.0, use HTTP_POST_VARS
foreach ( $postArray as $sForm => $value )
{
if ( get_magic_quotes_gpc() )
$postedValue = htmlspecialchars( stripslashes( $value ) ) ;
else
$postedValue = htmlspecialchars( $value ) ;
echo htmlspecialchars($sForm) ;
echo “<pre>”.$postedValue.”</pre>”;
}
?>
PHP Code:
<p><span class="bodyContent" id="ctl14_ltrContent"><span style="font-family: Tahoma; font-size: 10pt;"><img width="450" align="center" _fl="" src="http://dantri.vcmedia.vn/Uploaded/2009/10/21/2002-real-madrid_diaporama.jpg" style="margin: 5px;" alt="" /><br />
<br />
</span></span></p>
PHP Code:
$connect = mysql_connect("localhost","root","");
$select_db = mysql_select_db("fck",$connect);
$query = "insert into test (noidung) values ('$postedValue')";
$sql = mysql_query($query);
PHP Code:
<p><span class="bodyContent" id="ctl14_ltrContent"><span style="font-family: Tahoma; font-size: 10pt;"><img width="450" align="center" _fl="" src="http://dantri.vcmedia.vn/Uploaded/2009/10/21/2002-real-madrid_diaporama.jpg" style="margin: 5px;" alt="" /><br />
<br />
</span></span></p>
Bạn nào biết mình sai vì sao, hãy chỉ giùm mình với. Cám ơn sự giúp đỡ của các bạn !
Bài liên quan
Nếu muốn không bị mã hóa, bạn có thể "hack" nó.
- Mở file samples\php\sampleposteddata.php lên.
- Tìm dòng
foreach($postArray as $sForm => $value)
{
$outputString = $value;
}
$query = "insert into test (noidung) values('$outputString')";
$sql = mysql_query($query);
Và khi show cái content này ra, dĩ nhiên browser xem nó như 1 script code hẳn hoi. Vậy là "toi" . Chính vì lẽ đó mà FCK mới mã hóa chứ không thì nó mã hóa làm gì.
Bởi vậy mình chỉ decode lại những tag "vô hại" thôi, còn script tag thì vẫn bị mã hóa chứ không phải "thiếu" như bạn tưởng đâu
vào fckconfig.js mà config nhé ... chắc trước giờ dùng chưa bao giờ mở cái file đó ra xem