2013-07-21 1 views
0

양식에 텍스트 영역이 있습니다. 이 양식은 제출시 일부 정보를 데이터베이스에 삽입합니다. "newsText"는 긴 텍스트이지만 짧은 문자열 만 삽입 할 수 있습니다. 나는 정확한 양의 문자로이 질문을 갱신 할 것이다.TextArea로 SQL 업데이트 - 짧은 문자열로 업데이트 만

형태 :

<form id="newsForm" action="<?php echo $uploadHandler ?>" enctype="multipart/form-data" method="post"> 
    <div class="managementNewsTitle"> 
     Title<br /> 
     <input id="inputNewsTitle" name="inputNewsTitle" type="text"></input> 
    </div> 

    <div class="managementNewsTitle"> 
     Image<br /> 
     <input id="inputNewsFile" type="file" name="file" onchange="document.getElementById('inputNewsFilename').value = value;"><br /> 
     Name<br /> 
     <input id="inputNewsFilename" type="text"></input> 
    </div> 

    <div class="managementNewsTitle"> 
     Text<br /> 
     <textarea id="inputNewsText" name="inputNewsText"></textarea> 
    </div> 

    <input type="hidden" name="givenFileName" id="givenFileName" value=""> 
    <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_file_size; ?>"> 
    <input type="hidden" name="newsSubmitValue" id="submitValue" value="no"> 
    <input type="button" id="newsSubmitButton" onclick="newsSubmit()" name="submitButton" value="Save"></input> 

</form> 

INSERT :

if($_POST['newsSubmitValue'] === "yes") { 
    $newsTitle = $_POST['inputNewsTitle']; 
    $newsText = $_POST['inputNewsText']; 
    $newsImageURL = $_POST['givenFileName']; 


    mysql_query("INSERT INTO cs_news VALUES (DEFAULT, CURRENT_TIMESTAMP, '".$newsTitle."', '".$newsText."', 'Images/".$newsImageURL."')"); 
} 
+0

최저 질문 제목에 '해결 된'단어를 넣지 마십시오. 나는 그것이 나쁜 행동으로 보인 것처럼 그것을 여기에서 편집했습니다. – nickhar

+0

답변으로 아직 답을 수락 할 수 없어서이 문제가 해결되었음을 보여주고 싶었습니다. 48 시간은 너무 많습니다. –

답변

0

문제가 해결되었다. 문자의 양이 아니라 문자의 유형입니다.

문자열에 따옴표를 사용했습니다. 그래서 내 SQL 문을 조기에 종료했다.

Woops. 당신은 내가 할 mysql_*를 사용하는

mysql_escape_string() 또한

if($_POST['newsSubmitValue'] === "yes") { 
    $newsTitle = mysql_escape_string($_POST['inputNewsTitle']); 
    $newsText = mysql_escape_string($_POST['inputNewsText']); 
    $newsImageURL = mysql_escape_string($_POST['givenFileName']); 


    mysql_query("INSERT INTO cs_news VALUES (DEFAULT, CURRENT_TIMESTAMP, '".$newsTitle."', '".$newsText."', 'Images/".$newsImageURL."')"); 
} 

:이 PHP 함수를 사용하여 쿼리에 입력을 탈출 할 필요가

:

+0

이 답변을 수락 된 것으로 표시하려고합니다. –

+1

당신은 정말로 당신의 입력을 벗어날 필요가 있습니다 – Sir

+0

@Amal Murali, 아마 그랬 겠지만, 지금부터 8 시간 후에 받아 들일 수 있습니다. 자신의 대답을 받아 들일 수 있으려면 2 일이 걸립니다. –

0

내가 언급해야 할 몇 가지 Theres는 권장하지 않습니다. mysqli_* 또는 아마도 pdo을 사용해야합니다. pdo의 이점은 문자열을 자동으로 이스케이프하여 걱정하지 않아도된다는 것입니다. 이것은 차례 차례로 무언가를 도주하는 것을 잊기의 실수없이 일을 더 안전하게한다. (인적 오류)

당신이에서 선택할 수 있습니다 Heres는이 : 내가 변경이 여기에 읽을 수 있습니다 제안

MYSQLi_*

PDO MYSQL

이유 :

MYSQL deprecated in 5.5.0