簡體   English   中英

如何使用PHP將URL插入MySQL數據庫?

[英]How to insert a URL into MySQL database using PHP?

我有一個表單,可以將信息提交到數據庫中。 表單包含3個輸入 - 名稱,描述和URL。 這三個工作正常並將數據提交到數據庫中,但只有輸入的文本不包含http://這不是我想要的,URL輸入才有效。 我需要它包括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()。

$url= filter_var($_POST['url'], FILTER_SANITIZE_URL);

為您的URL使用FILTER_SANITIZE_URL-Constant

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM