嵌入式CGI开发之旅——8

时间:2021-05-06 21:09:26

实验三、实现网页的重定向


重定向是说本来用户访问的是A页面,我们在A页面上放上脚本,当用户访问A页面时执行脚本将用户引导到B页面。这在很多时候是很有用的,不如用户长时间不处理,或者是一个提交页面,当用户提交的信息有效将用户引导到一个页面,当用户提交的信息无效时将用户引导到另一个提示页面。当然对用户提交信息的检测还可以通过ajax来实时监测,ajax我不懂,呵呵有时间再学习一下。


在前面使用的页面上新增加一个提交按钮,并设置其名称为redirectvalue设为“重定向”添加的代码:


1mycgictest.html


…………………


    <input type="reset" name="name_abord" id="name_abord" value="重置" />


    <label for="redirect"></label>


    <input type="submit" name="redirect" id="redirect" value="重定向" />


……………………..


对于表单中的输入域其name属性是最为重要的,一定要命名好。


再新建一个用户将跳转过去的页面:test_redirect.html


<HTML><HEAD>


<TITLE> Hello World!</TITLE>


</HEAD>


<BODY>


<H1>First PHP page</H1>


<HR>


<p>


  Hello&nbsp World!<P><img src="litterweb/images/numb/1.GIF" width="68" height="68">


</p>


</BODY></HTML>


2、修改mycgictest.c文件:


Content-Type输出前进行判断,注意在一个页面中不能既有ContentType输出,又有Location重定向或是Status错误码输出。所以这里要将重定向放到输出ContentType之前,如果放到之后就错误了。


         if(cgiFormSubmitClicked("redirect")==cgiFormSuccess){


                   cgiHeaderLocation("/test_redirect.html");


         }


    cgiHeaderContentType("text/html");


3、同样的在windows下用VS2008EP版编译通过后拷贝可执行文件到服务器bin执行目录并更改后缀名,然后在浏览器中访问mycgictest.html页面,然后点击上面的“重定向”按钮,如果浏览器跳转到指定的重定向页面说明:成功,哈哈!


4、这个实验中主要用到了cgiHeaderLocation()函数,参数为重定向的URL值,如果是服务器上的文档,只要指定相对路径就可以了。

至此相信你应该能写出一个简单的登录界面了,当然你肯定觉得界面很难看吧,不过没关系,我们在后期可以利用 CSS+DIV 的方式对页面进行排版和美化,这样将页面显示内容和显示方式分隔开来的好处是显而易见的,首先它可以减轻编程工作量,你总不想在 C 中用 printf 一句句的输出 HTML 标签及其属性吧?其次如果只是更改页面的哦样式而不更改内容的话我们只要简单的哦更改 CSS 就可以了,这同样能缩短开发周期和减小工作量哦!当然一个安全和完善的登录界面还有可能和数据库以及 JS 验证结合起来,这个到后面来学习,这里先学习基本的 CGIC 的操作。