php - 如何使用 PHP 将 URL 插入 MySQL 数据库?

标签 php mysql

我有一个表单可以将信息提交到数据库中。该表单包括 3 个输入 - 名称、描述和 URL。这三个都工作正常并将数据提交到数据库中,但 URL 输入仅在输入的文本不包含 http:// 时有效,这不是我想要的。我需要它包含 http://

目前,如果我提交没有 http:// 的表单,它会正常通过,但如果它确实包含 http://,我会得到一个 406可接受的错误。

我读过一些关于 mysqli_real_escape_string 的文章,但我没有运气让它工作。目前我有以下内容:

$dbh = new PDO("mysql:host=$mysql_hostname;dbname=$mysql_dbname", $mysql_username, $mysql_password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$code_name = filter_var($_POST['code_name'], FILTER_SANITIZE_STRING);
$code_desc = filter_var($_POST['code_desc'], FILTER_SANITIZE_STRING);
$code_dest = filter_var($_POST['code_dest'], FILTER_SANITIZE_STRING);

$stmt = $dbh->prepare("INSERT INTO qr_codes (code_name, code_desc, code_dest ) VALUES (:code_name, :code_desc, :code_dest )");

$stmt->bindParam(':code_name', $code_name, PDO::PARAM_STR);
$stmt->bindParam(':code_desc', $code_desc, PDO::PARAM_STR, 40);
$stmt->bindParam(':code_dest', $code_dest, PDO::PARAM_STR, 40);

$stmt->execute();

这是表格:

<form id="newQR" method="post" action="create-qr-code.php" onSubmit="return validateForm();">
    <ul class="new-qr-form">
        <li><label>Name</label><br><input id="code_name" name="code_name" type="text" class="form-control" ></li>
        <li><label>Description</label><br><input id="code_desc" name="code_desc" type="text" class="form-control" ></li>
        <li><label>Destination</label><br><input id="code_dest" name="code_dest" type="text" class="form-control" ></li>
        <li class="img-src-preview"><label>Preview Source</label><br><input value="test" id="code_img_src" name="code_img_src" type="text" class="form-control" ></li>
    </ul>
</form>

关于为什么它不允许 URL 的任何想法?

最佳答案

一个简单的解决方法是只删除 validateForm() 中的 http://onSubmit。或者您可以以某种方式对其进行编码,例如使用 encodeURIComponent()。

关于php - 如何使用 PHP 将 URL 插入 MySQL 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27539195/

相关文章:

sql - 使用大量不同的需要知道的信息来建模产品并将它们链接到订单项?

mysql - 哪个表模式更好?

javascript - Ajax 调用后端 PHP 脚本不工作

c# - 如何处理异步运行方法中的异常?

php - RabbitMq 连接由对等方重置

javascript - 使用 Javascript 将文本字段添加到 HTML 表单时出错

mysql - 拉维尔 |唯一验证 where 子句

mysql - 显示查询以及来自文件的结果

php - 如何像文档中那样为 Symfony 2.7 选择实现 ENUM 类?

php - Ubuntu PHP APACHE2 全新安装问题