function adduser($user,$pass,$flag,$rname,$dirsize,$lmname,$lmtel,$lmmobile)
{
$retval=-1;
$table=gettable($user);
$path=getpath($user);
if(@mkdir($path,0777))
{
$db=mysql_connect("localhost","root");
mysql_select_db("dataswapdb",$db);
if(mysql_query("create table $table (filename CHAR(64),filesize INTEGER,delflag SMALLINT,uploadtime DATETIME,groupname CHAR(16),recvuser CHAR(16),remark CHAR(64),PRIMARY KEY(filename,groupname,recvuser))",$db))
{
if(mysql_query("insert into user_list values('$user','$pass','$flag','$rname','$dirsize','$lmname','$lmtel','$lmmobile')",$db))
{
$retval=0;
}
}
mysql_close($db);
if($retval!=0)
{
rmdir($path);
}
}
return $retval;
}
我不懂PHP,可单位的一个页面最近出了问题,一个用户注册页面提交不上去,注册页面调用ADDUSER的时候adduser返回的总是-1,用户注册不了。而以前很正常,没有问题,因为很久没有注册用户了,所以不知道什么时候开始不能用的,可是把这个站点和数据库拷到我windows的php+mysql环境里,用户可以正常注册,难道是我系统配置的问题?linux小要配置哪里啊?请高手指点。
是两个数据库不能写入的问题吗?
13 个解决方案
#1
if(@mkdir($path,0777))
{
$db=mysql_connect("localhost","root");
mysql_select_db("dataswapdb",$db);
你的$path变量需要注意大小写~~~在LINUX中,系统对路径大小写敏感~~~而WINDOWS不区分大小写~~一般出现你这样的问题都是这个原因造成的~~
{
$db=mysql_connect("localhost","root");
mysql_select_db("dataswapdb",$db);
你的$path变量需要注意大小写~~~在LINUX中,系统对路径大小写敏感~~~而WINDOWS不区分大小写~~一般出现你这样的问题都是这个原因造成的~~
#2
去掉@mkdir前面的@进行测试
还有你的数据库连接的时候也不返回提示信息, 这样你也不知道是哪里出问题了.
还有你的数据库连接的时候也不返回提示信息, 这样你也不知道是哪里出问题了.
#3
$path 有没有问题啊?
#4
估计也是大小写问题
#5
另外$path如果带有“/”或者“\”的话在linux和windows下面需要转换一下
#6
大小写没有问题啊,都是小写的。
{
rmdir($path);
}
把这个行注释掉后,添加用户,报错后会保留(@mkdir($path,0777))建立的目录,是小写的
{
rmdir($path);
}
把这个行注释掉后,添加用户,报错后会保留(@mkdir($path,0777))建立的目录,是小写的
#7
看有没有写入权限
把要写入文件的 文件夹设位 777
把要写入文件的 文件夹设位 777
#8
1、可能是权限的问题。
2、可能是路径、数据库名、表名、字段名等大小写问题。
2、可能是路径、数据库名、表名、字段名等大小写问题。
#9
权限都是777,我怀疑是两句写数据库的代码没有写成功。
可为什么在WINDOWS下就正常,在LINUX下不成功啊。
可为什么在WINDOWS下就正常,在LINUX下不成功啊。
#10
mysql_connect(..) or die("link failed");
mysql_select_db(..) or die("db select failed");
mysql_query(..) or die("query failed");
加上错误判断再看看结果!
mysql_select_db(..) or die("db select failed");
mysql_query(..) or die("query failed");
加上错误判断再看看结果!
#11
if(mysql_query("create table $table (filename CHAR(64),filesize INTEGER,delflag SMALLINT,uploadtime DATETIME,groupname CHAR(16),recvuser CHAR(16),remark CHAR(64),PRIMARY KEY(filename,groupname,recvuser))",$db))
这行运行出错,query failed,这个有什么错?啊?
这行运行出错,query failed,这个有什么错?啊?
#12
查出来了,就是上面那行的错误,注释掉他以下的就可以运行了。
这行有什么错啊?
这行有什么错啊?
#13
晕,数据库目录权限不是777,我记得我最初就是把他设成777的啊。
问题解决了,给分了。第一次发帖,大家多多照顾。
问题解决了,给分了。第一次发帖,大家多多照顾。
#1
if(@mkdir($path,0777))
{
$db=mysql_connect("localhost","root");
mysql_select_db("dataswapdb",$db);
你的$path变量需要注意大小写~~~在LINUX中,系统对路径大小写敏感~~~而WINDOWS不区分大小写~~一般出现你这样的问题都是这个原因造成的~~
{
$db=mysql_connect("localhost","root");
mysql_select_db("dataswapdb",$db);
你的$path变量需要注意大小写~~~在LINUX中,系统对路径大小写敏感~~~而WINDOWS不区分大小写~~一般出现你这样的问题都是这个原因造成的~~
#2
去掉@mkdir前面的@进行测试
还有你的数据库连接的时候也不返回提示信息, 这样你也不知道是哪里出问题了.
还有你的数据库连接的时候也不返回提示信息, 这样你也不知道是哪里出问题了.
#3
$path 有没有问题啊?
#4
估计也是大小写问题
#5
另外$path如果带有“/”或者“\”的话在linux和windows下面需要转换一下
#6
大小写没有问题啊,都是小写的。
{
rmdir($path);
}
把这个行注释掉后,添加用户,报错后会保留(@mkdir($path,0777))建立的目录,是小写的
{
rmdir($path);
}
把这个行注释掉后,添加用户,报错后会保留(@mkdir($path,0777))建立的目录,是小写的
#7
看有没有写入权限
把要写入文件的 文件夹设位 777
把要写入文件的 文件夹设位 777
#8
1、可能是权限的问题。
2、可能是路径、数据库名、表名、字段名等大小写问题。
2、可能是路径、数据库名、表名、字段名等大小写问题。
#9
权限都是777,我怀疑是两句写数据库的代码没有写成功。
可为什么在WINDOWS下就正常,在LINUX下不成功啊。
可为什么在WINDOWS下就正常,在LINUX下不成功啊。
#10
mysql_connect(..) or die("link failed");
mysql_select_db(..) or die("db select failed");
mysql_query(..) or die("query failed");
加上错误判断再看看结果!
mysql_select_db(..) or die("db select failed");
mysql_query(..) or die("query failed");
加上错误判断再看看结果!
#11
if(mysql_query("create table $table (filename CHAR(64),filesize INTEGER,delflag SMALLINT,uploadtime DATETIME,groupname CHAR(16),recvuser CHAR(16),remark CHAR(64),PRIMARY KEY(filename,groupname,recvuser))",$db))
这行运行出错,query failed,这个有什么错?啊?
这行运行出错,query failed,这个有什么错?啊?
#12
查出来了,就是上面那行的错误,注释掉他以下的就可以运行了。
这行有什么错啊?
这行有什么错啊?
#13
晕,数据库目录权限不是777,我记得我最初就是把他设成777的啊。
问题解决了,给分了。第一次发帖,大家多多照顾。
问题解决了,给分了。第一次发帖,大家多多照顾。