为什么即使$user_name
和$_POST["user_name"]
“一样”(至少视觉效果上是)strcmp
出来的结果还是非0。。。
一个文件夹下,两个文件index.html
和login.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>