我尝试了这个,但是没有用。
HTML:
<form id="login" method="post">
<input type="text" name="login"><br>
<input type="password" name="pass">
<input type="submit">
</form>
PHP
$login = "citybank";
$pass = array("ticket3", "ticket2", "ticket1");
if(isset($_POST["login"])){
if($_POST["login"] == $login and $_POST["pass"] == $pass){
echo 'You are logged';
echo "
<script>
var post = document.querySelector('#login');
post.style.display = 'none';
</script>
";
}else{
echo "You are not logged.";
}
}
我认为我的array
有问题。
我不知道我使用的方式是否正确。
谢谢
答案 0 :(得分:2)
您可以使用in_array()函数来解决您的问题。 但是您应该使用数据库来存储密码。
php
$login = "citybank";
$pass = array("ticket3", "ticket2", "ticket1");
if(isset($_POST["login"])){
if($_POST["login"] == $login && in_array($_POST["pass"], $pass)){
echo 'You are logged';
echo "
<script>
var post = document.querySelector('#login');
post.style.display = 'none';
</script>
";
}else{
echo "You are not logged.";
}
}
答案 1 :(得分:2)
首先,您在这里遇到语法错误:
$pass = array("ticket3", "ticket2, "ticket1"); // missing "
您还搜索了数组中的值,因此应使用in_array():
<form id="login" method="post">
<input type="text" name="login"><br>
<input type="password" name="pass">
<input type="submit">
</form>
<?php
$login = "citybank";
$pass = array("ticket3", "ticket2", "ticket1");
if(isset($_POST["login"])){
if($_POST["login"] == $login and in_array($_POST["pass"], $pass)){
echo 'You are logged';
echo "
<script>
var post = document.querySelector('#login');
post.style.display = 'none';
</script>
";
}else{
echo "You are not logged.";
}
}
?>
警告:永远不要执行这样的登录逻辑,如果可以测试,就可以了,但是在生产环境中是 FORBIDDEN !
这是受保护的登录系统的example。
答案 2 :(得分:1)
<?php
$login = "citybank";
$pass = array("ticket3", "ticket2", "ticket1");
if(isset($_POST["login"]))
{
$count=0;
if($_POST["login"] == $login)
{
for($i=0;$i<3;$i++)
{
if($_POST["pass"] == $pass[$i])
{
{
$count=1;
echo 'You are logged';
echo "
<script>
var post = document.querySelector('#login');
post.style.display = 'none';
</script>
";
break;
}
}
}
if($count==0)
{
echo "You are not logged.";
}
}
}
?>