我想创建一个登录系统,但在这种情况下,我想创建数组作为用户名和密码
<?php
$users = array(
"user1" => "pass" ,
"user2" => "2" ,
"user3" => "pass3d"
);
if ( isset($_POST['sb']) ) {
$username = $_POST['user'];
$password = $_POST['pass'];
/*
foreach ($users as $user => $pass ) {
if ( $username == $user && $password == $pass ) {
echo 'login';
header("Location: ?page=admin");
}
else {
echo 'failed';
$_SESSION = array();
header("Location: ?dologin");
}
}
*/
?>
你可以看到我没有使用数据库,我在数组中创建了用户名和密码,我需要检查登录
使用foreach
执行此操作并不是一个好主意它与foreach
一起工作但我想在登录失败时销毁会话,所以如果用户输入第3个密钥并且值sesseion将被破坏!
我尝试使用in_array
,但我不能这样做
比较用户名和密码的最佳方法是什么
答案 0 :(得分:1)
首先,我不会将这些密码保存在纯文本中。 循环可能不是最好的方法,我会想到这样的事情:
<?php
$array1 = array(
"1" => "Monday",
"2" => "Tuesday",
"3" => "Wednesday"
);
?>
我们有一周前3天的这个数组。如果我们要检查用户是否放弃了1
和Monday
,我们可以像这样检查:
<?php
$var1 = $_POST['index'];
$var2 = $_POST['day'];
if (array_key_exists($var1, $array1))//if key exists in the array
{
if ($var2 == $array1[$var1])//if the day matches the value of the key in the array
{
//Do something
}
}
?>