使用html表单将数据插入数据库


Inserting data into database using html forms

好的,伙计们。我是php和其他服务器端代码的新手。

我能够成功地连接到我的服务器和数据库。我可以使用插入数据代码插入具有值的数据。但是,当我在代码中输入这些值时,这些值就会被发送到表中。如何使用HTML表单使用输入到文本区域的自定义数据显示在数据库表中?

例如,

当我使用VALUE('jon','doe')时,它会将这些值发送到数据库中,而不是我在文本区域中输入的文本。我该如何解决这个问题,比如说,在填写网络表格时输入我的实际姓名?

基本上,我在问我将如何使用web表单将数据处理到数据库中。我很困惑

我们鼓励您从第一天起使用PDO(或至少使用mysqli)准备的语句。通过这种方式,您可以相对安全地将数据插入SQL语句中。请阅读官方手册。请注意,默认情况下,PDO将模拟准备好的语句。这可能会导致安全漏洞。因此,您应该请求切换模拟的准备语句。

$options       = [PDO::ATTR_EMULATE_PREPARES => false];
$pdoConnection = new PDO($dsn, $user, $password, $options);

然后,您可以创建准备好的SQL语句,如:

SELECT `id`, `value` FROM `myTable` WHERE `value` = ?;

只要驱动程序支持真实的准备语句,就不会直接替换"?",数据将在语句后单独发送。这避免了通过编码攻击进行SQL注入。

请阅读文档,尝试一下,如果你有具体的问题,请回来。

您可以在一个页面上构建一个表单,将输入发送到另一个页面。例如:

index.php:

<!DOCTYPE html>
<html>
  <head></head>
  <body>
    <form method="POST" action="action.php">
      <input type="text" name="message">
      <input type="submit" value="Submit">
    </form>
  </body>
</html>

然后,您的php/MySQL代码将存在于名为action.php的页面中,该页面将与index.php位于同一目录中。

action.php:

<?php
$message = $_POST['message'];
/*now you can use the $message variable in your MySQL code to insert
it into the database*/
?>

请记住使用准备好的语句,并在MySQL代码中绑定参数,以防止黑客攻击(如sql注入)。

如果这对你有用,请告诉我!

在html中创建表单时,可以定义以下输入:

<input type="text" name="my_input">

在提交表单后访问此特定输入的内容。根据表单使用$_GET['my_input']$_POST['my_input']检索表单输入中输入的值的方法使用。

试着用这个例子玩arround:

<form action="" method="get">
    <input type="text" name="field" value="<?php print $_GET['field']; ?>">
    <input type="submit" name="s" value="Go!">
</form>
<?php
if (isset($_GET['s'])) {
    print "value of the text field: ".$_GET['field'];
}