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
评分:×
|
|
|