CGI编程学习.doc_第1页
CGI编程学习.doc_第2页
CGI编程学习.doc_第3页
CGI编程学习.doc_第4页
CGI编程学习.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、HTML表单学习HTML 标签 标签用于搜集用户信息。 根据不同的 type 属性值,输入字段拥有很多种形式。输入字段可以是文本字段、复选框、掩码后的文本控件、单选按钮、按钮等等。 HTML 表单用于搜集不同类型的用户输入。 表单是一个包含表单元素的区域。 表单元素是允许用户在表单中(比如:文本域、下拉列表、单选框、复选框等等)输入信息的元素。 表单使用表单标签()定义。 输入 多数情况下被用到的表单标签是输入标签()。输入类型是由类型属性(type)定义的。大多数经常被用到的输入类型如下: 1.文本域(Text Fields) 当用户要在表单中键入字母、数字等内容时,就会用到文本域。 First name: Last name: 浏览器显示如下: 注意,表单本身并不可见。同时,在大多数浏览器中,文本域的缺省宽度是20个字符。 2.单选按钮(Radio Buttons) 当用户从若干给定的的选择中选取其一时,就会用到单选框。 Male Female 3.复选框(Checkboxes) 当用户需要从若干给定的选择中选取一个或若干选项时,就会用到复选框。 I have a bike I have a car 4.表单的动作属性(Action)和确认按钮 当用户单击确认按钮时,表单的内容会被传送到另一个文件。表单的动作属性定义了目的文件的文件名。由动作属性定义的这个文件通常会对接收到的输入数据进行相关的处理。 Username: 浏览器显示如下: 假如你再上面的文本框内键入几个字母,并且点击确认按钮,那么输入数据会被传送到名为html_form_action.asp的页面。那一页将显示出输入的结果。练习代码: CGI1:hello CGI 文本域 First name: Last name: 单选按钮(Radio Buttons) Male Female 复选框(Checkboxes) I have a bike I have a car 确认按钮 效果图:2、简单练习效果:点击确定按钮,调用CGI程序,实现CGI的调用。 CGI:Test 这是一个CGI的Test程序 分析:HTML语言是一种描述性语言。html代码被包含在之间。CGI:Test这里是一个标题头。如:这里是正文部分:这是一个CGI的Test程序 正文部分就只有一个表单。action部分表示,点击确定按钮后,他会调用/cgi-bin/demo1.cgi程序。这里没有给表单指定类型。 创建一个按钮。下面我们看一下。CGI部分的C代码:#include #include int main(void) printf(%srnrn,Content-Type:text/html); printf(nCGI1:CGI hello!n); printf(hello, this is frist CGI demo!n); return 0;很简单。就是3个printf。这里的printf不会打印到服务器上,它已经做了重定向。指向了。浏览器.当我们点击HTML页面上的确定按钮时就会调用这个CGI程序.这段代码由GCC编译.点击后就会跳出一个页面.我们来看看这个页面的原代码再和这个C语言程序进行比较.CGI1:CGI hello!hello, this is frist CGI demo!现象说明:除开第一个printf其他的都是原样输出了.就是说在我们的C语言程序中够成一个HTML页面代码.本实验测试通过.注意:编译好的CGI程序是放在服务器上的.加法计算现象:在表单中输入两个数据.调用CGI返回两个数据相加的和.下面我们看一下:htm部分代码 CGI:Test add 请输入两个数据: + 要点:这里是设定input类型为文本域,变量名为m, size=5表示文本域的显示宽度为5,太长就不美观了.界面如下:CGI程序:#include #include int main(void) char *data; int a=0, b=0; data = getenv(QUERY_STRING); printf(%srnrn,Content-Type:text/html); printf(nCGI2:相加结果n); sscanf(data, m=%d&n=%d,&a,&b); printf(相加结果为:%d,a+b); return 0;要点:1.data = getenv(QUERY_STRING); 通过getenv函数获得环境变量的指针.2.sscanf(data, m=%d&n=%d,&a,&b);格式化字符串输入.下面,看一下我们点击确定按钮后,浏览器的地址发生了什么变化.99/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:登录 用户名: 用户名: 注意:1.用户名:这句表示文字域是用来输入密码的.在其中输入的内容用以点表示.2.表单的方式是POST.效果如图:下面看下.CGI部分代码:#include #include int main(void) char *str_len=NULL;/定义字符型指针 int len=0; char buf100=; char user20=; char passwd20=; printf(%srnrn,Content-Type:text/html);/CGI标准头 printf(nCGI3:登录结果n); str_len = getenv(CONTENT_LENGTH);/获取输入字符长度 /如果str_len没有赋值成功,如果str_len有多过数值,如果len大于80则打印出错 if( (str_len=NULL) | (sscanf(str_len, %d, &len)!=1) | (len80) ) printf(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) ) printf(Welcome! 登录成功!); else printf(Sorry! 用户名或密码错误!); return 0;5、穿插HTML,CSS零星知识今天,看了同学写的HTML代码很糟糕.就自己重写了一下.了解了一些HTML.CSS知识.现记录在这里.先给大家一个比较好的CSS教程网站:/css/index.aspCSS 概述 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题 外部样式表可以极大提高工作效率 外部样式表通常存储在 CSS 文件中 多个样式定义可层叠为一 要加入CSS.需要如下写:body background-image:url(sercer.files/smarthome.jpg); background-repeat:repeat-x; background-repeat:repeat-y; background-position:center; 上面CSS的功能是设置一个背景图片并将它放在中间显示.HTML 标签 标签定义段落。p 元素会自动在其前后创建一些空白。浏览器会自动添加这些空间,您也可以在样式表中规定。实例以下代码标记了一个段落:This is some text in a very short paragraphTIY (在页面下部,您可以找到更多实例。)HTML 标签定义和用法 标签被用来组合文档中的行内元素。HTML 与 XHTML 之间的差异NONE提示和注释:提示:请使用 来组合行内元素,以便通过样式来格式化它们。注释:span 没有固定的格式表现。当对它应用样式时,它才会产生视觉上的变化。例子some text.some other text.例子解释如果不对 span 应用样式,那么 span 元素中的文本与其他文本不会任何视觉上的差异。尽管如此,上例中的 span 元素仍然为 p 元素增加了额外的结构。可以为 span 应用 id 或 class 属性,这样既可以增加适当的语义,又便于对 span 应用样式。可以对同一个 元素应用 class 或 id 属性,但是更常见的情况是只应用其中一种。这两者的主要差异是,class 用于元素组(类似的元素,或者可以理解为某一类元素),而 id 用于标识单独的唯一的元素。提示:事实上,您也许已经注意到了,W3School 站点上有一些文本的样式与其他文本是不同的。比如“提示”使用了粗体的橘红色。尽管实现这种效果的方法非常多,但是我们的做法是:使用“提示”使用 span 元素,然后对这个 span 元素的父元素,即 p 元素应用 class,这样就可以对这个类的子元素 span 应用相应的样式了。HTML:提示:. . .CSS:p.tip span font-weight:bold;color:#ff9955;6、HTML 自动跳转代码目的:延时一段时间让页面跳转到制定页面.代码如下:wenhao Test 你好,我是wenhao!重点:作用:5S后,自动跳转到凌阳教育.7、HTML 标签定义和用法 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。 标签位于文档的头部,不包含任何内容。 标签的属性定义了与文档相关联的名称/值对。HTML 与 XHTML 之间的差异在 HTML 中, 标签没有结束标签。在 XHTML 中, 标签必须被正确地关闭。提示和注释:注释: 标签永远位于 head 元素内部。注释:元数据总是以名称/值的形式被成对传递的。必需的属性DTD 指示此属性允许在哪种 DTD 中使用。S=Strict, T=Transitional, F=Frameset.属性值描述DTDcontentsome_text定义与 http-equiv 或 name 属性相关的元信息STF可选的属性DTD 指示此属性允许在哪种 DTD 中使用。S=Strict, T=Transitional, F=Frameset.属性值描述DTDhttp-equiv content-type expires refresh set-cookie 把 content 属性关联到 HTTP 头部。STFname author description keywords generator revised others 把 content 属性关联到一个名称。STFschemesome_text定义用于翻译 content 属性值的格式。STFname 属性name 属性提供了名称/值对中的名称。HTML 和 XHTML 标签都没有指定任何预先定义的 名称。通常情况下,您可以自由使用对自己和源文档的读者来说富有意义的名称。keywords 是一个经常被用到的名称。它为文档定义了一组关键字。某些搜索引擎在遇到这些关键字时,会用这些关键字对文档进行分类。类似这样的 meta 标签可能对于进入搜索引擎的索引有帮助:meta name=keywords content=HTML,ASP,PHP,SQL如果没有提供 name 属性,那么名称/值对中的名称会采用 http-equiv 属性的值。http-equiv 属性http-equiv 属性为名称/值对提供了名称。并指示服务器在发送实际的文档之前先在要传送给浏览器的 MIME 文档头部包含名称/值对。当服务器向浏览器发送文档时,会先发送许多名称/值对。虽然有些服务器会发送许多这种名称/值对,但是所有服务器都至少要发送一个:content-type:text/html。这将告诉浏览器准备接受一个 HTML 文档。使用带有 http-equiv 属性的 标签时,服务器将把名称/值对添加到发送给浏览器的内容头部。例如,添加:这样发送到浏览器的头部就应该包含:content-type: text/htmlcharset:iso-8859-1expires:31 Dec 2007当然,只有浏览器可以接受这些附加的头部字段,并能以适当的方式使用它们时,这些字段才有意义。content 属性content 属性提供了名称/值对中的值。该值可以是任何有效的字符串。content 属性始终要和 name 属性或 http-equiv 属性一起使用。scheme 属性scheme 属性用于指定要用来翻译属性值的方案。此方案应该在由 标签的 profile 属性指定的概况文件中进行了定义。标准属性dir, lang, xml:lang如需完整的描述,请访问标准属性。TIY 实例文档描述 Meta 元素中的信息可以描述 HTML 文档。 文档关键字 Meta 元素中的信息可以描述文档的关键词。 重定向 这个例子演示:在网址已经变更的情况下,将用户重定向到另外一个地址。8、html之marquee详解转自:/tuyile006/archive/2007/03/28/691329.html一个展示页面:/webclass/html/marquee.html该标签不是HTML3.2的一部分,并且只支持MSIE3以后内核,所以如果你使用非IE内核浏览器(如:Netscape)可能无法看到下面一些很有意思的效果该标签是个容器标签语法: 以下是一个最简单的例子:代码如下:Hello, World下面这两个事件经常用到:onMouseOut=this.start() :用来设置鼠标移出该区域时继续滚动onMouseOver=this.stop():用来设置鼠标移入该区域时停止滚动代码如下:onMouseOut=this.start() :用来设置鼠标移出该区域时继续滚动 onMouseOver=this.stop():用来设置鼠标移入该区域时停止滚动这是一个完整的例子:代码如下:这是一个完整的例子该标签支持的属性多达11个:align设定标签内容的对齐方式absbottom:绝对底部对齐(与g、p等字母的最下端对齐)absmiddle:绝对中央对齐baseline:底线对齐bottom:底部对齐(默认)left:左对齐middle:中间对齐right:右对齐texttop:顶线对齐top:顶部对齐代码如下:align=absbottom:绝对底部对齐(与g、p等字母的最下端对齐)。 align=absmiddle: 绝对中央对齐。 align=baseline: 底线对齐。 align=bottom: 底部对齐(默认)。 align=left: 左对齐。 align=middle: 中间对齐。 align=right: 右对齐。 align=texttop: 顶线对齐。 align=top: 顶部对齐。 behavior设定滚动的方式:alternate: 表示在两端之间来回滚动。scroll: 表示由一端滚动到另一端,会重复。slide: 表示由一端滚动到另一端,不会重复。代码如下:alternate:表示在两端之间来回滚动。 scroll:表示由一端滚动到另一端,会重复。slide: 表示由一端滚动到另一端,不会重复。bgcolor设定活动字幕的背景颜色,背景颜色可用RGB、16进制值的格式或颜色名称来设定。代码如下:设定活动字幕的背景颜色 bgcolor=#006699设定活动字幕的背景颜色 bgcolor=rgb(10%,50%,100%,)设定活动字幕的背景颜色 bgcolor=reddirection设定活动字幕的滚动方向代码如下:设定活动字幕的滚动方向direction=down:向下设定活动字幕的滚动方向direction=left:向左设定活动字幕的滚动方向direction=right:向右设定活动字幕的滚动方向direction=up:向上height设定活动字幕的高度代码如下:设定活动字幕的高度height=500width设定活动字幕的宽度代码如下:设定活动字幕的宽度width=500hspace设定活动字幕里所在的位置距离父容器水平边框的距离This controls the horizontal(水平)space around the display box.代码如下:hspace=100vspace设定活动字幕里所在的位置距离父容器垂直边框的距离This controls the vertical(垂直) space around the display box.代码如下:hspace=100loop设定滚动的次数,当loop=-1表示一直滚动下去,默认为-1代码如下:我会不停地走。 我只走两次哦scrollamount设定活动字幕的滚动速度,单位pixels代码如下:scrollamount=10 scrollamount=20 scrollamount=30 scrolldelay设定活动字幕滚动两次之间的延迟时间,单位millisecond(毫秒)值大了会有一步一停顿的效果代码如下:scrolldelay=10 scrolldelay=100scrolldelay=1000 9、使用Javascript显示时间how to use javascript show the time?code:function startTime()var today=new Date()var h=today.getHours()var m=today.getMinutes()var s=today.getSeconds()/ add a zero in front of numbers10m=checkTime(m)s=checkTime(s)document.getElementById(txt).innerHTML=h+:+m+:+st=setTimeout(startTime(),500)function checkTime(i)if (i10) i=0 + i return i10、strtok用法char * strtok ( char * string, const char * delimiters );Sequentially truncate string if delimiter is found.If string is not NULL, the function scans string for the first occurrence of any character included in delimiters. If it is found, the function overwrites the delimiter in string by a null-character and returns a pointer to the token, i.e. the part of the scanned string previous to the delimiter.After a first call to strtok, the function may be called with NULL as string parameter, and it will follow by where the last call to strtok found a delimiter.delimiters may vary from a call to another.Parameters.string Null-terminated string to scan. separator Null-terminated string containing the separators.Return Value.A pointer to the last token found in string. NULL is returned when there are no more tokens to be found.Portability.Defined in ANSI-C.Example./* strtok example */#include #include int main () char str =This is a sample string,just testing.; char * pch; printf (Splitting string %s in tokens:n,str); pch = strtok (str, ); while (pch != NULL) printf (%sn,pch); pch = strtok (NULL, ,.); return 0;Output:Splitting string This is a sample string,just testing. in tokens:Thisisasamplestringjusttesting 下面是linux下的strtok manual:-STRTOK(3) Linux Programmers Manual STRTOK(3)NAMEstrtok, strtok_r - extract tokens from stringsSYNOPSIS#include char *strtok(char *s, const char *delim);char *strtok_r(char *s, const char *delim, char *ptrptr);DESCRIPTIONA token is a nonempty string of characters not occurring in thestring delim, followed by 0 or by a character occurring in delim.The strtok() function can be used to parse the string s into tokens.The first call to strtok() should have s as its first argument. Subse-quent calls should have the first argument set to NULL. Each callreturns a pointer to the next token, or NULL when no more tokens ar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论