CGI编程学习文档格式.docx
- 文档编号:8116424
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:20
- 大小:44.54KB
CGI编程学习文档格式.docx
《CGI编程学习文档格式.docx》由会员分享,可在线阅读,更多相关《CGI编程学习文档格式.docx(20页珍藏版)》请在冰点文库上搜索。
bike"
Ihaveabike
car"
Ihaveacar
4.表单的动作属性(Action)和确认按钮
当用户单击确认按钮时,表单的内容会被传送到另一个文件。
表单的动作属性定义了目的文件的文件名。
由动作属性定义的这个文件通常会对接收到的输入数据进行相关的处理。
formname="
input"
action="
html_form_action.asp"
method="
get"
Username:
user"
submit"
Submit"
假如你再上面的文本框内键入几个字母,并且点击确认按钮,那么输入数据会被传送到名为"
的页面。
那一页将显示出输入的结果。
练习代码:
html>
<
head>
TITLE>
CGI1:
helloCGI<
/TITLE>
/head>
/body>
formaction="
"
h2>
文本域<
/h2>
Firstname:
fname"
/>
Lastname:
lname"
单选按钮(RadioButtons)<
Male
Female
复选框(Checkboxes)<
Ihaveabike<
Ihaveacar<
确认按钮<
/html>
效果图:
2、简单练习
效果:
点击确定按钮,调用CGI程序,实现CGI的调用。
title>
CGI:
Test<
/title>
body>
/cgi-bin/demo1.cgi"
p>
这是一个CGI的Test程序<
/p>
确定"
分析:
HTML语言是一种描述性语言。
html代码被包含在<
之间。
这里是一个标题头。
如:
这里是正文部分:
正文部分就只有一个表单。
action部分表示,点击确定按钮后,他会调用/cgi-bin/demo1.cgi程序。
这里没有给表单指定类型。
创建一个按钮。
下面我们看一下。
CGI部分的C代码:
#include<
stdio.h>
stdlib.h>
intmain(void)
{
printf("
%s\r\n\r\n"
"
Content-Type:
text/html"
);
\n<
CGIhello!
\n"
center>
H1>
hello,thisisfristCGIdemo!
/H1>
/center>
return0;
}
很简单。
就是3个printf。
这里的printf不会打印到服务器上,它已经做了重定向。
指向了。
浏览器.
当我们点击HTML页面上的"
按钮时就会调用这个CGI程序.这段代码由GCC编译.
点击后就会跳出一个页面.我们来看看这个页面的原代码再和这个C语言程序进行比较.
现象说明:
除开第一个printf其他的都是原样输出了.
就是说在我们的C语言程序中够成一个HTML页面代码.
本实验测试通过.
注意:
编译好的CGI程序是放在服务器上的.
加法计算
现象:
在表单中输入两个数据.调用CGI返回两个数据相加的和.
下面我们看一下:
htm部分代码
Testadd<
/cgi-bin/demo2.cgi"
h1>
请输入两个数据:
m"
size="
5"
+
n"
/h1>
要点:
这里是设定input类型为文本域,变量名为m,size=5表示文本域的显示宽度为5,太长就不美观了.
界面如下:
CGI程序:
char*data;
inta=0,b=0;
data=getenv("
QUERY_STRING"
CGI2:
相加结果<
sscanf(data,"
m=%d&
n=%d"
&
a,&
b);
相加结果为:
%d<
a+b);
1.data=getenv("
通过getenv函数获得环境变量的指针.
2.sscanf(data,"
格式化字符串输入.
下面,看一下我们点击"
按钮后,浏览器的地址发生了什么变化.
http:
//192.168.220.199/cgi-bin/demoadd.cgi?
m=4&
n=5
这里的m=4&
n=5和sscanf中形式是一样的.他就是QUERY_STRING环境变量中的值.
所以,我们在html代码中的,m,n的位置不能弄反,否则不会出现现象.
1.CGI和HTML沟通是通过环境变量来实现的.所以只要能获得环境变量的语言都可以用来写CGI程序.
4、登陆窗口
目的:
写一个登录窗口,输入帐号和密码,正确时返回成功.不正确时返回失败.
下面看下html代码:
CGI3:
登录<
FORMACTION="
/cgi-bin/demo3.cgi"
METHOD="
POST"
P>
用户名:
INPUTNAME="
name"
BR>
INPUTTYPE="
password"
NAME="
SUBMIT"
VALUE="
/FORM>
1.<
这句表示文字域是用来输入密码的.在其中输入的内容用以点表示.
2.表单的方式是POST.
效果如图:
下面看下.CGI部分代码:
char*str_len=NULL;
//定义字符型指针
intlen=0;
charbuf[100]="
;
charuser[20]="
charpasswd[20]="
//CGI标准头
登录结果<
str_len=getenv("
CONTENT_LENGTH"
//获取输入字符长度
//如果str_len没有赋值成功,如果str_len有多过数值,如果len大于80则打印出错
if((str_len==NULL)||(sscanf(str_len,"
%d"
&
len)!
=1)||(len>
80))
sorry!
error!
fgets(buf,len+1,stdin);
//从标准输入中读取len个字符
sscanf(buf,"
name=%[^&
]&
password=%s"
user,passwd);
//格式化输入获得登陆名和密码
if((strncmp(user,"
wenhao"
6)==0)&
&
(strncmp(passwd,"
111111"
6)==0))
Welcome!
登录成功!
else
Sorry!
用户名或密码错误!
5、穿插HTML,CSS零星知识
今天,看了同学写的HTML代码很糟糕.就自己重写了一下.
了解了一些HTML.CSS知识.现记录在这里.
先给大家一个比较好的CSS教程网站:
CSS概述
∙CSS指层叠样式表(CascadingStyleSheets)
∙样式定义如何显示HTML元素
∙样式通常存储在样式表中
∙把样式添加到HTML4.0中,是为了解决内容与表现分离的问题
∙外部样式表可以极大提高工作效率
∙外部样式表通常存储在CSS文件中
∙多个样式定义可层叠为一
要加入CSS.需要如下写:
<
styletype="
text/css"
body{
background-image:
url(sercer.files/smarthome.jpg);
background-repeat:
repeat-x;
repeat-y;
background-position:
center;
}
/style>
上面CSS的功能是设置一个背景图片并将它放在中间显示.
标签
标签定义段落。
p元素会自动在其前后创建一些空白。
浏览器会自动添加这些空间,您也可以在样式表中规定。
实例
以下代码标记了一个段落:
Thisissometextinaveryshortparagraph<
TIY(在页面下部,您可以找到更多实例。
)
span>
定义和用法
标签被用来组合文档中的行内元素。
HTML与XHTML之间的差异
NONE
提示和注释:
提示:
请使用<
来组合行内元素,以便通过样式来格式化它们。
注释:
span没有固定的格式表现。
当对它应用样式时,它才会产生视觉上的变化。
例子
sometext.<
/span>
someothertext.<
例子解释
如果不对span应用样式,那么span元素中的文本与其他文本不会任何视觉上的差异。
尽管如此,上例中的span元素仍然为p元素增加了额外的结构。
可以为span应用id或class属性,这样既可以增加适当的语义,又便于对span应用样式。
可以对同一个<
元素应用class或id属性,但是更常见的情况是只应用其中一种。
这两者的主要差异是,class用于元素组(类似的元素,或者可以理解为某一类元素),而id用于标识单独的唯一的元素。
事实上,您也许已经注意到了,W3School站点上有一些文本的样式与其他文本是不同的。
比如“提示”使用了粗体的橘红色。
尽管实现这种效果的方法非常多,但是我们的做法是:
使用“提示”使用span元素,然后对这个span元素的父元素,即p元素应用class,这样就可以对这个类的子元素span应用相应的样式了。
HTML:
pclass="
tip"
.........<
CSS:
p.tipspan{
font-weight:
bold;
color:
#ff9955;
}
6、HTML自动跳转代码
延时一段时间让页面跳转到制定页面.
代码如下:
wenhaoTest<
metahttp-equiv="
refresh"
content="
5;
url="
你好,我是wenhao!
重点:
作用:
5S后,自动跳转到凌阳教育.
7、HTML<
meta>
元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。
标签位于文档的头部,不包含任何内容。
标签的属性定义了与文档相关联的名称/值对。
在HTML中,<
标签没有结束标签。
在XHTML中,<
标签必须被正确地关闭。
标签永远位于head元素内部。
元数据总是以名称/值的形式被成对传递的。
必需的属性
DTD指示此属性允许在哪种DTD中使用。
S=Strict,T=Transitional,F=Frameset.
属性
值
描述
DTD
content
some_text
定义与http-equiv或name属性相关的元信息
STF
可选的属性
http-equiv
∙content-type
∙expires
∙refresh
∙set-cookie
把content属性关联到HTTP头部。
name
∙author
∙description
∙keywords
∙generator
∙revised
∙others
把content属性关联到一个名称。
scheme
定义用于翻译content属性值的格式。
name属性
name属性提供了名称/值对中的名称。
HTML和XHTML标签都没有指定任何预先定义的<
名称。
通常情况下,您可以自由使用对自己和源文档的读者来说富有意义的名称。
keywords"
是一个经常被用到的名称。
它为文档定义了一组关键字。
某些搜索引擎在遇到这些关键字时,会用这些关键字对文档进行分类。
类似这样的meta标签可能对于进入搜索引擎的索引有帮助:
metaname="
HTML,ASP,PHP,SQL"
如果没有提供name属性,那么名称/值对中的名称会采用http-equiv属性的值。
http-equiv属性
http-equiv属性为名称/值对提供了名称。
并指示服务器在发送实际的文档之前先在要传送给浏览器的MIME文档头部包含名称/值对。
当服务器向浏览器发送文档时,会先发送许多名称/值对。
虽然有些服务器会发送许多这种名称/值对,但是所有服务器都至少要发送一个:
content-type:
text/html。
这将告诉浏览器准备接受一个HTML文档。
使用带有http-equiv属性的<
标签时,服务器将把名称/值对添加到发送给浏览器的内容头部。
例如,添加:
charset"
iso-8859-1"
expires"
31Dec2008"
这样发送到浏览器的头部就应该包含:
text/html
charset:
iso-8859-1
expires:
31Dec2007
当然,只有浏览器可以接受这些附加的头部字段,并能以适当的方式使用它们时,这些字段才有意义。
content属性
content属性提供了名称/值对中的值。
该值可以是任何有效的字符串。
content属性始终要和name属性或http-equiv属性一起使用。
scheme属性
scheme属性用于指定要用来翻译属性值的方案。
此方案应该在由<
标签的profile属性指定的概况文件中进行了定义。
标准属性
dir,lang,xml:
lang
如需完整的描述,请访问标准属性。
TIY实例
文档描述
Meta元素中的信息可以描述HTML文档。
文档关键字
Meta元素中的信息可以描述文档的关键词。
重定向
这个例子演示:
在网址已经变更的情况下,将用户重定向到另外一个地址。
8、html之marquee详解
转自:
一个展示页面:
该标签不是HTML3.2的一部分,并且只支持MSIE3以后内核,所以如果你使用非IE内核浏览器(如:
Netscape)可能无法看到下面一些很有意思的效果
该标签是个容器标签
语法:
marquee>
/marquee>
以下是一个最简单的例子:
fontsize=+3color=red>
Hello,World<
/font>
下面这两个事件经常用到:
onMouseOut="
this.start()"
:
用来设置鼠标移出该区域时继续滚动
onMouseOver="
this.stop()"
:
用来设置鼠标移入该区域时停止滚动
marqueeonMouseOut="
onMouseOver="
用来设置鼠标移出该区域时继续滚动onMouseOver="
用来设置鼠标移入该区域时停止滚动<
这是一个完整的例子:
marqueeid="
affiche"
align="
left"
behavior="
scroll"
bgcolor="
#
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CGI 编程 学习