gpt4 book ai didi

php - 在数据库 PHP 中存储用户提交的撇号

转载 作者:太空宇宙 更新时间:2023-11-03 10:55:53 27 4
gpt4 key购买 nike

这个脚本允许用户在数据库中存储一个单词:

submit.php 脚本:

<html>
<body>

<form action="welcome.php" method="post">
Sentance: <input type="text" name="name"><br>
<input type="submit">
</form>

</body>
</html>

welcome.php 脚本:

<html>
<body>
<?php
echo $_POST["word"];

mysql_connect("xxxx","xxxx","xxxx");
mysql_select_db("xxxx");
$word1 = $_POST['word'];
mysql_query("INSERT INTO words VALUES ('$word1');");
?>
<br>

</body>
</html>

问题是如果用户提交了一个包含撇号的单词,它不会存储在数据库中。

例如单词:

hello'world

没有被存储,因为它包含一个撇号..

我该如何解决这个问题?

最佳答案

您的代码对 sql 注入(inject)很开放。首先,我强烈建议您停止使用 mysql_ 系列函数,它们已被弃用。如果必须,则使用 make 来转义用户输入。但是我强烈建议您使用 PDO:

$dbh = new PDO('mysql:host=localhost,port=3306,username=user,password=pass', 'user', 'pass');
$stmt = $dbh->prepare("INSERT INTO words VALUES (:word)");
$stmt->bindParam(':word', $word);
$word = $_POST['word'];
$stmt->execute();

关于php - 在数据库 PHP 中存储用户提交的撇号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20813769/

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