CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  CGI

我不好意思问,太简单了在线等待,马上给分

楼主bin127(温柔一刀)2002-04-23 11:14:23 在 Web 开发 / CGI 提问

要修改一个文件,我把文件读入到一个标量中(该文件只有一行如linux:unix:)现在想把unix改为perl我要怎样做。给我一个例子. 问题点数:50、回复次数:7Top

1 楼yourway(勵磁繞組,還未娶妻(至少我曾經瘦過))回复于 2002-04-23 11:31:21 得分 10

#!   /usr/bin/perl  
   
  $open_file="";  
  $find='unix';  
  $replace='perl';  
   
  open(FILE,"<$open_file")   or   die   $!;  
  my   $file_content;  
  while(<FILE>){  
  $file_content   .=$_;  
  }  
  close(FILE);  
   
  $file_content=~s/$find/$replace/ge;  
   
  open(FILE,">$open_file")   or   die   $!;  
  print   FILE   $file_content;  
  close(FILE);  
  Top

2 楼tanghui21(说话是我的职业)回复于 2002-04-23 11:32:07 得分 10

用split函数   请参看有关资料Top

3 楼bin127(温柔一刀)回复于 2002-04-24 11:39:17 得分 0

我按yourway(勵磁繞組)的说法做了一个程序,但是它有问题  
  #!/usr/bin/perl   -w  
  use   CGI   qw(:standard);  
  print   header;  
  $open_file   =   "/var/www/cgi-bin/passwd";  
  $olduser   =   param('olduser');  
  $oldpasswd   =   param('oldpasswd');  
  $newpasswd   =   param('newpasswd');  
  $newpasswd   =   param('newpasswd1');  
  chomp   $olduser;  
  chomp   $oldpasswd;  
  chomp   $newpasswd;  
  chomp   $newpasswd1;  
  if   ($olduser   eq   "")   {print   "no!\n";}  
  if   ($oldpasswd   eq   "")   {print   "no!\n";}  
  if   ($newpasswd   eq   "")   {print   "no!\n";}  
  if   ($newpasswd   eq   "")   {print   "no!\n";exit;}  
  if   ($newpasswd   ne   $newpasswd1)   {print   "no!\n";exit;}  
  $oldcrypt   =   crypt($oldpasswd,"ss");  
  $newcrypt   =   crypt($newpasswd,"ss");  
  open(FILE,"<$open_file")   ||   die   $!;  
  $file_content   =   <FILE>;  
  close(FILE);  
  @file_content=split(/:/,$file_content);  
  if   (($olduser   ne   $file_content[0])   ||   ($oldcrypt   ne   $file_content[1]))   {  
        print   "你没有这个权限修改!\n";exit;}  
  $file_content[1]="$newcrypt";  
  open(NEWFILE,">$open_file")   ||   die   $!;  
  print   NEWFILE   @file_content;  
  close(NEWFILE);  
   
   
  密码文件只有一行     (administrator:ss95dd18Dklk)  
  在这个程序中if   ($newpasswd   ne   $newpasswd1)   {print   "no!\n";exit;}这句不能执行,不知是什么原因,在这句后面的语句也不能执行,那位高人帮我看一下吧,谢谢.Top

4 楼yourway(勵磁繞組,還未娶妻(至少我曾經瘦過))回复于 2002-04-24 11:54:44 得分 10

……  
  $newpasswd   =   param('newpasswd');  
  $newpasswd   =   param('newpasswd1');       #这一句啦!  
  chomp   $olduser;  
  ……Top

5 楼netken(小肯)回复于 2002-04-24 12:56:14 得分 10

猜想   newpasswd   ,   newpasswd1   应该是确认密码输入用的吧?  
  那么在判断的时候最好是在   html   中用   javascript   来判断,或者在后面的你的一连串的   if   if   if   语句中做些修改,不要那么多的   if   ,一个就可以了  
  if   (   $olduser   eq   ''   or   $oldpasswd   eq   ''   or   $newpasswd   ne   $newpasswd1   or   $newpasswd   eq   ''   )   {  
  #   do   something  
  }  
  另,最后在   $file_content   =   <FILE>;   后面加上   chomp   $file_content;  
   
  Top

6 楼icuc88(职业特种兵)回复于 2002-04-24 19:26:48 得分 10

$newpasswd   =   param('newpasswd');  
  $newpasswd   =   param('newpasswd1');     -->   BUG  
  chomp   $olduser;  
  Top

7 楼bin127(温柔一刀)回复于 2002-04-24 20:11:06 得分 0

谢谢了,我已搞定,就是打错了,马上给分。Top

相关问题

  • 不好意思 帮忙 一下 小问题!!! (((在线等待)))
  • 简单问题!不好意思
  • 不好意思,一个简单问题.......
  • 简单到不好意思问
  • 自己都有点不好意思的问题问大家,50分!!在线等待~~~~~
  • 好简单的问题,有点不好意思开口问。
  • 不好意思开口,一个极简单的问题
  • 实在不好意思,这么简单的问题我都....唉!!!
  • 这个问题简单得我都不好意思问了。
  • 不好意思问个简单的问题

关键词

  • 文件
  • perl
  • unix
  • newpasswd
  • olduser
  • oldpasswd
  • chomp
  • eq
  • newfile
  • print

得分解答快速导航

  • 帖主:bin127
  • yourway
  • tanghui21
  • yourway
  • netken
  • icuc88

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo