2013-11-01 3 views
0

Stackoverflow를 검색하여 비슷한 문제를 발견했지만 답변을 이해할 수 없습니다. 나는 2 일 전에 PHP 만 배웠으므로 나 한테 쉽게 들려주세요.

제 문제는 사용자가 파일에 텍스트를 작성하고 제출하기 위해 양식을 사용하고 있다는 것입니다. 그들이 제출을 명중 할 때 원본은 파일로 쓰여지고 다음에 그들이 양식을 방문 할 때 텍스트는 그들이 수정할 수있는 형태로 남아 있습니다. 문제는 인용 형식을 입력하고 제출하면 앞에 \가 추가된다는 것입니다.

예 : 사용자가 글을 참고하세요 : "안녕하세요" 사용자 안타 양식 다시로드를 입력하고 "안녕하세요"\ 나 \ 물건을 취소 알고

을 \ "안녕하세요"와 같은 따옴표가 수 등으로 출력된다 문자열로 출력 될 수 있지만 $ _POST를 사용하여 양식 데이터를 저장할 수 있으며 인용문을 사용할 때마다 \를 사용할 수 있습니까?

PHP로 초보자로서 자세하게 설명해주십시오. 미리 감사드립니다. 여기 내 문제를 일으키는 코드입니다 :

echo '<div class="wrap">'; 

// makes an if statement to check if the submit button has been pushed 
if (isset($_POST['Submit1'])) { 

// opens the include file and writes the contents of "left-form" to the file. left-form is the name of the html text area 

$file = fopen($_SERVER['DOCUMENT_ROOT'] . '/wp-content/themes/mytheme/options/index_left.php', "w"); 
fwrite($file,$_POST["left_form"]); 
fclose($file); 

}

echo '<p><form method="POST" action=""><textarea rows="4" cols="50" name="left_form">'; 
// includes the contents of the file being written to as the text inside the text field 
include $_SERVER['DOCUMENT_ROOT'] . '/wp-content/themes/mytheme/options/index_left.php'; 
echo '</textarea></p>'; 
echo '<input type="submit" value="Submit" name="Submit1"></form>'; 


// sets an if statement to check if the post button has been hit to display a message that it has been posted 
if (isset($_POST['Submit1'])) { 
echo htmlspecialchars($_POST["left_form"]) . '</br>HAS BEEN POSTED'; 
} 

echo '</div>'; 

}

+0

'var_dump (get_magic_quotes_gpc());'출력은 무엇입니까? –

+0

코드 상단에 이것을 써 봤지만 아무런 차이가 없었지만 텍스트 필드 위에 int (0)을 쓰도록했습니다. – user2946010

+0

그러면 사용할 수 없습니다. –

답변

1

htmlspecial 문자가 일부 기호가 위해서 stripslashes에 포장 탈출 \를 추가합니다().

echo stripslashes(htmlspecialchars($_POST["left_form"])) . '</br>HAS BEEN POSTED'; 

편집 : 텍스트 입력이 MySQL은 같은 데이터베이스에 저장되는 경우

귀하의 코멘트에 응답하여, 그 주위는 mysql_real_escape_string() 함수와 stripslash()를 사용해보십시오. 그렇지 않으면 htmlspecialchars() 함수없이 이것을 시도한 적이 있습니까?

+0

오오 그렇습니다. (코드를 구현할 때 오류가 아니었다 고 말하는 이전 의견에 대해서는 유감스럽게 생각합니다.) 도움을 주셔서 감사합니다. D. 파일에 쓰여진 텍스트에서 슬래시가 제거되도록하려면 어떻게해야합니까? – user2946010

+0

파일에 무엇을 기록 했는가? 데이터베이스에 쓰여진 것 같은가요? –

+0

시작하는 두 번째 코드 주석에서 내 코드를 보면 : "// 포함 파일을 엽니 다"라는 텍스트 상자의 내용이 "index_left.php"라는 파일에 기록됩니다. index_left.php는 텍스트 영역을 채우는 데에도 사용됩니다. 필자가 언급 한 3 줄의 코드는 이것을 파일에 적는다. $ _POST에 저장된 내용을 텍스트 파일에 게시합니다. 감사. – user2946010

관련 문제