如何使用HTML和php正确登录?

如何使用HTML和php正确登录?,php,html,login,Php,Html,Login,所以,我正在创建一个简单的文件共享站点,它只接受一个用户名来登录。 但即使我有正确的用户名,程序也会认为它是错误的。下面是我的代码: <form method ="POST"> <p> <label for="user">User ID: </label><input type="text" name="userID" id="user" /> </p> <p>

所以,我正在创建一个简单的文件共享站点,它只接受一个用户名来登录。 但即使我有正确的用户名,程序也会认为它是错误的。下面是我的代码:

<form method ="POST">
    <p> 
        <label for="user">User ID: </label><input type="text" name="userID" id="user" /> 
    </p>
    <p> 
        <input type="submit" name = "LogIn" value="Log In" /> 
        <input type ="reset"/>
    </p>
</form>


用户ID:

PHP部分

<?php
$users = file('users.txt');
if (isset($_POST['LogIn'])) {
    echo $_POST['userID'].'<br>';
foreach ($users as $user) {
    if ($_POST['userID']==$user){
        header("Location: FileShareLogInRedirect.php");
        exit;
    }
}
echo "Wrong ID".'<br>';
?>
<?php
$users = file('users.txt');
if (isset($_POST['userID'])) {
    echo $_POST['userID'].'<br>';
foreach ($users as $user) {
    if ($_POST['userID']==$user){
        header("Location: FileShareLogInRedirect.php");
        exit;
    }
}
echo "Wrong ID".'<br>';
?>

我可能做错了什么?看起来它应该能用。

你还没有变形

echo "Wrong ID".'<br>';
回显“错误ID”。
在else语句中。 例如:



如果没有else语句,无论登录是否正确,每次都将执行echo语句。

提交按钮值不会随帖子一起发送

不应使用“提交”按钮尝试传递表单值

<form method ="POST">
        <p> 
            <label for="user">User ID: </label><input type="text" name="userID" id="user" /> 
        </p>
        <p> 
            <input type="submit" value="Log In" /> 
            <input type ="reset"/>
        </p>
    </form>


用户ID:

PHP部分

<?php
$users = file('users.txt');
if (isset($_POST['LogIn'])) {
    echo $_POST['userID'].'<br>';
foreach ($users as $user) {
    if ($_POST['userID']==$user){
        header("Location: FileShareLogInRedirect.php");
        exit;
    }
}
echo "Wrong ID".'<br>';
?>
<?php
$users = file('users.txt');
if (isset($_POST['userID'])) {
    echo $_POST['userID'].'<br>';
foreach ($users as $user) {
    if ($_POST['userID']==$user){
        header("Location: FileShareLogInRedirect.php");
        exit;
    }
}
echo "Wrong ID".'<br>';
?>

函数文件()无法逐行处理。对于这种情况下的任何原始数据处理,我们使用_array()中的函数。函数在数组()中,只有当我们有显式函数数组()时才能使用。因此,我们需要变量$users等于array()。在函数fopen()和loop While的帮助下加载array()之后,以及在_array()中使用函数之后。 以下是代码:

<form method ="POST">
    <p> 
        <label for="user">User ID: </label><input type="text" name="userID" id="user" /> 
    </p>
    <p> 
        <input type="submit" name = "LogIn" value="Log In" /> 
        <input type ="reset"/>
    </p>
</form>

<?php
$users=array();
$fpn=fopen('users.txt', 'r');
while (!feof($fpn))
{
    $user=fgets($fpn);
    $user=trim($user);
    $users[]=$user;
}
if (in_array($_POST['userID'], $users)) {
    header("Location: FileShareLogInRedirect.php");
        exit;
}
echo "Wrong ID".'<br>';
?>


用户ID:


谢谢你的帮助。但这并没有改变任何事情。我的程序仍然认为所有正确的用户名都是错误的“不会改变任何东西”???!你在开玩笑吗??!给那些试图帮助你的人一点荣誉怎么样。您的代码将停止在isset($\u POST['LogIn'])。。。那么,我的代码如何为您修复“不会改变任何东西”。。。相当忘恩负义。。。关于你。。。在这里这里有更多的帮助,你可以继续忘恩负义。。。尝试添加以下内容以查看循环中的内容:foreach($users as$user){echo$user.“
”;}或-发布users.txt的内容,以便我们可以查看其中的内容。它仅适用于文件users.txt中的一个用户(一个原始用户)。可能是空白或大写字符。显示文件内容和您提交的内容