gpt4 book ai didi

PHP 和 MYSQL 将信息插入数据库,不起作用。

转载 作者:行者123 更新时间:2023-11-29 07:58:17 26 4
gpt4 key购买 nike

<?php
$sent = $_GET['sent'];

if($sent == "yes") {

require('database_connection.php');
$name = $_GET['name'];
$desc = $_GET['desc'];
$email = $_SESSION['Memberid'];

date_default_timezone_set('Europe/London');
$date = date("d.m.y");



$sql = 'INSERT INTO `'.$email.'` (`id`, `Note`, `Share Url`, `Name`, `Description`, `Date`, `Type`) VALUES (\'\', \'Enter Note Here.\', \'\', \''.$name.'\', \''.$desc.'\', \''.$date.'\', \'Text\')';
$i = mysqli_query($dbc, $sql);

if($i) {
echo '<h2>Created note.</h2>';
header( 'Location: https://daccaa.com/edits' ) ;
} else {
echo '<h2>Failed to create a note for you.</h2>';
echo $name.'<br />';
echo $desc.'<br />';
echo $email.'<br />';
echo $date.'<br />';
echo $sql.'<br />';
echo $i.'<br />';
echo '<h1 style="visibility: hidden;">_</h1>';
echo '<a href="https://daccaa.com/contact" class="new">Let us Know.</a>';
}

} else {
echo '<div class="holder">
<h1>Lets create a new note:</h1>
<h3 style="visibility: hidden;">_</h3>
<form method="GET" action="#">
<input type="text" name="name" class="myBox" placeholder="Enter Name Here" />
<input type="text" name="desc" class="myBox" placeholder="Enter Description Here" /> <br />
<input type="hidden" value="yes" name="sent" />
<input type="submit" value="Generate" class="select" /><br />
<a href="https://daccaa.com/edits/" class="select">Go Back</a>
</form>
</div>
</div>';
}

?>

上面的代码来 self 的网站,代码背后的想法是它将在数据库中创建一个新行,其中包含执行时的信息。

这是失败时测试将回显的内容:

new_test_name
new_test_desc
49
02.07.14
INSERT INTO `49` (`id`, `Note`, `Share Url`, `Name`, `Description`, `Date`, `Type`) VALUES ('', 'Enter Note Here.', '', 'new_test_name', 'new_test_desc', '02.07.14', 'Text')

但我似乎仍然无法获取要输入的值,这种类似的方法在另一个页面上工作正常,我几乎可以消除它可能在数据库文件中的事实,因为它在同一目录中的另一个页面上工作正常.

MYSQL数据库的结构为:

id |注意|分享网址 |名称 |描述 |日期 |类型

请注意,我稍后会讨论这个问题,以添加更多方法来防止 SQL 注入(inject),我只是想先整理一下基本代码。

最佳答案

根据您的错误消息: key “PRIMARY”的重复条目“0”

我假设 id 是您的主键。确保您在此列上设置了自动增量,然后在查询中完全排除 id 字段。

现在您正在插入一个空白 ID。如果不严格执行,MySQL 会将整数字段的空值转换为 0。因此,您每次都尝试插入 ID 0,而不是创建新行。

您的查询的危险

您在查询 (GET) 中使用了未经过滤的用户输入。 GET、POST、REQUEST 和 COOKIE 变量应始终与准备好的查询一起使用。

现在我可以使用诸如 ?name="'; DELETE FROM 49 WHERE 1;" 之类的内容加载您的网址,并清除您的整个表格。研究 SQL 注入(inject)以及如何使用 MySQLi 进行准备好的查询。

关于PHP 和 MYSQL 将信息插入数据库,不起作用。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24540869/

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