登录表单,选择名称选项值

时间:2018-02-05 16:20:10

标签: javascript php jquery html database

我目前设置了三个表。我想当有人登录时,他们会在选择下拉列表中选择其中一个选项,然后进入该单独的数据库。

E.g。最喜欢的颜色

<select name="color">
        <option value="Red">Red</option>
        <option value="Blue">Blue</option>
        <option value="White">White</option>
        </select> 

挑选所有红色,进入红色数据库,全部蓝色进入蓝色数据库等等。

由于

1 个答案:

答案 0 :(得分:0)

您要做的是将数据按特定值分开。这是很正常的事情,但是你试图把它弄错。拥有变量表名几乎没有充分的理由 - 相反,您应该使用列来分隔这些数据。

正确的解决方案:

处理这种情况的更好方法是创建一个表格(E.G colors,其中color列可以指定已选择的变量。

E.G:

$query = "INSERT INTO colors (color) VALUES (?)";

如果问号是有问题的变量(在准备好的声明中)。

这样,所有变量都在一个表中,但仍然以用户选择的颜色分隔,并且可以这样排序。

回答你的问题:

如果你想忽略我上面的多重警告你会以错误的方式解决这个问题(毕竟你是你自己的人,可以为自己做决定),这就是你如何按照你的要求做到这一点(但同样,我真的非常 NOT 推荐这种方法。)

如果这样做,您应该检查以确保所选的选项与可能的选择列表匹配:

$possible = ["Red", "Blue", "White"];

if(in_array($_POST['color'], $possible)) {
    $query = "INSERT INTO {$_POST['color']} ...";
}

这样做会通过串联到字符串中的变量来阻止SQL注入。

如果您只是插入users变量而不先检查它,则用户可以更改客户端下拉列表的实际值,这可能会使您的应用程序面临风险。

注意我不建议这样做 - 维护起来比较困难,这不是做这种事情的正确方法。