在数据库中插入值和条形码扫描仪上的表单

Insert value in DB with form on a barcode scanner

本文关键字:扫描仪 表单 条形码 数据库 插入      更新时间:2023-09-26

我有一台Datalogic条形码扫描仪Falcon 4410。我在上面有一个html表单,可以将产品添加到数据库中。这是我的简单表格:

<form id="formprod" class="form-horizontal" method="post" action="url">
    <fieldset>
    <!-- Text input-->
    <div class="form-group">
      <label class="col-md-4 control-label" for="textinput">Référence</label>  
      <div class="col-md-4">
      <input id="textinput" name="reference" type="text" placeholder="placeholder" class="form-control input-md">
      </div>
    </div>
    <!-- Button (Double) -->
    <div class="form-group">
      <div class="col-md-8">
        <input type="submit" id="button1id" name="submit" value="OK" class="btn btn-success"/>
        <input type="reset" id="button2id" name="button2id" value="RESET" class="btn btn-danger"/>
      </div>
    </div>
    </fieldset>
</form>

因此,在条形码扫描仪中,如果我打开我的html页面,在输入中使用虚拟键盘进行书写,并使用提交按钮提交:这很有效。但如果我扫描条形码,表单会自动提交,记录会被保存,但数据库中的参考字段是空的。我的PHP代码:

<?php
if(isset($_POST["reference"])){
    $hostname='****';
    $username='****';
    $password='*****';
    try {
        $dbh = new PDO("mysql:host=$hostname;dbname=name",$username,$password);
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $sql = "INSERT INTO product (reference)
        VALUES ('".$_POST["reference"]."')";
        if ($dbh->query($sql)) {
        echo 'Done!';
        }
        else{
        echo 'Error!';
        }
        $dbh = null;
    }
    catch(PDOException $e)
    {
        echo $e->getMessage();
    }
}

你有主意吗?谢谢

PS:例如,它并没有针对SQL注入进行优化,它将在记录工作时进行

编辑:重生后的工作

我在库中使用的大多数条形码扫描仪都会在扫描数据后发送回车。通常有一种方法可以声明您不希望在扫描仪的设置中使用CR。查看制造商的网站。