dtdvlazd56637 2013-05-12 19:44
浏览 196
已采纳

Php登录/注册数据存储在txt中

I'm trying to make a simple login/reg, but the login doesn't work, only with the last line of my txt file, probably because of the other lines contain the ' ' on the end of every line, but it worked before, I don't know what went wrong... What do I have to do to make it work? Here's my code:

login.php:

<?php
if(isset($_POST["name"]) && isset($_POST["password"])){
    $file = fopen('data.txt', 'r');
    $good=false;
    while(!feof($file)){
        $line = fgets($file);
        $array = explode(";",$line);
        if($array[0]==$_POST["name"] && $array[1]==$_POST["password"]){
            $good=true;
            break;
        }
    }

    if($good){
        $message="Welcome";
    }else{
        $message="Try again";
    }
    include 'message.html';
fclose($file);
}else{
    include 'login.html';
}
?>

reg.php:

<?php
if(isset($_POST["name"]) && isset($_POST["password"])){
    $f=fopen("data.txt","a");
    fputs($f,$_POST["name"].";".$_POST["password"]."
");
    fclose($f);
}else{
    include 'reg.html';
}
?>

And this is how the data.txt looks like:

Viktor;1234
Eve;12345
Cathlin;12356
  • 写回答

2条回答 默认 最新

  • dongzha3058 2013-05-12 19:54
    关注

    Use trim() to strip away whitespaces from the beginning and end of the strings. http://php.net/manual/en/function.trim.php

    while(!feof($file)){
        $line = fgets($file);
    
        list($user, $pass) = explode(';', $line);
    
        if(trim($user) == $_POST['name'] && trim($pass) == $_POST['password']){
            $good=true;
            break;
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装
  • ¥40 复杂的限制性的商函数处理