Моя проблема: я не знаю, как отправить информацию формы в базу данныхКак отправить содержимое формы в базу данных с помощью PHP
Что у меня есть:
У меня есть HTML-файл, содержимое 3 кнопки и аа ДИВ, которые будут меняться в зависимости от кнопки щелкнул:
<div class="container">
<h1> Producto</h1>
<div class ="buttons">
<button type="button" onclick="loadAddProduct()">Nuevo producto</button>
<button type="button">Borrar producto</button>
<button type="button">Actualizar producto</button>
</div>
<div class="main_container" id="main_container">
</div>
</div>
DIV с ID = main_container нагрузки с функцией АЯКС в зависимости от кнопки. Первая кнопка при нажатии будет загружать эту форму:
<div class="container">
<form name="addProductForm" id="addProductForm" action="" onsubmit="" method="post">
<label for="product_name">Nombre :</label> <input id="product_name" placeholder="Nombre">
<br> <br>
<label for="product_desc_short">Descripción corta:</label><br>
<textarea id="product_desc_short" cols=40 rows=5 placeholder="Descripción corta del prooducto"></textarea>
<br> <br>
<label for="product_desc_long">Descripción larga:</label><br>
<textarea id="product_desc_long" cols=50 rows=7 placeholder="Descripción larga del prooducto"/></textarea>
<br><br>
<label for="product_price">Precio :</label> <input id="product_price" placeholder="Precio"/>
<br> <br>
<label for="product_stock">Stock :</label> <input id="product_stock" placeholder="Stock">
<br><br>
<label for="product_type">Categoria :</label>
<select id="product_type" name="prod_type">
<option value="" selected="selected"> Selecciona</option>
<option value="1"> Gorras</option>
<option value="2"> Camisetas</option>
<option value="3"> Tazas</option>
<option value="4"> Posters</option>
<option value="5"> Sudaderas</option>
</select>
<br>
</form>
<br>
<br>
<button type="submit" form="addProductForm" value="Submit">Enviar</button>
</div>
И, наконец, у меня есть файл с набором функций PHP, взаимодействующего с базой данных:
PHP файла:
.....
function addProduct($desc_short, $desc_long, $stock, $price, $name, $image_url, $type)
{
$conn = connect();
$sql = "INSERT INTO `products`(`desc_short`, `desc_long`, `stock`, `price`, `name`, `image_url`, `type`)
VALUES ('" . $desc_short . "','" . $desc_long . "','" . $stock . "','" . $price . "','" . $name . "','" . $image_url . "','" . $type . "')";
if ($conn->query($sql) === true) {
$res = array(true, $conn->insert_id);
$conn->close();
return $res;
}
$conn->close();
return array(false, -1);
}
.....
Мое намерение заключается в том, что пользователь нажимает кнопку отправки, а затем запускает функцию "addProduct(.....)"
для загрузки информации в базу данных, но я не хочу перейти на другую страницу, просто обновите <div id="main_container">
, с небольшим сообщением " product uploaded--> ID :XXX".
Но я действительно не знаю, как смешать все это.
Надеюсь, вы избегаете ввода пользователя, чтобы предотвратить инъекцию SQL (и экранирование выхода для предотвращения хранения XSS). Вы также можете подумать о том, чтобы использовать подготовленные операторы, чтобы оставаться в безопасности (в случае, если вы когда-нибудь забудете использовать эту функцию). – WillS
Привет @WillS SQLinjection еще не пожертвован, но если я хочу пройти мой тест, я должен это сделать. Сначала я хотел убедиться, что эта часть работает. Следующий шаг, «безопасность». Но вы даете мне небольшой намек на то, что я, вероятно, забыл -> хранил XSS. Благодаря! Я посмотрю на это. Спасибо за все советы! – Shudy