Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP登录_Php_Arrays_Foreach - Fatal编程技术网

使用PHP登录

使用PHP登录,php,arrays,foreach,Php,Arrays,Foreach,我试图用PHP创建一个基本的登录屏幕,但是当我想用foreach循环检查密码时,它就不起作用了。我制作了一个数组来保存一些用户名和密码,并希望用foreach循环检查它,如果您登录,您应该会收到一条消息,显示您是否登录。 我认为foreach循环不起作用,但在我看来,它应该起作用 我希望任何人都能帮我解决这个问题。已经谢谢你的时间了。 PHP: HTML: 伯根 登录om adresgegevens+openingstijden te zien。 用户名: 密码: 登录 发生的事情是,它在整个

我试图用PHP创建一个基本的登录屏幕,但是当我想用foreach循环检查密码时,它就不起作用了。我制作了一个数组来保存一些用户名和密码,并希望用foreach循环检查它,如果您登录,您应该会收到一条消息,显示您是否登录。 我认为foreach循环不起作用,但在我看来,它应该起作用

我希望任何人都能帮我解决这个问题。已经谢谢你的时间了。 PHP:

HTML:


伯根
登录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";
}
}


?>