2011-08-12 5 views
2

안녕하세요 저는 텍스트 영역의 텍스트 편집기로 openWYSIWYG를 사용하고 있습니다. 그런 다음 텍스트 영역의 내용을 데이터베이스의 필드에 게시하려고합니다. mySQL 데이터베이스 필드에 텍스트 영역 저장 PHP

내가 지금까지 가지고있는 코드입니다 -

<?php 
$text = $_GET['Comments']; 



mysql_connect ("localhost", "user", "password") or die ('Error: ' . mysql_error()); 
mysql_select_db("databasename") or die ('Data error:' . mysql_error()); 

$query="INSERT INTO KeepData (player_data)VALUES ('$text')"; 

mysql_query($query) or die ('Error updating database' . mysql_error()); 




?> 

내가 그것을 필드에 빈 항목을 추가 제출을 클릭했을 때 데이터베이스에 연결하고 수 있습니까? 어떻게 포맷팅 된 모든 데이터를 유지할 수 있을까요?

많은 감사

갱신

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
<textarea id="Comments" name="Comments"> 
example text 
</textarea> 
<input type="submit" name="mysubmit" value="Save Post" /> 
</form> 

DIM3NSION 많은 여기에 StackOverflow에 같은 숨겨진 텍스트 영역 (에 다른 곳에 형식 코딩 버전을 저장하면 **text**를 입력하면

+5

SQL 인젝션 마피아에 의한 '우수 사례'로 간주되지 않습니다. –

+2

use mysql_real_escape_string – llamerr

+0

더 이상 오래된 mysql API를 사용해서는 안되며, 이제는 오랫동안 사용하지 않아서 결국에는 PHP에서 사라질 것입니다. 대신 PDO를 사용하십시오. – B4NZ41

답변

0

당신은해야합니다, 그것은 것 텍스트으로 나오면 데이터베이스에 **text**으로 저장하고 PHP로 렌더링합니다.

일단 포맷 된 버전이 저장되면 데이터베이스에서 데이터를 가져올 때 PHP로 렌더링하십시오.

0

양식이 게시 중이거나 게시 중입니까 (게시물 게시 중)? $ _GET [ 'Comments']가 있지만 양식의 작업이 POST 인 경우 $ _POST [ 'Comments']를 사용해야합니다.

$ 텍스트를 할당 한 후 echo $text;exit;을 추가하면 아무 것도 보이지 않습니까?

+0

또는 그냥 사용 요청 – B4NZ41

0

MySQL 삽입을 위해 mysql_escape_string 함수를 사용해야하며, 텍스트에 '이 있으면 오류가 발생합니다.

0
  1. 귀하의 수표가 <form action='get'>인지 확인하십시오. 단지 <form> 일 경우 get이 기본값으로 사용됩니다.
  2. wisywig에 name='Comments' 속성이 있는지 확인하십시오.
  3. $textmysql_real_escape_string으로 탈출하십시오. '과 같은 SQL 불법 심볼을 포함 할 수 있습니다. 이 함수는 \
  4. (권장 사항)으로 이스케이프 처리하고 mysql_*은 사용하지 않으며 PHP 5.3에서 제거되어 제거됩니다.
  5. (권장 사항) SQL 쿼리에 사용자 입력을 추가하면 항상 SQL 삽입의 위험이 있습니다.prepared statements
4

은 다음과 같은 것을 시도 사용

<?php 
    if ($_POST['submit']) { 
     mysql_connect ("localhost", "user", "password") or die ('Error: ' . mysql_error()); 
     mysql_select_db("databasename") or die ('Data error:' . mysql_error()); 
     $text = mysql_real_escape_string($_POST['comments']); 
     $query="INSERT INTO KeepData (player_data) VALUES ('$text')"; 
     mysql_query($query) or die ('Error updating database' . mysql_error()); 
    } 
?> 


<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    <textarea name="comments">Example Comment</textarea> 
    <input name="submit" type="submit" value="submit" /> 
</form> 
+0

답장을 보내 주셔서 감사합니다.이 시도했지만 다시 빈 필드를 추가합니다. 필자는 내 양식을 내 양식 정보로 업데이트했습니다. 어떤 도움이라도 크게 환영받을 것입니다 – DIM3NSION

+0

이것을 사용하고 $ text = mysql_real_escape_string ($ _ POST [ 'comments'])을 변경하십시오; –

+0

** EDIT ** 제안 된대로 소문자 주석으로 업데이트 된 코드. – Mat

0

그냥

<button onclick=" $('#txtEditor').val($('.Editor-editor').html());" type="Publish" id="Publish" name="Publish" class="btn btn-primary">Publish</button> 

처럼 onclick 이벤트 뭔가를 추가하려면이 잘 작동의 #txtEditor 양식 ID와 일치해야합니다 기억, .html을 추가하면 색상, 굵게 및 더 많은 효과가있는 데이터베이스에 저장됩니다 (즉, 작업 기능)

는 데이터베이스에 보내 당신의 PHP 코드, 변수로 사용하는 방법이

$anything = ($_POST['txtEditor']); 

$anything 같은 것을 수행 txtEidtor 양식 ID입니다 잊지 말아. 이것으로 당신 wysiwyg는 일하고 있습니다.

관련 문제