2012-07-07 7 views
1

MySql에 텍스트를 보내기 위해 일부 Form을 코딩했습니다. 내 문제 중 하나는 줄 바꿈을 유지하는 것입니다. Google을 통해 일부 코드를 발견했지만 어떻게 사용할 수 있는지 전혀 알지 못합니다. 어떤 시도는 실제로 성공하지 못했습니다.Textarea 및 MySQL에서 줄 바꿈 유지

내가 찾은 코드는 그 아래에서 설정 방법을 모른다는 것입니다.

function my_nl2br($string){ 
    $string = str_replace("\n", "<br />", $string); 
     if(preg_match_all('/\<pre\>(.*?)\<\/pre\>/', $string, $match)){ 
      foreach($match as $a){ 
      foreach($a as $b){ 
      $string = str_replace('<pre>'.$b.'</pre>', "<pre>".str_replace("<br />", "", $b)."</pre>", $string); 
      } 
     } 
    } 
return $string; 
} 

다른 코드는 내가 찾았지만 데이터베이스에서 읽으려고하면 줄 바꿈이 작동하지 않습니다.

if (isset($_POST['submit'])) 
{ 
    $text = trim($_POST['text']); 
    $text = stripslashes($text); 
    $text = htmlspecialchars($text); 

    echo 'you entered:<br><br>' . nl2br($text); 
} 

이것은 임플란트 코드입니다.

if(isset($_POST['title'])) 
     { 
     $title = mysql_real_escape_string(htmlspecialchars($_POST['title'])); 
     $description = mysql_real_escape_string(htmlspecialchars($_POST['description'])); 
     $applepart = mysql_real_escape_string(htmlspecialchars($_POST['applepart'])); 
     $partnumber = mysql_real_escape_string(htmlspecialchars($_POST['partnumber'])); 
     $productcode = mysql_real_escape_string(htmlspecialchars($_POST['productcode'])); 
     $compatibility = mysql_real_escape_string(htmlspecialchars($_POST['compatibility'])); 
     $url_bild = mysql_real_escape_string(htmlspecialchars($_POST['url_bild'])); 
     $price = mysql_real_escape_string(htmlspecialchars($_POST['price'])); 
     $insert = mysql_query("INSERT INTO `adressbuch` (`title`,`description`,`applepart`,`partnumber`,`productcode`,`compatibility`,`url_bild`,`price`) VALUES ('$title','$description','$applepart','$partnumber','$productcode','$compatibility','$url_bild','$price')"); 
     if (!$insert) 
     { 
      die('Eintrag konnte nicht gespeichert werden: ' . mysql_error()); 
     } 
     } 

    ?> 

    <form method="POST" action="?page= "> 
     <span>Neuer Eintrag:</span> <br /> 
     <span>Title</span><input type="text" name="title" /> <br /> 
     <span>Description</span><textarea cols="16" rows="5" name="description"></textarea> <br /> 
     <span>Apple Part</span><input type="text" name="applepart" /> <br /> 
     <span>Part Number</span><input type="text" name="partnumber" /> <br /> 
     <span>Product Code</span><input type="text" name="productcode" /> <br /> 
     <span>Compatibility</span><input type="text" name="compatibility" /> <br /> 
     <span>Image</span><input type="text" name="url_bild" /> <br /> 
     <span>Price</span><input type="text" name="price" /> <br /> 
     <input type="submit" value="Speichern"/> <br /> 
    </form> 

환호들

+0

일부 HTML 코드가 있어야 텍스트 영역에 입력인가? 그렇다면 HTML의 줄 바꿈은 _br_ 태그로 지정해야합니다. 입력 내용이 일반 텍스트 인 경우 이스케이프 처리해야합니다. 어쩌면 나는 너의 질문을 이해하지 못할 것이다. – acondolu

+0

아니요 그냥 평범한 텍스트 여야합니다. – kara

+0

좋습니다. 그러면 HTML을 이스케이프 처리해야한다고 생각합니다. '$ _POST ['title ']', nl2br을 적용하고 결국은 SQL을 이스케이프 처리합니다. – acondolu

답변

3

데이터베이스에 제목을 저장하려면, 시도 :

$title = real_escape_string(nl2br(htmlspecialchars($_POST['title']))); 
+0

오, 당신은 그것을 가지고 :) – acondolu