2013-08-30 3 views
0

MySQL 데이터베이스에 PHP 5 양식을 삽입하는 가장 좋은 방법은 무엇입니까?데이터베이스에 이름을 삽입 하시겠습니까?

<form action="script.php" method="post"> 
<fieldset> 
    <input id="name" type="text" placeholder="name" /> 
    <input type="submit" value="Opslaan" />   
</fieldset> 
</form>​  

나는 이것들을 모두 사용합니까? 나는이 작업을 수행 할 때, 스크립트 만 ID를 입력하기 때문에, 이름 필드가 비어

$name= $_POST['name']; 
$name = stripslashes($name); 
$name = mysql_real_escape_string($name); 

mysql_connect($host,$username,$password); 
@mysql_select_db($database) or die("Unable to select database"); 
$query = "INSERT INTO names VALUES ('','$name')"; 
mysql_query($query); 
mysql_close(); 

..

편집

: (최신 표준) PHP 5에서 PDO 또는 mysqli를 사용하는 방법?

+0

PHP 5.5에서는 더 이상 사용되지 않으므로 mysql_ *을 사용하지 마십시오. 가장 좋은 방법을 묻는 질문에 PDO 또는 MySQLi를 사용하십시오. – Prix

답변

2

name 속성을 사용하려면 이름 입력이 필요합니다 (예 : ie).

<input type="text" id="name" name="name" placeholder="Enter your name" /> 

답변을 완전히 기재하려면.

  • mysql_ * 라이브러리는 최신 PHP에서 더 이상 사용되지 않아야하며 (SHOULD NOT) 사용해야합니다. 대신 PDO 또는 MySQLi를 사용하십시오. Prix가 그것을 지적 해 주신 덕분에.
  • 사용자가 제공 한 데이터를 삭제해야합니다. 이 질문은 전에 질문되었으며 좋은 대답은 여기에 있습니다 : What's the best method for sanitizing user input with PHP?
  • 귀하의 _POST 매개 변수가 귀하의 이름 입력에 아무 것도하지 않는 이유는 위에서 언급 한 사실 때문이었습니다.
+1

참고 사항 : [HTML의 ID와 이름 속성의 차이점] (0120-13752/2359271) – Air

+1

mysqli 또는 pdo에 관한 게 없나요? – Davit

+0

그게 잘 잘 됐어! PHP 5에서는 stripslashes ($ name)와 mysql_real_escape_string ($ name) 연산이 여전히 필요합니까? – atMaarten

0

자리 표시 자 attribut은 html5에서 양식의 요소에 기본값을 설정할 수있게합니다. 이 기본값은 요소에 포커스가있을 때 제거됩니다. 그러나 귀하의 경우 귀댁 이름을 잊어 버렸습니다. 이것을 시도하십시오 :

<form action="script.php" method="post"> 
<fieldset> 
    <input id="name" name="name" type="text" placeholder="Enter your name" /> 
    <input type="submit" value="Opslaan" />   
</fieldset> 
</form>​ 
관련 문제