免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3582 | 回复: 6
打印 上一主题 下一主题

想做一个web页面接受输入,用perl获取表单数据处理,提示一下 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-02 10:15 |只看该作者 |倒序浏览
就一个页面,里面放一些输入框之类的,然后用perl获取用户输入的数据。

熟悉的给点提示吧,有点急。

是不就写个html就可以了?记得有个action=...的,这里也是这么弄么?有没简单的例子啊?

论坛徽章:
5
寅虎
日期:2015-01-20 09:16:52亥猪
日期:2015-01-21 14:43:44IT运维版块每日发帖之星
日期:2015-12-17 06:20:00每日论坛发贴之星
日期:2015-12-17 06:20:00每周论坛发贴之星
日期:2015-12-20 22:22:00
2 [报告]
发表于 2010-02-02 10:29 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2010-02-02 10:45 |只看该作者
很不错的帖子,谢谢了,我看看。
我弄了个简单的,为什么我html里面提交后却看到了perl脚本的源码?
==============
<html>
    <body>
        <form action="test.pl" method="post">
            <p>First name: <input type="text" name="fname" /></p>
            <p>Last name: <input type="text" name="lname" /></p>
            <input type="submit" value="Submit" />
        </form>
    </body>
</html>
==================

test.pl
#==========================================
use strict;
use CGI;

my $q = new CGI;
my $fname = $q->param('fname');
print "hello, $fname!\n";

论坛徽章:
0
4 [报告]
发表于 2010-02-03 13:47 |只看该作者
回复 3# maybenot


    因为你没有输出header.
print $q->header;

论坛徽章:
0
5 [报告]
发表于 2010-02-04 17:30 |只看该作者
为什么我html里面提交后却看到了perl脚本的源码?


哦,没输出header是一个问题。
但是源代码泄漏又是另外一个问题。
很可能是把perl脚本放到了文档目录下。
跟PHP不同,perl脚本需要放在专门的CGI目录里,默认配置就是cgi-bin目录。
并且脚本要可执行:chmod +x aa.pl

论坛徽章:
0
6 [报告]
发表于 2010-02-05 09:30 |只看该作者
谢谢仙子,正是!

我开始没装apache
后来又发现要header
再后来就是你说的问题啦

太菜了。。

劳驾再问几个问题,我用的use CGI生成网页
1. 如果我要用变量控制生成表格的行和列,发现在table函数里面不好夹杂进去循环啊,一般都怎么写的这种情况?
print table({-border=>1},
                Tr({-align=>'CENTER',-valign=>'TOP', -style=>'background:green'},
                        th(['arr', @arr] ),
                ),
                Tr(
                        td( ['sdf', map {textfield("sdf". $_)} (0..$#sdf)] ),
                ),
                Tr(
                        td( ['tey', map {textfield("tey".$_)} (0..$#tey)] ),
                ),

               
                ...还有若干Tr...
        );

2. 我的页面和提交处理都放在一个脚本了,这样好么
3. 提交表单后输入框里面出现了编码后的字符,怎回事呢
4. 想放个按钮,点一下就增加表格列数,如何实现啊

论坛徽章:
0
7 [报告]
发表于 2010-02-05 10:12 |只看该作者
很少有人用到CGI.pm里的那些表单控制函数。
一般我们用Template::Toolkit来做模板,把动态数组传进TT,TT对数组进行循环,从而动态生成行数。
如:
  1.   <table>
  2.       <th>Title 1</th>
  3.       <th>Title 2</th>
  4.       <th>Title 3</th>
  5.     </tr>
  6.     [% FOREACH element IN data %]
  7.     <tr>
  8.       <td>[% element.key1 %]</td>
  9.       <td>[% element.key2 %]</td>
  10.       <td>[% element.key3 %]</td>
  11.     </tr>
  12.     [% END %]
  13.   </table>
复制代码
你的最后一个问题,与Perl无关,用JS很容易搞定。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP