2013-07-05 8 views
3

WYSIWYG 편집기 (TinyMCE)를 사용하는 블로그를 만들었습니다. 블로그 게시물을 작성하여 게시하고 MySQL 데이터베이스에 저장합니다. 그러면 게시물이 다른 페이지에서 빠져 나옵니다. 당신의 대부분을위한 간단한 물건들입니다.PHP DB에서 가져온 문자열에서 을 제거하십시오.

내 테스트 서버에서 정상적으로 작동하므로 다른 서버로 전환 했으므로 이제 이미지가보기 블로그 페이지에서 제대로 통과하지 못합니다.

나는 img URL을 검사했으며 이렇게 보였다.

나는 그것을 수행하는 방법을 작성하지 않았지만, 인용 부호를 이스케이프 처리하고있는 것 같습니다.

내 마지막 서버에서이 작업을 수행하지 않아 제대로 작동하므로 서버 (호스팅) 보안 작업이라고 가정합니다. $post는 DB에서 가져온 데이터

$cleanpost = str_replace('\', '',$post); 

인 경우 :

나는 빈으로 대체, 제거하기 위해 노력했다. 잘못된 구문이고 따옴표 사이에 백 슬래시를 넣으면 깨집니다.

아무에게도이 방법을 알려 줄 수 있습니까? 아니면 제가해야 할 일이라고 생각하는 것이 맞습니까?

감사합니다.

편집 : 블로그 게시물에 대한 PHP 코드는

if (isset($_POST['blogpost'])) { 


    $nowdate = new DateTime('NOW'); 
    $thisdate = $nowdate->format('Y-m-d H:i:s'); 
    $post = $_POST['blogpost']; 
    $title = $_POST['posttitle']; 
    $status = 'yes'; 




    try { 

     $conn = new PDO('mysql:host=host;dbname=dbname', $username, $password); 
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     $stmt = $conn->prepare('INSERT INTO blogposts(posttext, thisdate, posttitle, active) VALUES(:post, :postdate, :posttitle, :status)'); 
     $stmt->execute(array(
      ':post'=>$post, ':postdate'=>$thisdate, ':posttitle'=>$title, ':status'=>$status 
     )); 

     //echo $stmt->rowCount(); // 1 
    } catch(PDOException $e) { 
     echo 'Error: ' . $e->getMessage(); 
     echo 'died'; 


    }; 

} 
+0

2 개의 백 슬래시를 사용해보세요! 또한 \\ 대신'\ "를 제거해야한다고 생각합니다. – HamZa

+0

'stripslashes()'는 찾고있는 함수입니다.하지만 데이터베이스에 삽입하고 가져 오는 코드를 보여 주면 가장 좋을 것입니다. – Barmar

+1

@HamZa That worked. :) 고마워. – TryingToBeZen

답변

2

이이

$cleanpost = str_replace('\"', '',$post); 
+0

고마워. :) – TryingToBeZen

+0

처음에는 데이터베이스에 어떻게 들어 갔는지 조사해볼 가치가 있습니다. 아마도 어째서 [magic quotes] (http://php.net/manual/en/security.magicquotes.php)가 켜져있을 수 있습니다. – tadman

3

당신은 문자열을 언 이스케이프 할 stripslashes()을 사용할 수 있습니다 시도 삽입합니다.

$post = stripslashes($post); 
+0

+1 모든 도움에 감사드립니다. :) – TryingToBeZen

관련 문제