2013-03-18 5 views
-1

mysql 데이터베이스에서 행을 업데이트하는 데 문제가 있습니다. 뉴스 기사의 데이터가 포함 된 텍스트 영역을 만들었습니다. 데이터를 편집하고 업데이트하려고하면 아무 일도 일어나지 않습니다. mysql 확장자가 감가 상각되었다는 것을 알고 있습니다.MySQL 업데이트가 업데이트되지 않습니다.

<?php 
include 'db.php'; 

$data = mysql_query("SELECT news_content FROM news WHERE id= 1") ; 
$info = mysql_fetch_array($data); 
$news= $info['news_content']; 
?> 
<h3>EDIT NEWS ARTICLE</h3> 

<form id="EditNews" name="EditNews" method="POST"action="edit.php">    
<textarea rows="40" cols="90" name="editnewstext"><?php echo $news?></textarea> 
<input type="submit" name="Edit_News" id="Edit_News"> 

<?php 
if(isset($_POST['Edit_news'])) { 
    $contents= $_POST['editnewstext']; 
    $sqlupdate = "UPDATE news SET news_content ='$contents' WHERE id=1"; 
    mysql_query($sqlupdate) or die(mysql_error()); 
}  
+2

어쨌든 *** 사용을 중지해야하기 때문에 댓글을 달았습니다. – Kermit

+4

mysqli 또는 PDO에서 sql 쿼리를 조사하십시오. 현재 쿼리는 SQL injection에 완전히 열려 있습니다. 텍스트 상자의 텍스트가 쿼리 내에서 직접 사용되기 때문입니다. –

+3

''는 오타입니다? – hjpotter92

답변

4
<input type="submit" name="Edit_News" id="Edit_News"> 
          ^^^^^^^^^^ 

if(isset($_POST['Edit_news'])) { 
       ^^^^^^^^^ 

사례가 일치하지 않습니다. PHP 배열 키는 대문자입니다.

즉, 귀하의 코드는 SQL injection attacks에 대해 활짝 열려 있습니다. 서버 pwn3d를 즐기십시오.

+1

''도'value' 속성이 필요하지 않습니까? –

+0

@MarcB 고마워요. 내가 그걸 어떻게 놓쳤는 지 알지 못합니다. – Dynamiite

+1

@rocket : 아니오. name 매개 변수 만 있으면됩니다. 예 : FF는 "Submit Query"의 제출 값을 자동으로 기입합니다. –

관련 문제