我已搜索了几周,但找不到与此特定问题相关的任何内容。
我有一个live.php的PHP页面。它成功地需要用户名和密码才能访问受保护的页面(livedata.php)。以下表格在live.php中:
<form name="LoginForm" form action="liveverify.php" method="post">
User Name:<input type="text" name="username" value="" />
Password:<input type="password" name="password" value="" />
<input type="submit" value="Login" /></p>
</form>
liveverify.php有:
<?php
$usernames = array("user1, uer2, user3");
$passwords = array("pass1, pass2, pass3");
$page = "livedata.php";
for($i=0;$i<count($usernames);$i++)
{
$logindata[$usernames[$i]]=$passwords[$i];
}
$found = 0; for($i=0;$i<count($usernames);$i++) { if ($usernames[$i] == $_POST["username"]) { $found = 1; } } if ($found == 0) { header('Location: liveerror.php'); exit; }
if($logindata[$_POST["username"]]==$_POST["password"]){ session_start(); $_SESSION["username"]=$_POST["username"]; header('Location: '.$page); exit;}else{ header('Location: liveerror.php'); exit;}?>
我的目的是消除对用户名的需求,并且只需要有效的密码。我假设我需要在liveverify.php中删除对用户名的引用。但是,我尝试过的一切都失败了。我感谢任何帮助。
答案 0 :(得分:0)
忽略用户名似乎有点奇怪,但假设用户名仍然会通过表单传递,你应该可以做类似的事情
$passwords = array( "pass1", "pass2", "pass3" );
$page = "livedata.php";
if ( in_array($_POST["password"], $passwords) )
{
session_start();
$_SESSION[ "username" ] = $_POST[ "username" ];
header( 'Location: ' . $page );
exit;
}
else
{
header( 'Location: liveerror.php' );
exit;
}
这将允许用户名不匹配并成为用户喜欢的任何内容