一个最简单的方法,呵呵,我不信还有更简单的:check.php,得到用户名$name,密码$pwd<?
$alldata=file("userdata.php");   //先让数组$alldata得到文本库的内容
$udata="$name|$pwd|■";   //构造这个一行数据
if (in_array($udata,$alldata)) $check=1;//通过
else $check=0;//不通过
完成了,呵呵。
ps:那个■应该是\n来的,可能是楼主的文本打开的编码问题。

解决方案 »

  1.   

    $alldata=file("userdata.php");   //先让数组$alldata得到文本库的内容
    $udata="$name|$pwd|■";   //构造这个一行数据
    if (in_array($udata,$alldata)) $check=1;//通过
    else $check=0;//不通过这个方法我试了,好象不行
    $check 值一直为0
      

  2.   

    ps:那个■应该是\n来的,可能是楼主的文本打开的编码问题。看到我这句话没?我怀疑你的那个文本里面保存的数据不是你贴出来的那种格式的。
    $udata="$name|$pwd|";
      

  3.   

    可以用file()把整个文件读入一个数组中
      

  4.   

    <?
       require("config.php");
       $name=$_POST["username"];
       $passwd=$_POST["passwd"];
       $admin=$_POST["admin"];   $userall="$name|$passwd|$admin";
       $fp=fopen($userdatafile,a);
       flock($fp,3);
       fputs($fp,$userall);
       fputs($fp,"|■\n");
       fclose($fp);
       echo "ok!";
    ?>这个是我添加用户的文件,
      

  5.   

    把所有数据放到一个数组里面,然后用正则
    for ($i=0;$i<count($file);$i++)
    {
      if (eregi($提交的用户名,$file[$i])) 
      {
                $pwd=split($file[$i],"|")
                   if($提交的密码==$pwd(1))
                   echo "yes";
                }
    }
      

  6.   

    显示的■实际是\n,你用写字板打开就是很规整的格式了。文本里面的所有数据都是以这个\n区分的。有一个\n就是一个数组元素
      

  7.   

    我写段入门的代码,比较易懂,高手不要见笑:$file_name = "userdata.php";
    $fp = fopen($file_name,"r");  //打开文件
    $file_content = fread($fp,filesize($file_name));  //读取文件内容
    fclose($fp);$lines = explode("\n",$file_content);  //通过回车来确定一行的内容
    $i = 0;
    $auth = 0;
    while ($i < count($lines))  //通过while循环读出所有的用户资料
    {
      $date_pair = explode("|",$lines[$i]);
      if ($data_pair[0] == $name && $data_pair[1] == $pwd)
      {
        $auth = 1;
        break;
      }
      $i++;
    }//判断是否匹配
    if ($auth == 0)
    {
      print("用户名或者密码错误");
    }
    else
    {
      print("用户名和密码正确");
    }