2012-01-06 5 views
-2

나는 드롭 다운에서 카테고리를 선택할 수 있기를 원합니다. 그리고 카테고리에 따라 카테고리는 그것과 같은 SQL 테이블에 카테고리를 추가 할 것입니다.

<?php 

$article = $_POST['article']; 

$con = mysql_connect("******","******","*******"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("jstaltso_staltsoft", $con); 

$sql="INSERT INTO $article (headline, content) 
VALUES ('$_POST[headline]', '$_POST[content]')"; 

if (!mysql_query($sql,$con)) 
    { 
    die('Error: ' . mysql_error()); 
    } 
echo "Content Added!"; 
echo "<br/>"; 
echo "<a href='articles.php'><- Back</a>"; 

mysql_close($con) 

?> 

$ articles 변수를 테이블 이름이있는 위치에두고 싶습니다.

$sql="INSERT INTO $article (headline, content) 
VALUES ('$_POST[headline]', '$_POST[content]')"; 

드롭 다운에서 내가 선택한 것은 $ articles에 있습니다.

+4

사랑스러운 SQL해야한다 당신이 가지고있는 주입 구멍. –

+0

그래, 변수는 $ _POST [ 'something']처럼 쿼리 문자열에 앉아 있습니다 (POST 배열의 인덱스에 대해 따옴표 나 큰 따옴표를 사용하는 것을 잊어 버렸음에 유의하십시오) ...하지만 질문은 무엇입니까? 또한 $ _POST를 사용하면 안전하지 못하다는 것을 알 수 있습니다. – Alfabravo

+2

그리고 귀하의 질문은 어디에 있습니까? – rjv

답변

3

시도 :

"INSERT INTO `{$article}` ...." 

는 귀하의 의견을 소독하는 것을 잊지 마세요! 당신은 내가이 대답은 바로 지금 당신을 위해 너무 도움이되지 않습니다 알고 있지만 $sql="INSERT INTO $article (headline, content) VALUES ('" . $_POST['headline'] " . ', '" . $_POST['content'] . "')";

+0

오류 : 잘못된 테이블 이름 ' – NizeGuy

+1

잘못된 테이블 이름 뒤에 ''이 오는 오류가 발생하면 변수 $ article이 값으로 설정되지 않은 것 같습니다. –

+0

감사합니다. 지금 작동합니다 : D – NizeGuy

1

(스타터 인 mysql_real_escape_string) 너무 많이가 그냥 마부 그 코드와 그 접근법에 잘못된 몇 가지 요령이 있습니다 :

  • PHP의 MySQL 기능 대신 PDO를 사용하십시오. 처음에는, 특히 객체 지향 프로그래밍에 대한 경험이 없지만, 그럴만 한 가치가 있습니다.
  • 위생 처리 $article 값!
  • 문자열에 변수를 사용하는 가장 좋은 방법 if($article == 'foo' || $article == 'bar') {...}은 다음과 같습니다 "This is a ".$adjective." string"
+0

왜? 그럴 필요 없어! – rjv

+0

물론, 그 따옴표에있는 Array-Variables에는 액세스 할 수 없습니다. – Dion

+0

당신이 액세스 할 수 있지만 그 유형이 아닌 $ 변수 같은 간단한 변수 .. – Dion

0

에 마지막으로 코드를 변경, 변수의 유형을 사용할 수 없습니다

+0

' PHP와 SQL에 원격으로 숙련 된 기술이 아니기 때문에 시간이 지나면 실험할만한 간단한 무언가가 있다고 생각합니다. 하지만 PDO를 살펴 보겠습니다. – NizeGuy

0

"This is a {$adjective} string" 당신은 세미콜론 놓친 : P를

mysql_close($con)

mysql_close($con); 
+0

어디서 정확히 ?? – NizeGuy

+0

코드 마지막 줄 – rjv

+0

알았어, 고마워. – NizeGuy

관련 문제