遇到了一个 SQL 的问题,求帮忙看一下
这个是我的注册界面,
注册成功后的状态
问题是创建的:Name,Email,Password 经过hash加密后传到数据库里变成了,这样
插入的是这条sql语句后面的值:
$dataInsert = ‘insert into user (Name,Email,Password) values (“$name”,”$email”,”$passwordHash”)’;
我的代码如下:
邮箱验证这里有点问题,$_POST接收的数据并未和数据库里的数据匹配到,每次输入相同的邮箱都能出现第二张截图的那个状态?
因为$_POST['email']没有正确解析,建议你用变量。 例如这样,
字符串双引号不能这样用
这个基础有点差啊,好好补一下吧
php双引号里面的字符串,是会进行变量解析的;单引号里面的字符串,是不进行变量解析的
然后字符串里面,如果有变量的话,可以选择拼接的方式,例如:
也可以选择使用双引号解析,例如:
备注:php双引号里面的变量,如果左右两边的界限比较"清晰",可以直接书写变量,但是界限"不清晰"的时候,需要用
{}
把变量包起来;还是框架舒服
SQL 里直接使用变量,一定要预处理,否则会有 SQL 注入漏洞。
翻译:在你的 PHP 项目中单独使用 Laravel Eloquent 查询语句来避免 SQL 注...
翻译:你的 PHP/Laravel 网站是否足够安全?(PHPer 安全须知)
博客:SQL 注入:联合注入
原生的注意参数绑定啥的