20CN网络安全小组第一代论坛
发表新主题  发表回复

个人资料 | 社区目录 用户登录 | | 论坛搜索 | 常见问题 | 论坛主页
  下一个最老的主题   下一个最新的主题
» 20CN网络安全小组第一代论坛   » 安 全 基 地   » 菜鸟乐园   » 请教一个和PERL有关的问题

   
作者 标题: 请教一个和PERL有关的问题
-2b
未注册


图标 1  发表于         编辑/删除帖子   引用原文回复  
事情是这样的:
我在改YUZI的BBS3000,本来没什么问题的,不过在写文件的时候却出现了以下问题:
setup.cgi里面有下面语句:
$filepath="/home/apps/sbs/";
yhreg.cgi有下面语句
require "setup.cgi";
open(PSD,">$filepath/yhzl/$username.cgi");
上面语句实际上翻译过来就是
open(PSD,">/home/apps/sbs/yhzl/$username.cgi");
但是我用这个语法的时候程序却给我返回:No such file or directory
而我用open(PSD,">d:/home/apps/sbs/yhzl/$username.cgi")或者
open(PSD,">d:\\home\\apps\\sbs\\yhzl\\$username\.cgi")的时候他却说:Invalid argument
我在这里糊涂得很,不知道到底是怎么个事情,是不是NT权限出问题了???但是yhreg.cgi却可以运行啊??????????????????
出现这种情况有些什么可能性呀?
IP: 已记录
NetDemon
初级成员
编号: 2

评价成员
图标 1  发表于    NetDemon的个人资料   发送 Email 给NetDemon   发送新的短讯      编辑/删除帖子   引用原文回复  
问题出现在这 $username.cgi ,在这里 perl 认为 $usermane 为一个变量, . 为 perl 的字符合并操作符,

open(PSD,">/home/apps/sbs/yhzl/$username.cgi");

你在win 系统吧 ,当然没有 /home 了 所以No such file or directory

当而我用open(PSD,">d:/home/apps/sbs/yhzl/$username.cgi")

时,路径找到了,但是 $username.cgi 这样确是错误的,所以Invalid argument

其实这里应该是open(PSD,">d:/home/apps/sbs/yhzl/username.cgi")才对,没有 $ 的

------------------
微软给了我窗户,因此UNIX给了我房子
微软给我窗户了吗?没有
所以UNIX没有给了我房子
我仍然游荡在Internet上

发表: 4 | 注册: 2005-02-27  |  IP: 已记录
-2b
未注册


图标 1  发表于         编辑/删除帖子   引用原文回复  
我试过你说的方法了,还是不行
IP: 已记录
-2b
未注册


图标 1  发表于         编辑/删除帖子   引用原文回复  
而且,当YUZI的yhreg.cgi使用open(PSD,">/home/apps/sbs/yhzl/$username.cgi"); 的时候,系统却能正常运行(NT的系统)
IP: 已记录
NetDemon
初级成员
编号: 2

评价成员
图标 1  发表于    NetDemon的个人资料   发送 Email 给NetDemon   发送新的短讯      编辑/删除帖子   引用原文回复  
你把 c:/home/apps/sbs/ 换成你的真正路径了没有啊?

假如你把文件放在 c:/httpd/cgi-bin/bbs3000
你只要改动 setup.cgi 中的
$filepath="/home/apps/sbs/";为 $filepath="c:/httpd/cgi-bin/bbs3000";就行了,你改 yhreg.cgi 干什么 ?

另外,我刚刚看了,是$username.cgi没错,如果$username = -2b ,他就要打开 -2b.cgi 这个文件,但 yhreg.cgi 似乎没有 open(PSD,">$filepath/yhzl/$username.cgi");
语句,只有 open(PSD,">>$filepath/yhzl/$username.cgi"); 和 open(PSD,"$filepath/yhzl/$username.cgi");


------------------
微软给了我窗户,因此UNIX给了我房子
微软给我窗户了吗?没有
所以UNIX没有给了我房子
我仍然游荡在Internet上

发表: 4 | 注册: 2005-02-27  |  IP: 已记录
disguise
未注册


图标 1  发表于         编辑/删除帖子   引用原文回复  
,">$filepath/yhzl/$username.cgi,
IP: 已记录
disguise
未注册


图标 1  发表于         编辑/删除帖子   引用原文回复  
,">$filepath/yhzl/$username.cgi,
$是参数吗?还是习惯写法,我发现过不少回
IP: 已记录
-2b
未注册


图标 1  发表于         编辑/删除帖子   引用原文回复  
路径是没有错的,可以通过: http://bbs.luzhou.net/apps/sbs/yhzl/3343.cgi 查看绝对路径,还有就是YHREG.CGI里面有">"的用法,而且还出现了好几处.

楼上的朋友
open(PSD,">$filepath/yhzl/$username.cgi");这种写法里面的"$"和后面的字母看成一个函数

IP: 已记录
NetDemon
初级成员
编号: 2

评价成员
图标 1  发表于    NetDemon的个人资料   发送 Email 给NetDemon   发送新的短讯      编辑/删除帖子   引用原文回复  
http://bbs.luzhou.net/apps/sbs/bbs.cgi

这个是好用的阿,我顺利的注册了aaaz 密码aaaz

根本没有任何出错,你又这么说错了呢?

``open(PSD,">$filepath/yhzl/$username.cgi");这种写法里面的"$"和后面的字母看成一个函数`` 是变量不是函数

你把你的yhreg.cgi贴上来吧,注意贴的时候选禁止笑脸这个复选框

------------------
微软给了我窗户,因此UNIX给了我房子
微软给我窗户了吗?没有
所以UNIX没有给了我房子
我仍然游荡在Internet上

发表: 4 | 注册: 2005-02-27  |  IP: 已记录
-2b
未注册


图标 1  发表于         编辑/删除帖子   引用原文回复  
奇怪就是奇怪在这里,用户能够注册,但是我写的程序放在上面就要出错,我用open(PSD,"ABC.CDE");没问题,但是用open(PSD,">ABC.CDE")就要出问题了
IP: 已记录

 
发表新主题  发表回复 关闭主题 突出主题 移动主题 删除主题 下一个最老的主题   下一个最新的主题
 - 适于打印的主题视图
转到:
联系我们 | 20CN网络安全小组

Powered by Infopop Corporation
UBB.classic™ 6.5.0
NetDemon修改版 1.5.0, 20CN网络安全小组 版权所有。