小编Nic*_*tos的帖子

如何动态准备 SQL 查询(列名也是如此)避免 SQL 注入

我最近了解了 SQL 注入以及避免它的 PHP 建议,使用prepare()bind_param()。现在,我想动态地准备 SQL 查询,添加列名和值。

我以前是这样做name的,HTML 输入的字段与 MySQL 数据库列的名称相同。

    <input type="text" name="firstname" >
    <input type="text" name="lastname" >
Run Code Online (Sandbox Code Playgroud)

并且,使用 mysqli 动态创建 SQL 查询。

    // Extract values from POST
    $parameters = $_POST;
    // Organize the values in two strings
    foreach ($parameters as $id => $value) {
        $fields = $fields . "`" . $id . "`,";
        $values = $values . "'" . $value . "',"; 

        /*e.g.
            $fields = `firstname`,`lastname`
            $values = 'John','Wick'
        */
    }

    // …
Run Code Online (Sandbox Code Playgroud)

html php mysqli sql-injection bindparam

2
推荐指数
1
解决办法
938
查看次数

在 EasyAdmin 3.x 上使用验证组

我想在创建新用户时使用 EasyAdmin 3.x 的验证组来验证每个字段。

\n

我有一个包含namephoneemail字段的 User 实体,并在“创建”组中使用 @UniqueEntity ,因此我可以在 EasyAdmin 外部创建的表单中更新用户。这工作得很好,但当我使用新的组时,我无法找到如何告诉 EasyAdmin 使用默认组和我的创建组我的创建组。

\n

这是带有我所具有的约束的简化用户实体

\n
use Doctrine\\ORM\\Mapping as ORM;\nuse Symfony\\Bridge\\Doctrine\\Validator\\Constraints\\UniqueEntity;\nuse Symfony\\Component\\Validator\\Constraints as Assert;\n\n/**\n * @ORM\\Entity(repositoryClass=LeadRepository::class)\n * @ORM\\HasLifecycleCallbacks()\n * @UniqueEntity(\n *  fields="cellphone",\n *  message="Ya existe un usuario con este n\xc3\xbamero telef\xc3\xb3nico",\n *  groups={"creation"}\n * )\n * @UniqueEntity(\n *  fields="email",\n *  message="Ya existe un usuario con este email",\n *  groups={"creation"}\n * )\n */\nclass Lead\n{\n    /**\n     * @ORM\\Id()\n     * @ORM\\GeneratedValue()\n     * @ORM\\Column(type="integer")\n …
Run Code Online (Sandbox Code Playgroud)

php symfony-forms symfony easyadmin

2
推荐指数
1
解决办法
6103
查看次数