求助PHP
  • 板块学术版
  • 楼主Micro_Seven
  • 当前回复20
  • 已保存回复20
  • 发布时间2020/6/18 14:54
  • 上次更新2023/11/7 00:26:49
查看原帖
求助PHP
291358
Micro_Seven楼主2020/6/18 14:54

为什么即使$user_name$_POST["user_name"]“一样”(至少视觉效果上是)strcmp出来的结果还是非00。。。

一个文件夹下,两个文件index.htmllogin.php

index.html:

<html>
<head>
<meta charset="utf-8">
<title>SMARTsoft 慧软 - 登录</title>
</head>
<body>
 
<form action="login.php" method="post">
  用户名: <input type="text" name="user_name">
  密码: <input type="password" name="password">
<input type="submit" value="登录">
</form>
 
</body>
</html>

login.php:

<!doctype html>
<html>
<head>
  <title></title>
</head>
<body>
  
  <?php
    //检测用户名中有没有空格
    for($i=0,$len=strlen($_POST["user_name"]);$i!=$len;++$i)
    {
        if($_POST["user_name"][$i] == ' ')
        {
            echo "用户名不合法:用户名中含有空格!";
            return 0;
        }
    }

    //用户名合法的话继续检测
    $users_data = fopen("(保密)", "r");
    // $new_users_data = "";

    while(!feof($users_data))
    {
        /*
        <User_Name>
        <Password>
        */

        $user_name = fgets($users_data);
        $password = fgets($users_data);

        echo "<br>" . $user_name . " " . $_POST["user_name"] . "</br>";
        echo "<br>" . $password . " " . $_POST["password"] . "</br>";
        echo "<br>" . strcmp($user_name, $_POST["user_name"]) . "</br>";
        echo "<br>" . strcmp($password, $_POST["password"]) . "</br>";

        if(strcmp($user_name, $_POST["user_name"]) == 0 &&
           strcmp($password, $_POST["password"]) == 0)
        {
            echo "登录成功!";
            fclose($users_data);
            return 0;
        }

        fgets($users_data);
    }

    fclose($users_data);
    echo "登陆失败:用户名或密码错误!";
    return 0;
  ?>
  
</body>
</html>
2020/6/18 14:54
加载中...