免费注册 查看新帖 |

Chinaunix

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

在mac系统下写了cgi可是为什么运行不了. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-15 18:52 |只看该作者 |倒序浏览
通过html的表格上的问卷,将填好的内容送到服务器调用enquete.cgi来将数据进行处理,
1.html文件如下:

<html>
<head>
<title>问卷调查</title>
</head>
<body background="./bg1.gif">
<center>
<font size="6" color="green"><b>请协助我们调查</b></font>
<form method="post"  action="./enquete.cgi">
<table border="0" cellspacing="10">
<tr>
    <td> 名字</td>
    <td><input type="text" size="50" name="name"></td>
</tr>
<tr>
    <td>邮箱</td>
    <td><input type="text" size="50" name="mail"></td>
</tr>
<tr>
    <td>性別</td>
    <td>
        <input type="radio" name="sex" value="男"> 男
        
        <input type="radio" name="sex" value="男"> 女
     </td>
</tr>
<tr>
    <td>年齢</td>
    <td>
        <select name="age">
           <option value="10岁"> 10岁未满
           <option value="10岁年龄层"> 10岁年龄层
           <option value="20岁年龄层"> 20岁年龄层
           <option value="30岁年龄层"> 30岁年龄层
           <option value="40岁年龄层"> 40岁年龄层
           <option value="50岁以上"> 50岁以上
         </select>
    </td>
</tr>
</table>
<p>
谈谈你的感想。(请不要换行)<br>
<textarea rows="6" cols="50" wrap="soft" name="kansou"></textarea>
<p>
<input type="submit" value="送信">
<input type="reset" value="重写">
</form>
</body>
</html>


2.enquete.cgi代码如下:


#!/usr/bin/perl -w

require 'cgi-lib.pl';

  &ReadParse(*form);

  require 'jcode.pl';

  &jcode'convert(*form, 'sjis');


  $data = "$form{'name'}\n$form{'mail'}\n$form{'sex'}\n$form{'age'}\n$form{'kansou'}\n\n----------------------\n\n";

  open(ENQ, ">>anketo.dat" ) || die "File 'anketo.dat' Open Error: $!\n";
  flock(ENQ, 2 );
  print ENQ $data;
  flock(ENQ, 8 );
  close(ENQ);

  print "Content-type:text/html\n\n";
  print << "end_of_html";

  <html>
  <head>
  <title>あり(~_~)</title>
  </head>
  <body background="./bg2.gif">
  <center>
  <b><font size="6">
  <font color="red">
  <br>
  调查问卷内容已经送过来了.
  <p>
   谢谢你协助我们调查。</font>
  <p>
  <font color="blue"> (^ o ^)/~</font>
  </b>
  </center>
  </body>
  </html>

end_of_html
就这么简单的代码,在mac系统下提示服务出错,
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, you@example.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.More information about this error may be available in the server error log.
大家帮忙指正一下,谢谢.

[ 本帖最后由 sitinl 于 2009-4-15 18:57 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-04-15 19:12 |只看该作者
具体原因请查看apache的error.log文件

论坛徽章:
0
3 [报告]
发表于 2009-04-15 20:52 |只看该作者
把 mac 拿来我帮你调

btw: 你看的是哪个年代的 cgi 的书啊

论坛徽章:
0
4 [报告]
发表于 2009-04-15 23:25 |只看该作者
#!/usr/bin/perl -w
这个好像是用在linux或unix主机的吧
mac没有用过,不过感觉不应该是#!/usr/bin/perl -w
比如在windows下应该改成#!c:/perl/bin/perl

写cgi还是用cgi模块方便,

[ 本帖最后由 ykredrum 于 2009-4-15 23:27 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-04-16 02:27 |只看该作者
1.用的是mac osx10.5的系统用which perl查了一下显示/usr/bin/perl
2.一个朋友告诉我在mac osx10.5下,只要把写的cgi文件放到/Library/WebServer/CGI-Executables里,然后再把文件权限改成705,地址是http://localhost/cgi-bin/ 这样就不用去动配置文件了
3.  2楼说的具体查看apache的error.log文件是在哪里查看?
初学perl请大家帮帮忙啊.谢谢以上各位的指点.请再帮忙看看.

论坛徽章:
0
6 [报告]
发表于 2009-04-16 02:31 |只看该作者
对了,忘了说,看的书是windows下的perl编程的书,可是自己用的系统是mac osx,怀疑是调用cgi-lib和readparse错误引起的,可是不懂和在mac osx10.5下怎么调用,还请大家再帮忙看看.

论坛徽章:
0
7 [报告]
发表于 2009-04-16 03:45 |只看该作者
在控制台的/var/log/
apache2/error_log显示
[Thu Apr 16 04:39:52 2009] [error] [client ::1] (13)Permission denied: exec of '/Library/WebServer/CGI-Executables/enquete.html' failed
[Thu Apr 16 04:39:52 2009] [error] [client ::1] Premature end of script headers: enquete.html
是不是说html文件不可以放在/Library/WebServer/CGI-Executables下面?

[ 本帖最后由 sitinl 于 2009-4-16 03:46 编辑 ]

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
8 [报告]
发表于 2009-04-16 09:40 |只看该作者
原帖由 sitinl 于 2009-4-16 03:45 发表
是不是说html文件不可以放在/Library/WebServer/CGI-Executables下面?

你这个 .html 文件里面是啥?放 CGI 目录下干啥?

论坛徽章:
0
9 [报告]
发表于 2009-04-16 12:10 |只看该作者
就是调查问卷的格式表啊.通过这个html文件把填 好的表格内容传到服务器上.

[ 本帖最后由 sitinl 于 2009-4-16 12:13 编辑 ]

图片 1.jpg (117.75 KB, 下载次数: 44)

图片 1.jpg

论坛徽章:
0
10 [报告]
发表于 2009-04-16 13:42 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP