php - 使用 ForEach 语句将值存储在数组中
问题描述
尝试使用 for each 语句在数组中存储值时遇到问题。所以我的程序的目的是将文本文件的内容存储在一个数组中,通过这样做我能够检查用户的输入是否与文本文件中存储的内容相同。问题是当将数组中的值与用户输入进行比较时,程序无法检测用户输入是否与存储在数组中的内容相同。我对这种情况的判断是,当使用 for each 语句将文本文件的内容存储到数组中时,会在每个值之间添加空间。(我的判断可能是错误的)。
主要代码:
<html>
<body>
<form name="LoginForm" method="post">
<label>Username</label>
<input type="text" name="Username"/>
<label>Password </label>
<input type="Password" name="Password" />
<input type="submit"/>
</form>
<?php
$Username = $_POST["Username"];
$Password = $_POST["Password"];
$CollectedDetails = file('UsernamesandPasswords.txt');
$Array = array();
foreach($CollectedDetails as $EachValue)
{
$Array[] = $EachValue;
}
for($Loop = 0; $Loop < 6; $Loop+=2)
{
if($Username == $Array[$Loop] && $Password == $Array[$Loop+1])
{
echo "Access Permitted";
}
else
{
echo "Access Denied";
}
}
?>
</body>
</html>
存储在文本文件中的内容 Dave Password Lucy Password2 Chris Password3
下面是上面程序的工作更新版本,没有添加文本文件。(我决定添加它以防万一)。
<html>
<body>
<form name="LoginForm" method="post">
<label>Username</label>
<input type="text" name="Username"/>
<label>Password </label>
<input type="Password" name="Password" />
<input type="submit"/>
</form>
<?php
$Username = $_POST["Username"];
$Password = $_POST["Password"];
$Array = array(Dave,Password,Lucy,Password2,Chris,Password3);
$Successful = false;
for($Loop = 0; $Loop < 6; $Loop+=2)
{
if($Username == $Array[$Loop] && $Password == $Array[$Loop+1])
{
echo "Access Permitted";
$Successful = true;
}
else if ($Successful == false)
{
echo "Access Denied";
}
}
?>
</body>
</html>
请注意,这两个程序都应该产生相同的结果。这个问题有没有可能的解决方案,我似乎无法弄清楚这个问题。任何帮助,将不胜感激。
解决方案
推荐阅读
- r - 如何在 R 中编写嵌套优化问题
- ubuntu - 重命名多个文件 - Ubuntu 正则表达式
- ruby - 如何根据需要附加完成字符。红宝石阅读线
- sql - SQL find group wise max date wise
- vba - 为什么我在 VBA 上为现有文件获得“找不到文件”?
- java - 将 Google Drive 文件下载到 Storage Access Framework 指定的目录
- python - 带有 QueuePool 和两个进程的 SQLAlchemy:结帐时关闭共享连接可以吗?
- javascript - 使用 react-router-navigation-prompt 时有关不推荐使用的 findDOMNode 的警告
- python - PyVista add_volume 显示空白图像
- c++ - 如何存储 unicode 字符并将它们输出到文件?