免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1656 | 回复: 3

求助:有关参数传递的问题 [复制链接]

论坛徽章:
0
发表于 2006-08-07 14:44 |显示全部楼层
我用Perl实现了一个CGI程序,用来查询用户信息

  1. #!/usr/bin/perl
  2. use strict;
  3. use CGI;
  4. my $q=new CGI;
  5. my $action=$q->param('action');
  6. my $id=$q->param('id');
  7. #my $list='';
  8. my $list=join("\t","wells","23","male");
  9. #my $result=0;
  10. my $result=1;


  11. print "Content-type:text/html\n\n";

  12. if( $action eq 'Search')
  13. {       
  14.         open(SH,"data.txt") || die "cannot open file data.txt:$!";
  15.         while(my $line = <AD>)
  16.         {
  17.                 chomp $line;
  18.                 my( $usrid, @values )=split("\t", $line);
  19.                 if( $id eq $usrid )
  20.                 {
  21. #                        $list.=join("\t", $usrid, @values);
  22.                         $result = 1;
  23.                 }
  24.         }
  25. }

  26. print "<html>\n";
  27. print "<head>\n";
  28. print "<meta http-equiv=\"Content-type\" Content=\"text/html; Charset=uft-8\">\n";
  29. print "<title>demo.cgi</title>\n";
  30. print "</head>\n";

  31. print "<body>\n";
  32. print "<form action=\"\" method=\"post\">";
  33. print "<h2 alien=center>请输入你要查找的用户ID</h2>";
  34. print "<p>ID:";
  35. print "<input type=text name=id>";
  36. print "<input type=submit name=action value=\"Search\">";
  37. print "<input type=reset name=reset value=\"Reset\">";
  38. print "</p><br>";
  39. print "<table border>";
  40. if($result==1){
  41.     my($val1, $val2, $val3)=split("\t",$list);
  42.     print "<form action=\"\" method=\"post\">";
  43.     print "<tr>";
  44.     print "<td>$val1</td>";
  45.     print "<td><input size=25 name=sage value=$val2></td>";
  46.     print "<td><input size=25 name=ssex value=$val3></td>";
  47.     print "</form>";
  48. }
  49. print "</table>";
  50. print "<hr>";
  51. print "</form>";
  52. print "</table>";
  53. print "</body></html>";
复制代码

现在遇到的问题是$result和$list的值无法修改,这样使得$result恒等于零,请问要怎么修改才能使得当if()里面语句中的$result和$list可以修改成我想要的值

谢谢!!

论坛徽章:
0
发表于 2006-08-07 14:49 |显示全部楼层
不好意思,上面的程序有的地方是我调试的时候设的,下面的是我想实现的查询记录的完整代码
  1. #!/usr/bin/perl
  2. use strict;
  3. use CGI;
  4. my $q=new CGI;
  5. my $action=$q->param('action');
  6. my $id=$q->param('id');
  7. my $list='';
  8. my $result=0;



  9. print "Content-type:text/html\n\n";

  10. if( $action eq 'Search')
  11. {       
  12.         open(SH,"data.txt") || die "cannot open file data.txt:$!";
  13.         while(my $line = <AD>)
  14.         {
  15.                 chomp $line;
  16.                 my( $usrid, @values )=split("\t", $line);
  17.                 if( $id eq $usrid )
  18.                 {
  19.                         $list.=join("\t", $usrid, @values);
  20.                         $result = 1;
  21.                 }
  22.         }
  23. }

  24. print "<html>\n";
  25. print "<head>\n";
  26. print "<meta http-equiv=\"Content-type\" Content=\"text/html; Charset=uft-8\">\n";
  27. print "<title>demo.cgi</title>\n";
  28. print "</head>\n";

  29. print "<body>\n";
  30. print "<form action=\"\" method=\"post\">";
  31. print "<h2 alien=center>请输入你要查找的用户ID</h2>";
  32. print "<p>ID:";
  33. print "<input type=text name=id>";
  34. print "<input type=submit name=action value=\"Search\">";
  35. print "<input type=reset name=reset value=\"Reset\">";
  36. print "</p><br>";
  37. print "<table border>";
  38. if($result==1){
  39.     my($val1, $val2, $val3)=split("\t",$list);
  40.     print "<form action=\"\" method=\"post\">";
  41.     print "<tr>";
  42.     print "<td>$val1</td>";
  43.     print "<td><input size=25 name=sage value=$val2></td>";
  44.     print "<td><input size=25 name=ssex value=$val3></td>";
  45.     print "</form>";
  46. }
  47. print "</table>";
  48. print "<hr>";
  49. print "</form>";
  50. print "</table>";
  51. print "</body></html>";
复制代码

应该就是参数值没有改变,不过不知道应该怎么该,麻烦了了!

论坛徽章:
0
发表于 2006-08-07 15:28 |显示全部楼层
打开的文件句柄是SH,怎么while循环读 <AD>句柄呢?

论坛徽章:
0
发表于 2006-08-07 16:30 |显示全部楼层
打开的文件句柄是SH,怎么while循环读 <AD>句柄呢?


晕,原来就是这里的错误
太粗心了,谢谢你哈,damofeixue
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP