首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP+MYSQL编程 » [原创]老师们,请教一下  


  作者:lengyuehun
  注册时间:2005-03-01
  主题/回复:2/10
  积分:420
  等级:★★☆(五级)
  称号:略有小成

  zwl--2286@163.co..
  378079436
  www.

 

 发表:2005-03-03 16:26:51 阅读 2159 次 回复 11 次 得分1  |   字号 字色
[原创]老师们,请教一下
<?php
$username=$_POST["T1"];
$userpass=$_POST["T2"];

$filename_user = 'user.txt';
$filename_pswd = 'password.txt';
$somecontent_user =$username;
$somecontent_pswd =$userpass;

if (is_writable($filename_user)) {

    if (!$pointer_user = fopen($filename_user, 'a')) {
     print "please enter again!";
     exit;
    }
   
    if (!fwrite($pointer_user, $somecontent_user)) {
    print "It is unsuccessful that add new user!";
    exit;
    }
 
    print "It is successful that add new user!";

    fclose($pointer_user);

} else {
    print "the file not write!";
}
if (is_writable($filename_pswd)) {

    if (!$pointer_pswd = fopen($filename_pswd, 'a')) {
     print "please enter again";
     exit;
    }
 
    if (!fwrite($pointer_pswd, $somecontent_pswd)) {
    print "It is unsuccessful that add new password.!";
    exit;
    }

    print "It is successful that add new password.!";

    fclose($pointer_pswd);

} else {
    print "the file not write!";
}
?> 

这些是目前写的代码,在这里面,判断user.txt文本中是否已经存在名字的时候,代码如何写呢?就比如说:原来里面有tom名字,在输入tom时候会出现错误,还有,现在的情况是添加名字进去后,在文本中不能另起一行,是挨着前面的名字排列的,如何能把输入的名字在上一个名字的下一行显示呢?
一共是2个问题,谢谢帮助!
 
 1#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 1#楼 发表于2005-03-03 18:41:08  评分:1 

第一个问题,当判断一个用户名是否已经存在的时候,和上次给你写那个用户登陆是一样的。
就是一行一行的把用户名取出来,一个一个的比较,如果有相同的,则提示用户名已经存在,否则用户名不存在。

第二个问题,如果想让输入的内容换行,在内容后面加上换行符,比如:
$str="把这行文字写入文件\n";
然后把$str写入文件的话,就会写入之后换行。
 2#楼  
 
  回复人:lengyuehun
  注册时间:2005-03-01
  主题/回复:2/10
  积分:420
  等级:★★☆(五级)
  称号:略有小成

   
 2#楼 发表于2005-03-03 21:43:15  评分:× 

第二个问题,如果想让输入的内容换行,在内容后面加上换行符,比如:
$str="把这行文字写入文件\n";
然后把$str写入文件的话,就会写入之后换行。

但是,你看下我的上面写的那个
$somecontent_user =$username;
就是这样,怎么换行呢,,不知道怎么写了。。。
 3#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 3#楼 发表于2005-03-04 03:28:41  评分: 

我晕
字符串连接不会么?
$username=$username."\n";
不久ok了~!
 4#楼  
 
  回复人:lengyuehun
  注册时间:2005-03-01
  主题/回复:2/10
  积分:420
  等级:★★☆(五级)
  称号:略有小成

   
 4#楼 发表于2005-03-04 16:10:59  评分:× 

o ,我试下,呵呵,谢谢啦,还有啊,那个判断txt中用户名是否存在我是这么写的你看下
<?php
$username=$_POST["T1"];
$userpass=$_POST["T2"];

$filename_user = 'user.txt';
$filename_pswd = 'password.txt';
$somecontent_user =$username;
$somecontent_pswd =$userpass;

if (is_writable($filename_user)) {

    if (!$pointer_user = fopen($filename_user, 'a')) {
     print "please enter again!";
     exit;
    }
   
    if (!fwrite($pointer_user, $somecontent_user)) {
    print "It is unsuccessful that add new user!";
    exit;
    }
else{
    while(!feof($pointer_user)){
  $buffer=trim(fgets($pointer_user));
  if ($somecontent_user==$buffer){
   echo ("The user had already exist!");}
}}
 
    print "It is successful that add new user!";

    fclose($pointer_user);

} else {
    print "the file not write!";
}
if (is_writable($filename_pswd)) {

    if (!$pointer_pswd = fopen($filename_pswd, 'a')) {
     print "please enter again";
     exit;
    }
 
    if (!fwrite($pointer_pswd, $somecontent_pswd)) {
    print "It is unsuccessful that add new password.!";
    exit;
    }

    print "It is successful that add new password.!";

    fclose($pointer_pswd);

} else {
    print "the file not write!";
}
?> 

这样对么????
 5#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 5#楼 发表于2005-03-04 16:17:10  评分: 

对不对运行以下不就知道了么
 6#楼  
 
  回复人:lengyuehun
  注册时间:2005-03-01
  主题/回复:2/10
  积分:420
  等级:★★☆(五级)
  称号:略有小成

   
 6#楼 发表于2005-03-04 16:30:09  评分:× 

现在我这里php暂时不能运行,服务器是我boss自己设置的,他电脑没开,我运行不了。.....不过我想让你看看是否有错误。。
 7#楼  
 
  回复人:lengyuehun
  注册时间:2005-03-01
  主题/回复:2/10
  积分:420
  等级:★★☆(五级)
  称号:略有小成

   
 7#楼 发表于2005-03-04 21:27:13  评分:× 

我运行过了,有错误,到底是哪里呢?能不能帮我看下呢
 8#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 8#楼 发表于2005-03-04 22:53:26  评分: 

能说说错误提示是什么么?

我运行了一下,完全正常,没有错误。
 9#楼  
 
  回复人:lengyuehun
  注册时间:2005-03-01
  主题/回复:2/10
  积分:420
  等级:★★☆(五级)
  称号:略有小成

   
 9#楼 发表于2005-03-05 16:28:15  评分:× 

运行正常,但是,假如txt中有rose这个名字,我在注册的时候在输入rose名字,还是依旧可以注册,这个重名错误我没有解决掉。
 10#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 10#楼 发表于2005-03-06 03:44:42  评分: 

恩,确实是这个问题,不过问题的原因就是两点,一个是你的逻辑有点乱,没有注意有些判断语句的前后顺序,因为打开一个文件之后始终都用了这一个文件指针,没有注意文件指针在不同的时刻所处的位置。
第二个原因就是你打开模式错误。你在打开文件的时使用了"a"的模式,也就是可写模式,但是忽略了,当以"a"方式打开时,文件指针处在文件最末尾,因此到了后面用循环判断时并不是从头开始判断,而是从最后开始判断,相当于判断没有执行。

给你修改了一下,做了一点简单注释,主要还是打开方式的问题,把打开方式改为“r+”,这样既可以写入,又能保证文件指针处在文件开头。完整的代码在下面,应该可以直接运行。
-------------------------------------------------------
<?php
//----接收用户名密码
$username=$_POST["T1"];
$userpass=$_POST["T2"];

//---定义变量(可不定义)

$filename_user = 'user.txt';
$filename_pswd = 'password.txt';
$somecontent_user =$username;
$somecontent_pswd =$userpass;

//开始写入用户名,现判断文件是否可打开
    if (!$pointer_user = fopen($filename_user, 'r+')) {
 print "无法打开用户信息文件!";
 exit;
    }else{
//循环判断用户名是否已经存在
 while(!feof($pointer_user)){
  $buffer=trim(fgets($pointer_user));
   if ($somecontent_user==$buffer){
    echo ("The user had already exist!");
    $name_exist=true;
    break;
    }
 }
//循环结束,根据判断情况决定是否写入用户名
 if($name_exist){
  echo "用户名已经存在!";
  exit;
 }else{
  if (!fwrite($pointer_user, $somecontent_user."\n")) {
  //写入用户名时不要忘了加上\n来产生一个回车符
   print "写入用户信息不成功~!";
   exit;
   }else{
   print "用户名信息成功写入!~";
   }
 }
    }
 //用户名写入结束
fclose($pointer_user);

//然后如果用户名不存在,则需要把密码也写入
if(!$name_exist){

    if (!$pointer_pswd = fopen($filename_pswd, 'a')) {
 print "无法打开密码文件~";
 exit;
    }else{
 
 if (!fwrite($pointer_pswd, $somecontent_pswd)) {
 print "写入密码失败~";
 exit;
 }else{
 print "写入密码成功.!";
 }

    }
    fclose($pointer_pswd);
}
?> 

------------------------------------------------
 11#楼  
 
  回复人:lengyuehun
  注册时间:2005-03-01
  主题/回复:2/10
  积分:420
  等级:★★☆(五级)
  称号:略有小成

   
 11#楼 发表于2005-03-08 16:25:02  评分:× 

太感谢你了..~:)
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.022sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版