php 验证用户和密码用还能用函数strcmp()吗?
看书的时候,看到说:“直接查询数据库验证用户名和密码,不会区分用户名和密码的大小写”。自己验证了一下,结果确实不会区分(代码如下)
。说是建议用函数strcmp()进行比较。
然而,我去baidu上查找相关资料发现说:“strcmp()函数有安全漏洞——构造数组绕过"。所有我想问问各位大侠,现在验证用户名和密码常见的方法是什么?
html页面代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登陆页面</title>
</head>
<body>
<center>
<h2>登陆页面</h2>
</center>
<form action="login_pro.php" method="post">
<table align='center'>
<tr>
<td>用户名:</td>
<td><input type="text" name="user"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="text" name="pwd"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>
php页面验证代码
<?php
header('content-type:text/html;charset=utf-8');
foreach($_POST as $key => $value)
{
$$key = $value;
}
//var_dump($pwd);die;
$pdo = new PDO('mysql:host=127.0.0.1;dbname=test',"root","root");
$pdo -> exec("set names utf8");
$res = $pdo -> query("select * from ci_user where user ='".$user."' and pwd ='".$pwd."'")->fetch(PDO::FETCH_ASSOC);
// var_dump($res);die;
if($res)
{
echo "<script>alert('用户验证通过。');history.back();</script>";
}
else
{
echo "<script>alert('密码验证错误。');history.back();</script>";
}
。说是建议用函数strcmp()进行比较。然而,我去baidu上查找相关资料发现说:“strcmp()函数有安全漏洞——构造数组绕过"。所有我想问问各位大侠,现在验证用户名和密码常见的方法是什么?

html页面代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登陆页面</title>
</head>
<body>
<center>
<h2>登陆页面</h2>
</center>
<form action="login_pro.php" method="post">
<table align='center'>
<tr>
<td>用户名:</td>
<td><input type="text" name="user"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="text" name="pwd"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>
php页面验证代码
<?php
header('content-type:text/html;charset=utf-8');
foreach($_POST as $key => $value)
{
$$key = $value;
}
//var_dump($pwd);die;
$pdo = new PDO('mysql:host=127.0.0.1;dbname=test',"root","root");
$pdo -> exec("set names utf8");
$res = $pdo -> query("select * from ci_user where user ='".$user."' and pwd ='".$pwd."'")->fetch(PDO::FETCH_ASSOC);
// var_dump($res);die;
if($res)
{
echo "<script>alert('用户验证通过。');history.back();</script>";
}
else
{
echo "<script>alert('密码验证错误。');history.back();</script>";
}
...全文
相关推荐
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
- 用户输入验证,如用户名、密码的检查。- 搜索算法中关键词的匹配。### 返回值的含义理解`strcmp()`和`strcasecmp()`的返回值对于正确处理比较结果至关重要。
PHP登录strcmp函数绕过
从这里开始,我实际上花了很长时间尝试在我的 get 请求中传递对 $FLAGWEB6 的引用,因为这两个变量是相同的。不幸的是,我永远无法让它工作(如果我在这里错过了一些愚蠢的事情,请联系我!source.txt 文件很简单,在我们的 GET 请求和 $PASSWORD 变量之间执行了一个简单的 strcmp。在页面的源代码中并没有那么隐藏是我可以找到表单源的地方。无法在这方面取得任何进展,然后我回顾了挑战提供的提示。发送请求后,我收到了标志和随后的 70 分。考虑到这一点,我向登录页面发送了以下请求。..
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
例如,如果要比较用户输入的密码时,可能需要使用strcmp()来确保大小写正确匹配;而在对用户显示的信息进行排序时(例如用户名列表),则可能使用strcasecmp()来确保排序不受大小写影响。
php strcmp使用说明
;```在这个示例中,我们首先定义了两个变量$pswd和$pswd2,分别存储用户输入的密码。然后使用strcmp函数比较这两个密码字符串。
php函数之字符串函数大全
`substr()`: 提取字符串的一部分,可以根据需要截取字符串。这些函数构成了PHP字符串处理的基础工具箱,无论是在创建动态网页、处理用户输入还是进行数据操作,都能发挥重要作用。


基础编程
