【问题标题】:Input-Scan Barcode PHP输入扫描条码 PHP
【发布时间】:2020-01-27 13:11:34
【问题描述】:

我有这个表格

form_insert.php

<form action="stock_insert.php" method="get">
        <input type="text" name="barcode" placeholder="Εισαγωγή BarCode"> <br>
        <input type="text" name="name" placeholder="Όνομα"> <br>
        <input type="text" name="size" placeholder="Μέγεθος"> <br>
        <input type="text" name="style" placeholder="Στυλ"> <br>
        <input type="text" name="color" placeholder="Χρώμα">  <br>
        <input type="text" name="mark" placeholder="Μάρκα"> <br>
        <input type="text" name="value" placeholder="Ποσότητα">  <br>
        <input type="text" name="price" placeholder="Τιμή"> <br>
        <select name="kind">
            <option >Σταθερά</option>
            <option >Φθινόπωρο</option>
            <option >Χειμώνας</option>
            <option >Άνοιξη</option>
            <option >Καλοκαίρι</option>
        </select> <br>
        <input type="submit" name="Αποθήκευση"  placeholder="Αποθήκευση">
</form>

我想在我的数据库中插入输入。

stock_insert.php

<?php
include_once  'database_connection.php';

$barcode = $_GET['barcode'];
$name = $_GET['name'];
$size = $_GET['size'];
$style = $_GET['style'];
$color = $_GET['color'];
$mark = $_GET['mark'];
$kind = $_GET['kind'];
$value = $_GET['value'];
$price =$_GET['price'];

$sql = "INSERT INTO `stock`(`barcode`, `name`, `size`,  `style`, `color`, `mark`, `kind`, `value` , price) VALUES ('$barcode','$name','$size','$style','$color','$mark' ,'$kind','$value', $price);";

mysqli_query($conn, $sql);

header('Location: form_insert.php?signup=success');

但每次我扫描我的条形码进入输入时,它都会自动刷新并消失

我应该怎么做才能避免它?

【问题讨论】:

  • 每次扫描条形码后,它都会自动进入。你形成提交。我认为是这样,请确认?
  • 不要让表单提交,而是使用AJAX捕获字段内容并在后台将它们发送到服务器? (那么您可能希望在最后删除位置标头,并将其替换为对这种场景构成更明智的响应的内容。)
  • 也请阅读 SQL 注入 - 你现在很开放 :)
  • 警告:您的代码容易受到 SQL 注入攻击。您应该使用参数化查询和准备好的语句来帮助防止攻击者通过使用恶意输入值来破坏您的数据库。 bobby-tables.com 给出了风险解释,以及如何使用 PHP / mysqli 安全地编写查询的一些示例。 切勿将未经处理的数据直接插入您的 SQL。按照您现在编写代码的方式,有人可以轻松窃取、错误更改甚至删除您的数据。
  • “每次,我将条形码扫描到输入中,它都会自动刷新”...您的意思是立即,还是在您按下提交后?听起来可能是什么原因导致您在执行扫描操作后自动提交表单?你的页面中有 JavaScript 吗?请说明具体情况。

标签: php get barcode-scanner


【解决方案1】:

感谢 cmets 伙计们。这是解决方案。

AJAX 代码

<script>
        $(document).ready(function(){

            $("#submit").click(function(){
                var barcode =  $("#barcode").val();
                var name = $("#name").val();
                var size = $("#size").val();
                var style  = $("#style").val();
                var color = $("#color").val();
                var mark = $("#mark").val();
                var value  = $("#value").val();
                var price = $("#price").val();
                var kind = $("#kind").val();
                $.post("stock_insert.php", 
                {
                    barcode: barcode ,
                    name: name ,
                    size: size ,
                    style: style ,
                    color: color ,
                    mark: mark ,
                    value: value ,
                    price: price ,
                    kind: kind 
                },function(data,status){
                    alert(status);

                });


           });
        });
    </script>

输入

<input type="text" id="barcode" name="barcode" placeholder="Εισαγωγή BarCode"> <br>
        <input type="text" id="name" name="name" placeholder="Όνομα"> <br>
        <input type="text" id="size" name="size" placeholder="Μέγεθος"> <br>
        <input type="text" id="style" name="style" placeholder="Στυλ"> <br>
        <input type="text" id="color" name="color" placeholder="Χρώμα">  <br>
        <input type="text" id="mark" name="mark" placeholder="Μάρκα"> <br>
        <input type="text" id="value" name="value" placeholder="Ποσότητα">  <br>
        <input type="text" id="price" name="price" placeholder="Τιμή"> <br>
        <select id="kind" name="kind">
            <option >Σταθερά</option>
            <option >Φθινόπωρο</option>
            <option >Χειμώνας</option>
            <option >Άνοιξη</option>
            <option >Καλοκαίρι</option>
        </select> <br>
        <input type="submit" id="submit" name="Αποθήκευση"  placeholder="Αποθήκευση">

【讨论】:

  • api.jquery.com/serialize 将在这里为您节省很多代码行...(另外,处理表单的“提交”事件而不是处理表单的“单击”事件是个好主意按钮)
猜你喜欢
  • 1970-01-01
  • 2021-07-10
  • 1970-01-01
  • 1970-01-01
  • 2011-11-12
  • 1970-01-01
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多