2014-09-01 2 views
0

제출할 때 데이터베이스에 삽입하는 텍스트 영역이 있습니다. 텍스트를 입력 할 때 작동하지만 텍스트가 텍스트 영역에 붙여 넣을 때 작동하지 않는 경우가 있습니다. 대신, 성공적으로 게시, 더 blindtextgenerator.com에서 복사 예를 들어 텍스트 오류/웹 사이트가 작동하는 일부 웹 페이지에서 복사텍스트 영역에 붙여 넣은 텍스트가 데이터베이스에 삽입되지 않습니다.

텍스트,하지만이 thebestpageintheuniverse.net에서 (단지 예를 들어.) 복사되지 된 텍스트

I을 붙여 넣은 텍스트가 데이터베이스에 삽입되지 않도록하는 상황이 무엇인지 모르겠습니다. 나는 테스트를 실행 해왔고 링크, 탭, 줄 바꿈 또는 텍스트의 크기로 인해 발생한다고 생각하지 않습니다.

여기 저도 같은 문제를 가지고 관련 PHP 파일

if($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 
    header("/venue/index.php"); 

$title = $_POST['title']; 
$post = $_POST['post']; 
$title = htmlentities($title); 
$post = htmlentities($post); 
     $operation = "INSERT INTO talk (title, user, post) 
          VALUES('". $title ."','". $_SESSION['name'] ."', '". $post ."');"; 

$result = mysqli_query($con, $operation); 

} 
+0

문자열을 함께 스매싱하여 SQL 빌드를 시도하지 마십시오. 당신의 문제는 그 잘못으로 인해 거의 확실합니다. 내가 왜 당신이 오류가 없다고 주장하는지 모르겠다. 당신의 코드는 데이터베이스가 처음에 어떤 것이 있는지보고 싶지 않다. – Quentin

+0

해결책은 아마도 http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php와 같을 것입니다. – Quentin

+0

시도해 보겠습니다.하지만 그 문제는 무엇을해야합니까? 붙인 텍스트? – Goose

답변

2

이며이 잘못 무엇인지에 관해서는 저에게 실마리를 준 : 쿠엔틴 같은 How can I prevent SQL injection in PHP? 이미 말했다. 설정이 있습니다. 아마도 SQL 문을 준비하지 않고 많은 양의 텍스트를 삽입 할 수없는 PHP 설정 일 수 있습니다. http://php.net/manual/en/mysqli-stmt.bind-param.php

+0

이것이 해결책이라고 확신하기에는 너무 이르지만, 제 기억이 올바르게 저에게 도움이된다면 데이터베이스에 대한 이러한 이해가 없었습니다. – Goose

3

나는 그것이 나 데이터베이스에 값을 삽입 할 수 없습니다 텍스트 영역에 복사하여 붙여 넣기 한 경우 :

나는 내가 위에서 여기 링크에서 언급 된 방법에 삽입하고 업데이트를하고 있던 방식을 변경했습니다.

는 이제 솔루션을

<textarea name="description"></textarea>는 PHP --- 이 나를 위해 일 $text = addslashes($_POST['description']);

$query = "INSERT INTO addevent(event_description) VALUES ('$text')"; 
mysqli_query($conn,$query) or die('unsuccessful'); 

처럼 addslashes를 추가하십시오

HTML을 --- 발견했다. 이 방법이 당신에게도 도움이되는지 알려주세요.

감사합니다.

관련 문제