Php 无法转换为小写-不工作
我在我的页面上有下面的代码,但我想登录,即使用户名和密码是用小写字母输入的,我已经在线查看了,答案似乎表明strtolower可以工作,但它不适合我,有人可以看一下吗 谢谢你的帮助Php 无法转换为小写-不工作,php,login,lowercase,Php,Login,Lowercase,我在我的页面上有下面的代码,但我想登录,即使用户名和密码是用小写字母输入的,我已经在线查看了,答案似乎表明strtolower可以工作,但它不适合我,有人可以看一下吗 谢谢你的帮助 <?php $error = ""; if(isset($_POST['username'],$_POST['password'])){ $user = array( "user" => "Demo",
<?php
$error = "";
if(isset($_POST['username'],$_POST['password'])){
$user = array(
"user" => "Demo",
"pass"=>"Demo"
);
$username = strtolower($_POST['username']);
$pass = strtolower($_POST['password']);
if($username == $user['user'] && $pass == $user['pass']){
session_start();
$_SESSION['simple_login'] = $username;
echo '{"error":0}';
}else{
echo '{"error":1}';
}
exit();
}
?>
虽然这是一种方法,但您可能不应该这样做,这并不安全。为什么用户名/密码不区分大小写
<?php
$error = "";
if(isset($_POST['username'],$_POST['password'])){
$user = array(
"user" => strtolower("Demo"),
"pass"=> strtolower("Demo")
);
$username = strtolower($_POST['username']);
$pass = strtolower($_POST['password']);
if($username == $user['user'] && $pass == $user['pass']){
session_start();
$_SESSION['simple_login'] = $username;
echo '{"error":0}';
}else{
echo '{"error":1}';
}
exit();
}
?>
我对PHP了解不多,但您似乎在比较一个全小写字符串和一个包含大写字母的字符串“Demo”
。也许这就是比较大小写没有通过的原因。您将变量转换为小写,但匹配的数组包含大写。很明显,两者都需要转换才能匹配。你说的“不起作用”是什么意思?错误是什么,是语义错误吗?运行不区分大小写的代码生成密码时发生的情况严重损害了安全性。切勿存储纯文本密码!请使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用密码\u hash()
。在散列之前,不需要对它们执行任何操作或使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。@TazConway哇,那么你真的不关心安全了。很高兴我不是你们系统的用户;我发现最后两条评论相当有辱人格。@Fred ii-也许吧。公平地说,我们的起点都差不多。我真的不是想贬低这个家伙,我在学校时写的代码同样糟糕。抱歉,这正是他的代码让我想起的…@邪恶的程序员,这就像“边界线”贬低了TBH。最好按照他们问题下的评论说明。相当肯定他们得到了信息;至少我希望他们做到了!哈哈-我只是不想让OP给人留下坏印象:-)@ADyson“但是OP似乎没有听取或回应任何评论,只是不顾所有警告继续使用解决方案”-我们只能像你们一样让他们知道:-)还记得“ol”的说法吗?“我不是我兄弟的守护者”——)如果他们选择不听警告,那么这不是你/我们的问题,所有人都试图通知/建议。他们是否应该回到Stack并发布:“我的网站被黑客攻击了”,嗯。。。我想你知道我要去哪里;-)