使用PHP登录
我试图用PHP创建一个基本的登录屏幕,但是当我想用foreach循环检查密码时,它就不起作用了。我制作了一个数组来保存一些用户名和密码,并希望用foreach循环检查它,如果您登录,您应该会收到一条消息,显示您是否登录。 我认为foreach循环不起作用,但在我看来,它应该起作用 我希望任何人都能帮我解决这个问题。已经谢谢你的时间了。 PHP: HTML:使用PHP登录,php,arrays,foreach,Php,Arrays,Foreach,我试图用PHP创建一个基本的登录屏幕,但是当我想用foreach循环检查密码时,它就不起作用了。我制作了一个数组来保存一些用户名和密码,并希望用foreach循环检查它,如果您登录,您应该会收到一条消息,显示您是否登录。 我认为foreach循环不起作用,但在我看来,它应该起作用 我希望任何人都能帮我解决这个问题。已经谢谢你的时间了。 PHP: HTML: 伯根 登录om adresgegevens+openingstijden te zien。 用户名: 密码: 登录 发生的事情是,它在整个
伯根
登录om adresgegevens+openingstijden te zien。
用户名:
密码:
登录
发生的事情是,它在整个数组中继续比较用户名和密码。这意味着它只适用于最后一个条目。您应该做的是找到用户后,退出循环(使用break;
)
此代码仅在开始时设置
$success=false
,因此不会出现相同的问题,但是“break”仍然会在已经找到匹配项时停止比较值。发生的是,它会在整个数组中继续比较用户名和密码。这意味着它只适用于最后一个条目。您应该做的是找到用户后,退出循环(使用break;
)
此代码仅在开始时设置
$success=false
,因此不会出现相同的问题,但“break”仍然会在已经找到匹配项时停止比较值。在$\u POST[]中传递的变量也有问题。在html中,您使用首字母大写的名称作为用户名和密码。但在$\邮政传递错误。请查收
$username = $_POST["username"];
$password = $_POST["password"];
这应该是
$username = $_POST["Username"];
$password = $_POST["Password"];
您还需要在foreach中包含break。在$\u POST[]中传递的变量也有问题。在html中,您使用首字母大写的名称作为用户名和密码。但在$\邮政传递错误。请查收
$username = $_POST["username"];
$password = $_POST["password"];
这应该是
$username = $_POST["Username"];
$password = $_POST["Password"];
您还需要在foreach中包含break。您的代码正常工作,但有两个错误,因为您必须使用$\u POST作为$\u POST['Username'],而不是$\u POST['Username'],并且密码也相同。因为您已经在表单中定义了输入的名称。 要检查获得的$\u POST值,可以使用第页的print\r($\u POST)。 如果登录完成了,您需要发出警报。请使用一些html或javascript代码打印或警报消息变量 下面是一个成功时发出警报的代码
<?php
//message variable aanmaken
$message = "";
$succes = false;
// "Database" met usernames en wachtwoorden
$Data["Matthijs123"] = "ikwilbinnen";
$Data["MatthijsHulshof"] = "Eindopdracht123";
$Data["Login"] = "Password";
$Data["123"] = "456";
/*$Data[""] = "";
$Data[""] = "";
$Data[""] = "";
$Data[""] = "";
$Data[""] = "";
$Data[""] = "";
*/
// Check of $_POST minimaal 1 item heeft
if(count($_POST) >= 1)
{
$username = @$_POST["Username"];
$password = @$_POST["Password"];
// Checken of de opgegeven username en wachtwoord in de $data array zit
foreach($Data as $index => $value)
{
echo "<br>".$index;
echo "<br>".$value;
if($username == $index && $password == $value)
{
//Wachtwoord en username combinatie gevonden!
$succes = true;
echo "<script>window.alert('success');</script>";
}
else
{
$succes = false;
}
}
if($succes == true)
{
$message = "U bent ingelogd";
}
else
{
$message = "U wachtwoord en / of gebruikersnaam is fout";
}
}
?>
您的代码正在运行,但有两个错误,因为您必须使用$\u POST作为$\u POST['Username'],而不是$\u POST['Username'],并且密码也相同。因为您已经在表单中定义了输入的名称。
要检查获得的$\u POST值,可以使用第页的print\r($\u POST)。
如果登录完成了,您需要发出警报。请使用一些html或javascript代码打印或警报消息变量
下面是一个成功时发出警报的代码
<?php
//message variable aanmaken
$message = "";
$succes = false;
// "Database" met usernames en wachtwoorden
$Data["Matthijs123"] = "ikwilbinnen";
$Data["MatthijsHulshof"] = "Eindopdracht123";
$Data["Login"] = "Password";
$Data["123"] = "456";
/*$Data[""] = "";
$Data[""] = "";
$Data[""] = "";
$Data[""] = "";
$Data[""] = "";
$Data[""] = "";
*/
// Check of $_POST minimaal 1 item heeft
if(count($_POST) >= 1)
{
$username = @$_POST["Username"];
$password = @$_POST["Password"];
// Checken of de opgegeven username en wachtwoord in de $data array zit
foreach($Data as $index => $value)
{
echo "<br>".$index;
echo "<br>".$value;
if($username == $index && $password == $value)
{
//Wachtwoord en username combinatie gevonden!
$succes = true;
echo "<script>window.alert('success');</script>";
}
else
{
$succes = false;
}
}
if($succes == true)
{
$message = "U bent ingelogd";
}
else
{
$message = "U wachtwoord en / of gebruikersnaam is fout";
}
}
?>