SQL查询用户名和密码
我正在为一个班级制作一个项目站点,但不明白为什么我会出现这个错误。 到目前为止我有 Bareword在user-login.cgi第14行的“usr用户名”附近找到了操作员期望的位置,也有相同的错误和相同的行“$username和” 我找不到任何有用的搜索。如果有人能帮忙,我们将不胜感激SQL查询用户名和密码,sql,perl,Sql,Perl,我正在为一个班级制作一个项目站点,但不明白为什么我会出现这个错误。 到目前为止我有 Bareword在user-login.cgi第14行的“usr用户名”附近找到了操作员期望的位置,也有相同的错误和相同的行“$username和” 我找不到任何有用的搜索。如果有人能帮忙,我们将不胜感激 $username = $formdata{'username'}; $password = $formdata{'password'}; $msp = "password"; $msdb = "databas
$username = $formdata{'username'};
$password = $formdata{'password'};
$msp = "password";
$msdb = "databasename";
$msusr = "usrname";
$dbh = DBI ->connect("DBI:mysql:$msdb", "$msusr", "$msp");
$check_user = $dbh->selectrow_array(select username from usr WHERE email = $username AND usrpswrd = crypt $password, codetype);
这是perl在检查代码时得到的结果,并给出错误您应该用撇号封装sql。像这样:
$check_user = $dbh->selectrow_array("select username from usr WHERE email = $username AND usrpswrd = crypt $password",...
(实际上,这个crypt$密码看起来不太好……你应该选择绑定变量,而不是创建一个包含用户输入的大查询字符串。这可能是一个安全漏洞。(搜索sql注入。)你应该用撇号封装sql。像这样:
$check_user = $dbh->selectrow_array("select username from usr WHERE email = $username AND usrpswrd = crypt $password",...
(实际上,这个crypt$密码看起来不太好……你应该选择绑定变量,而不是创建一个包含用户输入的大查询字符串。这可能是一个安全漏洞。(搜索sql注入。)你需要引用select
"select username from usr WHERE email = '$username'
AND usrpswrd = '" . crypt($password) . "'"
您还想添加
use strict;
use warnings;
在脚本顶部您需要引用选择
"select username from usr WHERE email = '$username'
AND usrpswrd = '" . crypt($password) . "'"
您还想添加
use strict;
use warnings;
在脚本的顶部,有几个问题:
- 始终在每个脚本的顶部包含和
- 您需要将SQL语句括在引号中。我建议使用
- 您不应该在sql语句中包含变量
- 连接到数据库和执行sql查询时,不要忘记:
- 因为你正在使用,别忘了把作业的左边列成一个清单
- 始终在每个脚本的顶部包含和
- 您需要将SQL语句括在引号中。我建议使用
- 您不应该在sql语句中包含变量
- 连接到数据库和执行sql查询时,不要忘记:
- 因为你正在使用,别忘了把作业的左边列成一个清单