Tinyhttpd在linux下shell写cgi例子

如何在LINUX下编译,使用请看下面这篇文章:

Tinyhttpd在linux下编译运行;自定义端口;端口占用解决

-------------------------------------------------------------------------------------------------------

shell cgi代码:

复制默认 index.html 为 index2.html 和 color.cgi 为date.cgi

1
2
$ cp index.html index2.html
$ cp color.cgi date.cgi

-

 

 

date.cgi代码:

1
2
3
4
5
6
7
8
9
#!/bin/bash
echo "Content-Type: text/html"
echo
echo "<HTML><head><meta charset="utf-8"><head><BODY>"
echo "<CENTER>Today is:</CENTER>"
echo "<CENTER><B>"
date
echo "</B></CENTER>"
echo "</BODY></HTML>"

  

index2.html 代码:

1
2
3
4
5
6
7
8
9
10
11
<HTML>
<TITLE>Index</TITLE>
<BODY>
<P>Welcome to J. David's webserver.
<H1>CGI demo
<FORM ACTION="date.cgi" METHOD="POST">
Enter a color: <INPUT TYPE="text" NAME="color">
<INPUT TYPE="submit">
</FORM>
</BODY>
</HTML>

  就是将原来的color.cgi改成date.cgi就可以了

访问:

因为html文件名不是默认的名字,所以在访问时要输入具体的网页名。

1
http://192.168.178.128:8080/index2.html

  IP修改成你机器的IP

 

运行效果:

出现首页直接点“提交”按钮,就可以看到下图效果。

 

 

问题一:

效果页面乱码?

原因:

  服务器LINUX默认是utf-8编码,但访问网页的Windows系统编码编码是gbk,所以乱码。

 

解决方法一:

  IE浏览器--空白处右键--编码-其他-选择UTF8编码

 

解决方法二:

  指定返回页面的编码。

  在date.cgi文本里,约第4行的<HTML><BODY>中间加入如下html代码,

  即指定页面编码格式,不指定则默认使用系统编码格式。

1
<head><meta charset="utf-8"><head>

 

 运行效果:

 

 

 

解决方法三:

  运行 ./httpd 启动前,先修改系统编码为英文,显示结果也为英文

1
$ LANG=en_US.UTF-8

或 中文gbk编码

1
$ LANG=zh_CN.gbk

 

 

修改编码为英文后的效果:

 

 

 

 

 

 

参考:

http://cnblogs.com/nengm1988/p/7816618.html

https://blog.csdn.net/weixin_43468441/article/details/90756520

 

posted @   悟透  阅读(147)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示