如何修改PHP用户/密码脚本只需要密码

时间:2014-10-29 19:43:35

标签: php password-protection

我已搜索了几周,但找不到与此特定问题相关的任何内容。

我有一个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中删除对用户名的引用。但是,我尝试过的一切都失败了。我感谢任何帮助。

1 个答案:

答案 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;
}

这将允许用户名不匹配并成为用户喜欢的任何内容