好的,伙计们。我是php和其他服务器端代码的新手。
我能够成功连接到我的服务器和数据库。我能够使用插入数据代码插入带有值的数据。但是,当我在代码中输入值时,这些是发送到表的值。如何使用HTML表单将输入到文本区域的自定义数据显示在我的数据库表中?
例如,
当我使用VALUE(' jon',' doe')时,它会将这些值发送到数据库而不是我输入文本区域的文本。如何解决这个问题,在填写网络表单时输入我的实际名称?
基本上,我问我将如何使用Web表单将数据操作到数据库中。我很困惑
答案 0 :(得分:0)
我们鼓励您从第一天开始使用 PDO (或至少是mysqli)准备好的语句。这样,您可以相对安全地将数据插入到SQL语句中。请阅读official manual。请注意,默认情况下,PDO将模拟预准备语句。这可能会导致安全漏洞。因此,您应该请求切换模拟的预准备语句。
$options = [PDO::ATTR_EMULATE_PREPARES => false];
$pdoConnection = new PDO($dsn, $user, $password, $options);
然后,您可以创建准备好的SQL语句,如:
SELECT `id`, `value` FROM `myTable` WHERE `value` = ?;
只要驱动程序支持真正准备好的语句,“?”不会直接替换,数据将在声明后单独发送。这可以避免通过编码攻击进行SQL注入。
如果您有具体问题,请阅读文档,尝试并回来。
答案 1 :(得分:0)
您可以在一个页面上构建一个表单,将表单发送到另一个页面。例如:
的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注入)。
请告诉我这是否适合您!
答案 2 :(得分:0)
在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'];
}