2 回答
TA贡献1856条经验 获得超5个赞
首先,将GET方法更改为POSTas<form action="login.php" method="POST">以在请求有效负载中发送数据而不是作为安全的 GET 参数。
因此,您可以将if条件放入foreach循环中以相应地检查和回显成功消息。
<?php
$found = false;
foreach($loginCombinations as $username => $password){
if($_POST['username'] == $username && $_POST['password'] == $password){
echo "Yes, user found!!";
$found = true;
break;
}
}
if(!$found){
echo "No user found!!";
}
更新:
name向您的提交按钮添加一个属性,submit比如<input type="submit" name="submit">。现在,您需要添加一个附加if条件来检查数据是否实际发布。
<?php
if(isset($_POST['submit'])){
$found = false;
foreach($loginCombinations as $username => $password){
if($_POST['username'] == $username && $_POST['password'] == $password){
echo "Yes, user found!!";
$found = true;
break;
}
}
if(!$found){
echo "No user found!!";
}
}
更新#2:
正如 所指出的@Nigel Ren,您可以简单地进行isset检查。
if(isset($loginCombinations[$_POST['username']],$loginCombinations[$_POST['password']])){
echo "user found";
}else{
echo "user not found";
}
TA贡献1799条经验 获得超9个赞
由于您的数组由用户名索引,因此无需进行循环。首先检查是否设置了用户名元素,然后检查匹配的密码...
$userName = $_GET['username'] ?? '';
$message = "";
if ( isset($loginCombinations[$userName]) &&
$loginCombinations[$userName] === $_GET['password']) {
$message = "user login correct";
}
else {
$message = "user login incorrect";
}
- 2 回答
- 0 关注
- 75 浏览
添加回答
举报