gpt4 book ai didi

php - 为什么 php 脚本在表中添加空白字段?

转载 作者:行者123 更新时间:2023-11-30 22:47:00 25 4
gpt4 key购买 nike

我有一个通过 php 连接到我的数据库的表单,当您提交表单时,它会在表中添加一个新条目,但 phpmyadmin 中的所有字段都是空白的。每次都会发生这种情况。此表格只是一个测试表格。

<form action="demo.php" method="post" />
<p>Name: <input type="text" name="name" /></p>
<p>Comment: <input type="text" name="comment" /></p>
<input type="submit" value="submit" />
</form>

这是php

<?php

define('DB_NAME', 'name');
define('DB_USER', 'user');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

if (!$link) {
die('Could not connect: ' . mysql_error());
}

$db_selected = mysql_select_db(DB_NAME, $link);

if (!$db_selected) {
die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
}

$name = $_POST['name'];
$comment = $_POST['comment'];

$sql = "INSERT INTO test (name, comment) VALUES ('$name', '$comment')";

if (!mysql_query($sql)) {
die('Error: ' . mysql_error());
}

mysql_close();
?>

我知道这不安全,但我已经很久没有用过 php 了。这可能是问题所在,它不是 SQLi 吗?如果是这样,有人可以帮我吗?

最佳答案

如果表单和php代码写在demo.php文件中你应该检查 $_POST

否则加载 blog.php 文件后将空数据发送到 mysql

真实代码:

if(isset($_POST["name"]) && $_POST["name"]!=""){
define('DB_NAME', 'gei_demo');
define('DB_USER', 'gei_ch');
define('DB_PASSWORD', 'magnolias3');
define('DB_HOST', 'localhost');

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

if (!$link) {
die('Could not connect: ' . mysql_error());
}

$db_selected = mysql_select_db(DB_NAME, $link);

if (!$db_selected) {
die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
}

$name = $_POST['name'];
$comment = $_POST['comment'];

$sql = "INSERT INTO test (name, comment) VALUES ('$name', '$comment')";

if (!mysql_query($sql)) {
die('Error: ' . mysql_error());
}

mysql_close();
}

关于php - 为什么 php 脚本在表中添加空白字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29313864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com