2013-08-30 5 views
0

Каков наилучший способ вставить форму PHP 5 в базу данных MySQL?Вставка имени в базу данных?

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

Есть ли у меня все эти функции?

$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(); 

Потому что, когда я делаю это, сценарий только вводит идентификатор, поле имени остается пустым ..

EDIT: Как использовать PDO или MySQLi в PHP 5 (по последним стандартам)?

+0

Во-первых, не используйте mysql_ *, поскольку он устарел на PHP 5.5. Вы просили наилучшим образом использовать PDO или MySQLi с подготовленными операторами. – Prix

ответ

2

Вам нужно указать свой имя, чтобы иметь атрибут name = "name", т.е.

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

Чтобы полностью ответить на ваш вопрос.

  • Библиотека mysql_ * устарела на последних PHP и НЕ ДОЛЖНА использоваться. Вместо этого используйте PDO или MySQLi. Благодаря Prix за это указание.
  • Вы хотите дезинформировать данные, которые пользователи дают. Этот вопрос задан раньше, и есть хороший ответ: What's the best method for sanitizing user input with PHP?
  • Причина, по которой ваш параметр _POST ничего не делал при вводе имени, был вызван тем, что было упомянуто выше.
+1

См. Также: [Разница между атрибутами id и name в HTML] (http://stackoverflow.com/q/1397592/2359271) – Air

+1

Ничего о mysqli или pdo? – Davit

+0

Отличный результат! Нужны ли операции stripslashes ($ name) и mysql_real_escape_string ($ name) в PHP 5? – atMaarten

0

Заполнитель-заполнитель позволяет в html 5 ставить значение по умолчанию в элемент формы. Это значение по умолчанию удаляется, когда элемент имеет фокус. Но в вашем случае вы забыли имя атрибута. Попробуйте следующее:

<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>​ 
Смежные вопросы