有一个txt文件,里面存了几个用户信息。当文本框中输入用户信息时,怎样判断这个用户信息是否在txt文件中存在呢?

解决方案 »

  1.   

    补充:txt中存储用户信息有什么格式要求吗?比如我存储的是用户名和邮箱
      

  2.   

    如你存储的格式是:
    用户名|EMAIL
    用户名|EMAIL
    用户名|EMAIL
    则:
    $user=$_POST['user'];
    $isHave=false;
    $handle = fopen("/tmp/user.txt", "r");
    while (!feof($handle)) {
        $buffer = fgets($handle, 4096);
        if(strpos($buffer,$user."|")!==false){
            $isHave=true;break;
        }
    }
    fclose($handle);
    if($isHave){
    //存在
    }else{
    //不存在
    }
      

  3.   

    格式要求取决于你自己的代码处理,比如
    一行一个用户名和邮箱,用逗号隔开,那么你程序中也是按照这个规则来读取。代码示例如下:
    <?php
    // 获取用户输入
    $username = $_POST["username"];
    $email = $_POST["email"];// Get a file into an array.
    $lines = file('yourtextfile.txt');
    $is_get = false;
    // Loop through our array
    foreach ($lines as $line_num => $line) {
    $array = explode(",", $line);
    $usernames[$line_num] = $array[0];
    $emails[$line_num] = $array[1];
    if($username == $usernames[$line_num]){
    $is_get = true;
    echo "匹配到用户名";
    break;
    }
    }
    if(!$is_get){
    echo "没有匹配到用户名";
    }
    ?>
      

  4.   

    首先获取文件中的内容(这要看你文件中内容的格式了,不同的方法)
    假如$s是获取到的文件的内容
    然后strpos($s, '你要查的信息')如果他返回-1说明没有,否则有
      

  5.   

    提供另一个思路,如果不能用数据库,文件最好保存为<?php/中间是数据/ ?>的形式否则,万一输入网址http://domain/dir/name.txt,直接把你文件打开了……
    当然目录和文件名可能很难猜,但是还是有不安全因素不是?如果想尝试
    建议数据这么保存
    <?php
    $arr = (
    'name1' => array('email' => '[email protected]'),
    'name2' => array('email' => '[email protected]'),
    );
    ?>要判断是否存在,只要include文件,判断isset($arr['name']) 即可如果插入信息
    数组中增加$arr['newname'] = array('email' => '[email protected]');然后
    ;拼接上php文件格式标志 <?php  $arr=var_export($arr) …… ?>写字符串到文件即可
      

  6.   


    利用ASP的文件操作实现用户管理 
    Sub WriteUser(UserName,FileName,UserInfo)
      Dim fs, f
      Set fs = CreateObject("Scripting.FileSystemObject")
      If fs.FileExists(FileName) = False Then
        fs.CreateTextFile (FileName)
      End If
      '以添加方式打开文件
      Set f = fs.OpenTextFile(FileName, 8)
      '用户信息开始标志
      f.WriteLine ("`" & UserName & "`")
      f.WriteLine (UserInfo)
      '用户信息结束标志
      f.WriteLine ("`e`")
      
      f.Close
      Set f = Nothing
      Set fs = Nothing
    End Sub    读用户信息的函数只需要两个参数:用户名和文件名,用户的信息作为函数
    的返回值,实现的思路就是寻找开始、结束标志,并把它们之间的信息返回。代
    码如下:Function ReadUser(UserName,FileName)
      Dim i
      Dim s
      Dim ret
      Dim fs, f
      
      Set fs = CreateObject("Scripting.FileSystemObject")
      if fs.FileExists(FileName)=false then
        Set fs=Nothing
        ReadUser=""
        Exit Function
      end if 
      '以只读方式打开文件
      Set f = fs.OpenTextFile(FileName, 1)
      
      Do While f.AtEndOfStream <> True
        s = f.ReadLine
        If s = "`" & UserName & "`" Then
          s = f.ReadLine
          ret=""
          Do While s <> "`e`"
            if ret="" then
              ret = ret + s
            else 
              ret = ret + Chr(13) & Chr(10)+s
            end if
            s = f.ReadLine
          Loop
          Exit Do
        End If
      Loop
      
      f.Close
      Set f = Nothing
      Set fs = Nothing
      ReadUser = ret
    End Function    下面是删除用户信息的函数,同样包括用户名和文件名两个参数。程序逐行
    读取对应文件,如果其它用户的信息,则保存在一个字符串变量中,否则不进行
    保存,然后用变量的内容重写该文件。代码如下:Sub DeleteUser(UserName,FileName)
      Dim i
      Dim s
      Dim tmp
      Dim fs, f
      
      Set fs = CreateObject("Scripting.FileSystemObject")
      if fs.FileExists(FileName)=false then
        Set fs=Nothing
        Exit Sub
      end if 
      Set f = fs.OpenTextFile(FileName, 1)
      tmp=""
      Do While f.AtEndOfStream <> True
        s = f.ReadLine
        If s <> "`" & UserName & "`" Then
          if tmp="" then
            tmp = tmp + s
          else
            tmp = tmp + Chr(13) & Chr(10)+ s 
          end if
        Else
          Do While s <> "`e`"
            s = f.ReadLine
          Loop
        End If
      Loop
      
      f.Close
      Set f = fs.CreateTextFile(FileName, True)
      f.WriteLine tmp
      
      f.Close
      Set f = Nothing
      Set fs = Nothing
    End Sub    修改用户信息函数和写用户信息函数一样,带有用户名、文件名、用户信息
    三个参数,只不过该函数的用户信息是更新后的信息。程序的实现和删除用户的
    过程差不多,删除用户不保存要删除用户的信息到变量,修改用户则把更新后信
    息保存到变量中代替原来的信息。代码如下:Sub ModifyUser(UserName,FileName,NewUserInfo)
      Dim i
      Dim s
      Dim tmp
      Dim fs, f
      
      Set fs = CreateObject("Scripting.FileSystemObject")
      if fs.FileExists(FileName)=false then
        Set fs=Nothing
        Exit Sub
      end if 
      Set f = fs.OpenTextFile(FileName, 1)
      tmp=""
      Do While f.AtEndOfStream <> True
        s = f.ReadLine
        If s <> "`" & UserName & "`" Then
          if tmp="" then
            tmp = tmp + s
          else
            tmp = tmp + Chr(13) & Chr(10)+ s 
          end if
        Else
          Do While s <> "`e`"
            s = f.ReadLine
          Loop
          if tmp="" then
            tmp = tmp + "`" & UserName & "`"
          else
            tmp = tmp  + Chr(13) & Chr(10)+ "`" & UserName & "`"
          end if
          tmp = tmp  + Chr(13) & Chr(10)+ NewUserInfo
          tmp = tmp + Chr(13) & Chr(10) + "`e`"
        End If
      Loop
      
      f.Close
      Set f = fs.CreateTextFile(FileName, True)
      f.WriteLine tmp
      
      f.Close
      Set f = Nothing
      Set fs = Nothing
    End Sub    还有一个函数是用来判断用户是否存在,通过在保存用户名的文件中进行定
    位来实现,代码如下:Function UserExist(UserName,FileName)
      Dim fs, f  Set fs = CreateObject("Scripting.FileSystemObject")
      if fs.FileExists(FileName)=False then
        Set fs=Nothing
        UserExist=False
        Exit Function
      end if 
      Set f = fs.OpenTextFile(FileName, 1)
      
      Do While f.AtEndOfStream <> True
        s = f.ReadLine
        If s = "`" & UserName & "`" Then
          UserExist = True
          Exit Function
        End If
      Loop
      
      f.Close
      Set f = Nothing
      Set fs = Nothing
      
      UserExist = False
    End Function    下面就是一些文件的完整代码,演示如何通过调用上面的函数来实现基
    本的用户管理:用户注册、用户登陆、用户修改、用户删除。仅供参考。程
    序在Win2000 Professional+IIS调试通过。注意,文本文件都保存在当前目
    录的子目录“txt”下,如果没有此目录,请手工建立,程序实现略。'*********************fun.inc***************************************
    <%
    dim UserNmFile,UserPwdFile,NmFile,GenderFile,MmFileUserNmFile="txt/UserName.txt"
    UserPwdFile="txt/Password.txt"
    NmFile="txt/Name.txt"
    GenderFile="txt/Gender.txt"
    MmFile="txt/Memo.txt"UserNmFile=Server.MapPath(UserNmFile)
    UserPwdFile=Server.MapPath(UserPwdFile)
    NmFile=Server.MapPath(NmFile)
    GenderFile=Server.MapPath(GenderFile)
    MmFile=Server.MapPath(MmFile)
    '////////////////////////////////////////////////////////
    '写用户信息到文件
    Sub WriteUser(UserName,FileName,UserInfo)
      Dim fs, f
      Set fs = CreateObject("Scripting.FileSystemObject")
      If fs.FileExists(FileName) = False Then
        fs.CreateTextFile (FileName)
      End If
      '以添加方式打开文件
      Set f = fs.OpenTextFile(FileName, 8)
      '用户信息开始标志
      f.WriteLine ("`" & UserName & "`")
      f.WriteLine (UserInfo)
      '用户信息结束标志
      f.WriteLine ("`e`")
      
      f.Close
      Set f = Nothing
      Set fs = Nothing
    End Sub
    '读取用户信息
    Function ReadUser(UserName,FileName)
      Dim i
      Dim s
      Dim ret
      Dim fs, f
      
      Set fs = CreateObject("Scripting.FileSystemObject")
      if fs.FileExists(FileName)=false then
        Set fs=Nothing
        ReadUser=""
        Exit Function
      end if 
      '以只读方式打开文件
      Set f = fs.OpenTextFile(FileName, 1)
      
      Do While f.AtEndOfStream <> True
        s = f.ReadLine
        If s = "`" & UserName & "`" Then
          s = f.ReadLine
          ret=""
          Do While s <> "`e`"
            if ret="" then
              ret = ret + s
            else 
              ret = ret + Chr(13) & Chr(10)+s
            end if
            s = f.ReadLine
          Loop
          Exit Do
        End If
      Loop
      
      f.Close
      Set f = Nothing
      Set fs = Nothing
      ReadUser = ret
    End Function
    '删除用户信息
    Sub DeleteUser(UserName,FileName)
      Dim i
      Dim s
      Dim tmp
      Dim fs, f
      
      Set fs = CreateObject("Scripting.FileSystemObject")
      if fs.FileExists(FileName)=false then
        Set fs=Nothing
        Exit Sub
      end if 
      Set f = fs.OpenTextFile(FileName, 1)
      tmp=""
      Do While f.AtEndOfStream <> True
        s = f.ReadLine
        If s <> "`" & UserName & "`" Then
          if tmp="" then
            tmp = tmp + s
          else
            tmp = tmp + Chr(13) & Chr(10)+ s 
          end if
        Else
          Do While s <> "`e`"
            s = f.ReadLine
          Loop
        End If
      Loop
      
      f.Close
      Set f = fs.CreateTextFile(FileName, True)
      f.WriteLine tmp
      
      f.Close
      Set f = Nothing
      Set fs = Nothing
    End Sub
    '修改用户信息
    Sub ModifyUser(UserName,FileName,NewUserInfo)
      Dim i
      Dim s
      Dim tmp
      Dim fs, f
      
      Set fs = CreateObject("Scripting.FileSystemObject")
      if fs.FileExists(FileName)=false then
        Set fs=Nothing
        Exit Sub
      end if 
      Set f = fs.OpenTextFile(FileName, 1)
      tmp=""
      Do While f.AtEndOfStream <> True
        s = f.ReadLine
        If s <> "`" & UserName & "`" Then
          if tmp="" then
            tmp = tmp + s
          else
            tmp = tmp + Chr(13) & Chr(10)+ s 
          end if
        Else
          Do While s <> "`e`"
            s = f.ReadLine
          Loop
          if tmp="" then
            tmp = tmp + "`" & UserName & "`"
          else
            tmp = tmp  + Chr(13) & Chr(10)+ "`" & UserName & "`"
          end if
          tmp = tmp  + Chr(13) & Chr(10)+ NewUserInfo
          tmp = tmp + Chr(13) & Chr(10) + "`e`"
        End If
      Loop
      
      f.Close
      Set f = fs.CreateTextFile(FileName, True)
      f.WriteLine tmp
      
      f.Close
      Set f = Nothing
      Set fs = Nothing
    End Sub
      

  7.   


    '判断用户是否已存在
    Function UserExist(UserName,FileName)
      Dim fs, f  Set fs = CreateObject("Scripting.FileSystemObject")
      if fs.FileExists(FileName)=False then
        Set fs=Nothing
        UserExist=False
        Exit Function
      end if 
      Set f = fs.OpenTextFile(FileName, 1)
      
      Do While f.AtEndOfStream <> True
        s = f.ReadLine
        If s = "`" & UserName & "`" Then
          UserExist = True
          Exit Function
        End If
      Loop
      
      f.Close
      Set f = Nothing
      Set fs = Nothing
      
      UserExist = False
    End Function%>'********************index.htm*************************************
    <html><body>
    <a href="register.htm">用户注册 </a><br>
    <a href="login.htm">用户登陆 </a><br>
    <a href="modify.htm">用户修改 </a><br>
    <a href="delete.htm">用户删除 </a><br>
    </body></html>
    '****************register.htm***************************************
    <html><body>
    用户注册
    <form name="form1" method="post" action="regsubmit.asp">
      <table border="0">
        <tr>
          <td width="28%">用户名</td>
          <td width="72%">
            <input type="text" name="edtUserNm">
          </td>
        </tr>
        <tr>
          <td width="28%">密码</td>
          <td width="72%">
            <input type="text" name="edtUserPwd">
          </td>
        </tr>
        <tr>
          <td width="28%">姓名</td>
          <td width="72%">
            <input type="text" name="edtNm">
          </td>
        </tr>
        <tr>
          <td width="28%">性别</td>
          <td width="72%">
            <input type="text" name="edtGender">
          </td>
        </tr>
        <tr>
          <td width="28%">简历</td>
          <td width="72%">
            <textarea name="edtMm"></textarea>
          </td>
        </tr>
        <tr>
          <td width="28%"> </td>
          <td width="72%">
            <input type="submit" name="Submit" value="提交">
          </td>
        </tr>  </table>
      <p> </p>
    </form>
    </body></html>'***************************regsubmit.asp**************************
    <!--#include file="fun.inc"--><%
    dim UserNm,UserPwd,Nm,Gender,Memo
    UserNm=Request("edtUserNm")
    UserPwd=Request("edtUserPwd")
    Nm=Request("edtNm")
    Gender=Request("edtGender")
    Mm=Request("edtMm")if trim(UserNm)="" then
      Response.Write "用户名不能为空"
      Response.End
    end if'判断用户是否已存在
    if UserExist(UserNm,UserNmFile) then
      Response.Write "用户已存在"
      Response.End
    end if'写用户信息到各个文件
    WriteUser UserNm,UserNmFile,UserNm
    WriteUser UserNm,UserPwdFile,UserPwd
    WriteUser UserNm,NmFile,Nm
    WriteUser UserNm,GenderFile,Gender
    WriteUser UserNm,MmFile,MmResponse.Write "注册成功,以下为注册信息" & "<br><br>"
    Response.Write "用户名:" & UserNm & "<br>"
    Response.Write "密码:" & UserPwd & "<br>"
    Response.Write "姓名:" & Nm & "<br>"
    Response.Write "性别:" & Gender & "<br>"
    Response.Write "简历:" & Mm 
    %><html>
    <body>
    </body>
    </html>'****************************login.htm************************
    <html><body>
    用户登陆
    <form name="form1" method="post" action="loginsubmit.asp">
      <table border="0">
        <tr>
          <td width="28%">用户名</td>
          <td width="72%">
            <input type="text" name="edtUserNm">
          </td>
        </tr>
        <tr>
          <td width="28%">密码</td>
          <td width="72%">
            <input type="text" name="edtUserPwd">
          </td>
        </tr>
        <tr>
          <td width="28%"> </td>
          <td width="72%">
            <input type="submit" name="Submit" value="登陆">
          </td>
        </tr>
      </table></form>
    </body></html>'****************************loginsubmit.asp**********************
    <!--#include file="fun.inc"--><%
    dim UserNm,UserPwd
    UserNm=Request("edtUserNm")
    UserPwd=Request("edtUserPwd")'判断用户是否已存在
    if UserExist(UserNm,UserNmFile)=False then
      Response.Write "用户名不存在"
      Response.End
    end ifdim SavePwd
    SavePwd=ReadUser(UserNm,UserPwdFile)if SavePwd<>UserPwd then
      Response.Write "密码错误"
      Response.End
    end ifResponse.Write "登陆成功"%><html>
    <body>
    </body>
    </html>'***************************modify.htm*****************************
    <html><body>
    用户修改
    <form name="form1" method="post" action="modifylist.asp">
      <table border="0">
        <tr>
          <td width="28%">用户名</td>
          <td width="72%">
            <input type="text" name="edtUserNm">
          </td>
        </tr>
        <tr>
          <td width="28%"> </td>
          <td width="72%">
            <input type="submit" name="Submit" value="调出信息">
          </td>
        </tr>
      </table></form>
    </body></html>'**************************modifylist.asp****************************
    <!--#include file="fun.inc"-->
    <%
    dim UserNm
    UserNm=Request("edtUserNm")'判断用户是否已存在
    if UserExist(UserNm,UserNmFile)=False then
      Response.Write "用户名不存在"
      Response.End
    end ifdim UserPwd,Nm,Gender,Mm
    UserPwd=ReadUser(UserNm,UserPwdFile)
    Nm=ReadUser(UserNm,NmFile)
    Gender=ReadUser(UserNm,GenderFile)
    Mm=ReadUser(UserNm,MmFile)%>
    <html>
    <body>
    用户信息修改
    <form name="form1" method="post" action="modifysubmit.asp">
      <table border="0">
        <tr>
          <td width="28%">用户名</td>
          <td width="72%">
            <b><font color="#0000ff"><%Response.Write UserNm  %></font></b>
            <input type="hidden" name="edtUserNm" value=<%=UserNm %>>
          </td>
        </tr>
        <tr>
          <td width="28%">密码</td>
          <td width="72%">
            <input type="text" name="edtUserPwd" value=<%=UserPwd %>>
          </td>
        </tr>
        <tr>
          <td width="28%">姓名</td>
          <td width="72%">
            <input type="text" name="edtNm" value=<%=Nm %>>
          </td>
        </tr>
        <tr>
          <td width="28%">性别</td>
          <td width="72%">
            <input type="text" name="edtGender" value=<%=Gender %>>
          </td>
        </tr>
        <tr>
          <td width="28%">简历</td>
          <td width="72%">
            <textarea name="edtMm"><%=Mm %></textarea>
          </td>
        </tr>
        <tr>
          <td width="28%"> </td>
          <td width="72%">
            <input type="submit" name="Submit" value="保存修改">
          </td>
        </tr>  </table>
      <p> </p>
    </form>
    </body></html>'********************************modifysubmit.asp*******************
    <!--#include file="fun.inc"--><%
    dim UserNm,UserPwd,Nm,Gender,Mm
    UserNm=Request("edtUserNm")
    UserPwd=Request("edtUserPwd")
    Nm=Request("edtNm")
    Gender=Request("edtGender")
    Mm=Request("edtMm")if trim(UserNm)="" then
      Response.Write "用户名不能为空"
      Response.End
    end if'更新用户信息到各个文件
    ModifyUser UserNm,UserNmFile,UserNm
    ModifyUser UserNm,UserPwdFile,UserPwd
    ModifyUser UserNm,NmFile,Nm
    ModifyUser UserNm,GenderFile,Gender
    ModifyUser UserNm,MmFile,MmResponse.Write "保存成功,以下为更新后的信息" & "<br><br>"
    Response.Write "用户名:" & UserNm & "<br>"
    Response.Write "密码:" & UserPwd & "<br>"
    Response.Write "姓名:" & Nm & "<br>"
    Response.Write "性别:" & Gender & "<br>"
    Response.Write "简历:" & Mm 
    %><html>
    <body>
    </body>
    </html>'*************************delete.htm******************************
    <html><body>
    用户删除
    <form name="form1" method="post" action="deletesubmit.asp">
      <table border="0">
        <tr>
          <td width="28%">用户名</td>
          <td width="72%">
            <input type="text" name="edtUserNm">
          </td>
        </tr>
        <tr>
          <td width="28%"> </td>
          <td width="72%">
            <input type="submit" name="Submit" value="删除">
          </td>
        </tr>
      </table></form>
    </body></html>'*******************************deletesubmit.asp********************
    <!--#include file="fun.inc"--><%
    dim UserNm
    UserNm=Request("edtUserNm")'判断用户是否已存在
    if UserExist(UserNm,UserNmFile)=False then
      Response.Write "用户名不存在"
      Response.End
    end ifDeleteUser UserNm,UserNmFile
    DeleteUser UserNm,UserPwdFile
    DeleteUser UserNm,NmFile
    DeleteUser UserNm,GenderFile
    DeleteUser UserNm,MmFileResponse.Write "删除成功"%><html>
    <body>
    </body>
    </html>
    '************************************the end*********************************
      

  8.   

    谢谢你写了这么长的代码,你用的是ASP,我用的是PHP