2014-02-22 2 views
1

다시. 저는 PHP에 정말 익숙하지 만 연습하기가 정말로 힘들었습니다. 그래서 용어는 지금은별로 없습니다.PHP 삽입 표 문제

현재 내 문제는 내 CMS가 MySQL 테이블에 데이터를 제출할 수없는 것입니다.

<?php 
include('includes/functions.php'); 
if(isset($_POST['submit'])) { 
      if(isset($_POST['entTitle'])) { 
       newEntry($_POST['entTitle'],$_POST['entDesc'],$_POST['entCont']); 
       header("Location: entries.php"); 
     } else { 
      echo "Please fill out all fields!"; 
      include('newEntry.php'); 
    } 
} 
?> 

나는 믿을 수 없을만큼 해요 : 포스트를 만들기 위해 파일 사이에 여기

<form action="doNewEntry.php" method="post"> 
    <textarea name="entTitle" id="entTitle">Entry Title</textarea><br> 
    <textarea name="entDesc" id="entDesc">Input Description Here</textarea><br> 
    <textarea name="entCont" id="entCont">Type and format content here! What you see, is what you get.</textarea><br> 
    <script> 
    CKEDITOR.replace('entCont'); 
    </script> 
    <table><td colspan="2"><input type="submit" name="submit" /></td></table> 
</form> 

된다 : 여기

function newEntry() { 
    $query = mysql_query("INSERT INTO entries VALUES(null,'name','description','content')") or die(mysql_error()); 
} 

가 제출 내용에 대한 내 양식입니다 : 여기 제 기능입니다 이것에 대해 새로운 점은 의심 할 여지없이 아주 간단한 해결책입니다. 어쩌면 그냥 뭔가 놓친지만 정말 그것을 알아낼 수 없습니다. 문제를 추가하십시오. :(

+0

newEntry 호출을 수행하지만 newEntry 함수에서 매개 변수를 얻지 못했습니다! –

답변

1
function newEntry() 
You have passed the parameters to this function but dint received in definition. 

function newEntry($title, $description ,$content){ 
     //your code here 
} 

Need to reform this query 

$query = mysql_query("INSERT INTO entries VALUES(null,'name','description','content')") or die(mysql_error()); 
+0

이 값은 정적이므로 함수에 전달 된 인수 (예 : $ title, $ desc, $ content)를 사용해야합니다. – Dexa

0

당신은 그렇지 않으면 그것은 또한 당신의 변수가 쿼리에 $에 의해 앞에 추가해야 작동하므로 다음과 같은 기능을 변경하지 않으므로 함수에 인수를 추가 함수에 변수를 전달해야

function newEntry($name, $description, $content) 
{ 
    $query = mysql_query("INSERT INTO entries VALUES(null,'$name','$description','$content')") or die(mysql_error()); 
} 

측면 참고로 나는 코드가이 higly mysql injections에 취약 것을 말할 것입니다. 차라리 PDO 또는 mysqli 중 하나로 전환 한 위험을 방지하기 위해 준비된 문에서도를 사용합니다. 당신이 parame를 통과 한

+0

이 기능은 관리자 패널에 있으므로 암호가없는 사람에게는 위험하지 않습니다. 나는 옳지 않다고 생각합니까? 이 시스템이 유용하다면 나중에 PDO에 대해 배울 것이라고 생각했습니다. 또한 다음과 같은 오류가 발생합니다. 열 개수가 행 1의 값 개수와 일치하지 않습니다. –

+0

@jack i wouls는 쿼리의 모든 줄을 표시하므로 'INSERT INTO table (column1, column2, etc ...) VALUES ('value1', 'value2'등 ...)' – Fabio