web典型应用

关于web 典型应用;

此处是以传智的论坛为模板写的项目;具有注册用户,登录,发帖,回复等功能;

第一个功能的实现:用户的注册

先是创建MySQL数据表:

1 create table user(
2     user_id int unsigned primary key auto_increment comment ‘主键ID‘,
3     user_name varchar(20) not null unique key comment ‘用户名‘,
4     user_password char(32) not null comment ‘用户密码‘
5 );

查看表结构:

然后再根目录下创建目录文件:

 1 <?php
 2 /**
 3  * 项目初始化文件;
 4  */
 5
 6 //1.设置响应头(设置文字编码)
 7 header("Content-type:text/html;charset=utf-8");
 8 //定义常量目录;
 9 //定义根目录常量;
10 define("DIR_ROOT", str_replace(‘\\‘,‘/‘,__DIR__).‘/‘);
11 //定义配置文件目录常量;
12 define("DIR_CONFIG", DIR_ROOT.‘config/‘);
13 //定义核心文件目录常量;
14 define("DIR_CORE",DIR_ROOT.‘core/‘);
15 //定义逻辑处理目录常量;
16 define("DIR_MODEL",DIR_ROOT.‘model/‘);
17 //定义模板文件目录常量;
18 define("DIR_VIEW",DIR_ROOT.‘view/‘);
19 //定义公开文件目录常量;
20 define("DIR_PUBLIC",‘/public‘);

加载初始视图文件index.php

1 <?php
2 //1,加载项目初始化文件;
3 include ‘./init.php‘;
4
5 //2.加载视图文件;
6 include DIR_VIEW.‘index.html‘;

编写index.html文件:

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn">
  3 <head>
  4     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
  5     <title>传智播客论坛_首页</title>
  6     <meta name="keywords" content="关键字列表" />
  7     <meta name="description" content="网页描述" />
  8     <link rel="stylesheet" type="text/css" href="<?php echo DIR_PUBLIC;?>/css/public.css" />
  9     <link rel="stylesheet" type="text/css" href="<?php echo DIR_PUBLIC;?>/css/index.css" />
 10     <style type="text/css"></style>
 11     <script type="text/javascript"></script>
 12 </head>
 13 <body>
 14     <div class="header_wrap">
 15         <div id="header" class="auto">
 16             <div class="logo">itcast</div>
 17             <div class="nav">
 18                 <a class="hover">首页</a>
 19             </div>
 20             <div class="serarch">
 21                 <form>
 22                     <input class="keyword" type="text" name="keyword" placeholder="搜索其实很简单" />
 23                     <input class="submit" type="submit" name="submit" value="" />
 24                 </form>
 25             </div>
 26             <div class="login">
 27                 <a>登录</a>&nbsp;
 28                 <a href = "./model/register.php">注册</a>
 29             </div>
 30         </div>
 31     </div>
 32     <div style="margin-top:55px;"></div>
 33     <div id="hot" class="auto">
 34         <div class="title">学院消息</div>
 35         <ul class="newslist">
 36             <!-- 20条 -->
 37             <li><a href="#">[PHP培训]</a> <a href="#">PHP16期基础班:微笑传递温暖</a></li>
 38             <li><a href="#">[Java培训]</a> <a href="#">2015年最后一班高薪直通车启动</a></li>
 39             <li><a href="#">[Android培训]</a> <a href="#">6期两个男生也公主抱?这画面..</a></li>
 40             <li><a href="#">[网页培训]</a> <a href="#">燃烧吧青春!火热上线—网页22期</a></li>
 41             <li><a href="#">[网络营销培训]</a> <a href="#">网络营销学院,3月强势进驻广州</a></li>
 42             <li><a href="#">[Android培训]</a> <a href="#">安卓5期就业班热闹开班典礼</a></li>
 43             <li><a href="#">[PHP培训]</a> <a href="#">探知广州入冬失败的原因—PHP15期</a></li>
 44             <li><a href="#">[网页培训]</a> <a href="#">颜值爆表的网页班开学啦,女神在这</a></li>
 45             <li><a href="#">[PHP培训]</a> <a href="#">PHP16期基础班:微笑传递温暖</a></li>
 46             <li><a href="#">[Java培训]</a> <a href="#">2015年最后一班高薪直通车启动</a></li>
 47             <li><a href="#">[Android培训]</a> <a href="#">6期两个男生也公主抱?这画面..</a></li>
 48             <li><a href="#">[网页培训]</a> <a href="#">燃烧吧青春!火热上线—网页22期</a></li>
 49             <li><a href="#">[网络营销培训]</a> <a href="#">网络营销学院,3月强势进驻广州</a></li>
 50             <li><a href="#">[Android培训]</a> <a href="#">安卓5期就业班热闹开班典礼</a></li>
 51             <li><a href="#">[PHP培训]</a> <a href="#">探知广州入冬失败的原因—PHP15期</a></li>
 52             <li><a href="#">[网页培训]</a> <a href="#">颜值爆表的网页班开学啦,女神在这</a></li>
 53         </ul>
 54         <div style="clear:both;"></div>
 55     </div>
 56     <div class="box auto">
 57         <div class="title">
 58             国际足球
 59         </div>
 60         <div class="classList">
 61             <div style="padding:10px 0;">暂无子版块...</div>
 62         </div>
 63     </div>
 64     <div class="box auto">
 65         <div class="title">
 66             CBA
 67         </div>
 68         <div class="classList">
 69             <div style="padding:10px 0;">暂无子版块...</div>
 70             <div style="clear:both;"></div>
 71         </div>
 72     </div>
 73     <div class="box auto">
 74         <div class="title">
 75             NBA
 76         </div>
 77         <div class="classList">
 78             <div class="childBox new">
 79                 <h2><a href="#">A队</a> <span>(今日38)</span></h2>
 80                 帖子:1939539<br />
 81             </div>
 82             <div class="childBox old">
 83                 <h2><a href="#">B队</a> <span>(今日38)</span></h2>
 84                 帖子:1939539<br />
 85             </div>
 86             <div class="childBox lock">
 87                 <h2><a href="#">C队</a> <span>(今日38)</span></h2>
 88                 帖子:1939539<br />
 89             </div>
 90             <div class="childBox new">
 91                 <h2><a href="#">D队</a> <span>(今日38)</span></h2>
 92                 帖子:1939539<br />
 93             </div>
 94             <div style="clear:both;"></div>
 95         </div>
 96     </div>
 97     <div id="footer" class="auto">
 98         <div class="bottom">
 99             <a>传智播客</a>
100         </div>
101         <div class="copyright">Powered by itcast ?2015 itcast.cn</div>
102     </div>
103 </body>
104 </html>

效果如图:

创建register.php文件

用于加载视图文件;

1 <?php
2 //1加载项目初始化文件;
3 include ‘../init.php‘;
4
5 //2.加载视图文件;
6 include DIR_VIEW .‘register.html‘;

编写register.html文件:

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn">
 3 <head>
 4     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
 5     <title>传智播客论坛_注册页</title>
 6     <meta name="keywords" content="关键字列表" />
 7     <meta name="description" content="网页描述" />
 8     <link rel="stylesheet" type="text/css" href="<?php echo DIR_PUBLIC; ?>/css/public.css" />
 9     <link rel="stylesheet" type="text/css" href="<?php echo DIR_PUBLIC; ?>/css/register.css" />
10     <style type="text/css"></style>
11     <script type="text/javascript"></script>
12 </head>
13 <body>
14     <div class="header_wrap">
15         <div id="header" class="auto">
16             <div class="logo">itcast</div>
17             <div class="nav">
18                 <a class="hover">首页</a>
19                 <a>新帖</a>
20                 <a>话题</a>
21             </div>
22             <div class="serarch">
23                 <form>
24                     <input class="keyword" type="text" name="keyword" placeholder="搜索其实很简单" />
25                     <input class="submit" type="submit" name="submit" value="" />
26                 </form>
27             </div>
28             <div class="login">
29                 <a>登录</a>&nbsp;
30                 <a>注册</a>
31             </div>
32         </div>
33     </div>
34     <div style="margin-top:55px;"></div>
35     <div id="register" class="auto">
36         <h2>欢迎注册成为 传智播客BBS论坛会员</h2>
37         <form action = ‘register_deal.php‘ method="POST">
38             <label>用户名:<input type="text"  name="user_name" /><span>*6-10位,请使用英文字母、数字</span></label>
39             <label>密码:<input type="password"  name = "user_password1" /><span>*6-10位,请使用英文字母、数字,注意区分大小写</span></label>
40             <label>确认密码:<input type="password" name = "user_password2" /><span>*两次输入的密码必须一致</span></label>
41             <label>验证码:<input name="vcode" type="text"  /><span>*请输入下方验证码</span></label>
42             <img class="vcode" src="<?php echo DIR_PUBLIC;?>/image/show_code.php.jpg" />
43             <div style="clear:both;"></div>
44             <input class="btn" type="submit" value="确定注册" />
45         </form>
46     </div>
47     <div id="footer" class="auto">
48         <div class="bottom">
49             <a>传智播客</a>
50         </div>
51         <div class="copyright">Powered by itcast ?2015 itcast.cn</div>
52     </div>
53 </body>
54 </html>

当用户点击了注册按钮之后就跳转到以下的界面:

完善regiser.html中的注册表;

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn">
 3 <head>
 4     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
 5     <title>传智播客论坛_注册页</title>
 6     <meta name="keywords" content="关键字列表" />
 7     <meta name="description" content="网页描述" />
 8     <link rel="stylesheet" type="text/css" href="<?php echo DIR_PUBLIC; ?>/css/public.css" />
 9     <link rel="stylesheet" type="text/css" href="<?php echo DIR_PUBLIC; ?>/css/register.css" />
10     <style type="text/css"></style>
11     <script type="text/javascript"></script>
12 </head>
13 <body>
14     <div class="header_wrap">
15         <div id="header" class="auto">
16             <div class="logo">itcast</div>
17             <div class="nav">
18                 <a class="hover">首页</a>
19                 <a>新帖</a>
20                 <a>话题</a>
21             </div>
22             <div class="serarch">
23                 <form>
24                     <input class="keyword" type="text" name="keyword" placeholder="搜索其实很简单" />
25                     <input class="submit" type="submit" name="submit" value="" />
26                 </form>
27             </div>
28             <div class="login">
29                 <a>登录</a>&nbsp;
30                 <a>注册</a>
31             </div>
32         </div>
33     </div>
34     <div style="margin-top:55px;"></div>
35     <div id="register" class="auto">
36         <h2>欢迎注册成为 传智播客BBS论坛会员</h2>
37         <form action = ‘register_deal.php‘ method="POST">
38             <label>用户名:<input type="text"  name="user_name" /><span>*6-10位,请使用英文字母、数字</span></label>
39             <label>密码:<input type="password"  name = "user_password1" /><span>*6-10位,请使用英文字母、数字,注意区分大小写</span></label>
40             <label>确认密码:<input type="password" name = "user_password2" /><span>*两次输入的密码必须一致</span></label>
41             <label>验证码:<input name="vcode" type="text"  /><span>*请输入下方验证码</span></label>
42             <img class="vcode" src="<?php echo DIR_PUBLIC;?>/image/show_code.php.jpg" />
43             <div style="clear:both;"></div>
44             <input class="btn" type="submit" value="确定注册" />
45         </form>
46     </div>
47     <div id="footer" class="auto">
48         <div class="bottom">
49             <a>传智播客</a>
50         </div>
51         <div class="copyright">Powered by itcast ?2015 itcast.cn</div>
52     </div>
53 </body>
54 </html>

编写regiser_deal.php

 1 <?php
 2 //1.加载项目初始化文件;
 3 include ‘../init.php‘;
 4
 5 //2.链接数据库;
 6 /*$link = mysql_connect(‘localhost:3306‘,‘root‘,‘admin‘);
 7 mysql_query(‘set names utf8‘);
 8 mysql_query(‘use bbs‘);*/
 9 include DIR_CORE . ‘MYSQLDB.php‘;
10
11 //3.接收数据;
12 $user_name = trim($_POST[‘user_name‘]);
13 $user_password1 = trim($_POST[‘user_password1‘]);
14 $user_password2 = trim($_POST[‘user_password2‘]);
15 $vcode = trim($_POST[‘vcode‘]);
16
17 //4.判断数据合法性;
18 //判断用户名和密码是否为空;
19 if(empty($user_name)||empty($user_password1)|| empty($user_password2)){
20     //用户名非法,跳转;
21     //header(‘refresh:2;url = ./register.php‘);
22     //die(‘用户名或密码不能为空!请你重新注册!‘);
23     jump(‘./register.php‘,‘用户名或密码不能为空!请你重新注册!‘);
24 }
25 //判断用户名的长度;
26 if(strlen($user_name) < 6 || strlen($user_name) > 16){
27     //header(‘refresh:2;url = ./register.php‘);
28     //die(‘用户名在6到10位之间!请你重新注册!‘);
29     jump(‘./register.php‘,‘用户名在6到10位之间!请你重新注册!‘);
30 }
31 //判断两次数据的密码是否一致
32 if ($user_password1 !== $user_password2) {
33     //非法跳转;
34     //header(‘refresh:2;url=./register.php‘);
35     //die(‘两次密码输入的不一致!请你重新注册!‘);
36     jump(‘./register.php‘,‘两次密码输入的不一致!请你重新注册!‘);
37 }
38 //判断密码长度;
39 if(strlen($user_password1) < 6 || strlen($user_password1) >16){
40     //header(‘refresh:2;url =./register.php‘);
41     //die(‘密码在6到10位之间!,请你重新注册!‘);
42     jump(‘./register.php‘,‘密码在6到10位之间!,请你重新注册!‘);
43 }
44 //判断用户是否存在;
45 $sql = "select * from user where user_name=‘$user_name‘";
46 mysql_query($sql);
47 if (mysql_affected_rows() >0 ) {
48     # code...
49     //header("refresh:2;url=./reguster.php");
50     //die("你输入的用户名已经存在!请你重新注册!");
51     jump(‘./register.php‘,‘你输入的用户名已经存在!请你重新注册!‘);
52 }
53 //数据入库;
54 $user_password = md5($user_password1);
55 $sql = "insert into user values(null,‘$user_name‘,‘$user_password‘)";
56 //执行;
57 $result = mysql_query($sql);
58 if ($result) {
59     # code...
60     //header("refresh:2;url=./login.php");
61     //die("注册成功,2秒后跳转到登录界面!");
62     jump(‘./login.php‘,‘注册成功,2秒后跳转到登录界面!‘);
63 }else{
64     //入库失败;
65     //header("refresh:2;url=./login.php");
66     //die(‘发生未知错误注册失败!‘);
67     jump(‘./login.php‘,‘注册失败,2秒后跳转到登录界面!‘);
68 }

以下是我注册之后数据库表中的信息:

以上就是实现了注册用户的具体功能;

时间: 2024-10-06 01:14:37

web典型应用的相关文章

web典型理论题整理JS部分

1.JS的两大支柱函数式编程和基于原型的面向对象编程2.什么是闭包?作用和好处是什么?与普通函数的区别?闭包:由外部定义的内部函数,有权访问另一个函数作用域中的变量.闭包的作用和好处:闭包给访问外部函数定义的内部变量创造了条件.也将关于函数的一切封闭到了函数内部,减少了全局变量.与普通函数的区别:普通函数也能曝光内部的值,但是占用的内存无法释放且函数使用的变量定义到了函数外部不便于理解和管理. 函数每次执行时都会且只会初始化其内部变量,导致了闭包与普通函数的最大区别. 每次调用普通函数时他内部都

PHP中WEB典型应用技术

主要讲5个方面: PHP与web页面的交互:表单传值,文件的上传与下载 http协议 PHP的会话技术:cookie和session PHP的图像技术:GD库,图像的常见的制作和操作,验证码,二维码,水印.缩略图,3D图等等 文件操作:打开.关闭.读取文件.写入文件,遍历目录等 一.PHP与web页面的交互:表单传值,文件的上传与下载 1.表单传值 1.1.单选框 single.html <!DOCTYPE html> <html> <head>     <tit

web典型理论题整理HTML+CSS部分

1.css选择符有哪些?属性继承?优先级算法如何计算?css3新增伪类有哪些?css选择符:id选择器(# myid).类选择器(.myclassname).标签选择器(div, h1, p).相邻选择器(h1 + p).子选择器(ul > li).后代选择器(li a).通配符选择器( * ).属性选择器(a[rel = "external"]).伪类选择器(a: hover, li:nth-child)可继承样式:font-size.font-family.color.tex

web典型应用2

项目应用三:定义项目初始化文件和入口 项目应用四:完成注册功能 项目应用五:封装数据库连接文件 项目应用六:完成登录功能      ==判断数据的合法性,密码和用户名的空值,或者用户名不存在或密码不正确 项目应用七:完成发帖功能      ==接收数据,判断数据的合法性,合法就入库,跳转到帖子列表页 项目应用八:完成帖子的列表页 项目应用九:完成帖子的内容页    完善浏览次数 项目应用十:完善回复帖子的功能 ==点击回复后要接收数据,判断数据的合法性,合法就入库,跳转到show.php中显示回

web服务器/cgi/html/css/js

随着Internet技术的兴起,在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S架构,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理和监控,非常方便实用.本节主要介绍这种应用的开发和移植工作. Web 典型的嵌入式Web服务器有Boa (www.boa.org)和thttpd (http://www.acme.com/software/thttpd/)等,

发个典型的移动web头部

<meta charset="utf-8"> <title>美食杰移动版</title> <meta name="keywords" content="美食,美食网,菜谱,菜谱网,美食地图,食谱,食谱网,特色食谱,特色美食,美食大全家常菜谱,菜谱大全"> <meta name="description" content="美食杰 - 中国最优质的美食,食谱,菜谱网

Web前端面试题目及答案汇总

前端新人在面试前都比较焦虑,担心回答不上面试官的问题,也担心自己紧张,其实这都是心理没底的表现,今天和大家分享web前端开发常见面试题及答案,希望可以帮助即将面试的前端同学顺利通过面试. HTML/CSS部分 1.什么是盒子模型? 在网页中,一个元素占有空间的大小由几个部分构成,其中包括元素的内容(content),元素的内边距(padding),元素的边框(border),元素的外边距(margin)四个部分.这四个部分占有的空间中,有的部分可以显示相应的内容,而有的部分只用来分隔相邻的区域或

响应式web设计与CSS3媒体查询

在之前一篇译文中,我们了解了响应式Web设计的概念.组成要素以及基本的实现思路.今天继续相关话题,我们将从前文介绍过的"弹性布局结构"这方面出发,通过一个具体的实例来深入学习. 如今的屏幕分辨率,小至320px(iPhone),大到2560px甚至更高(大显示器),变化范围极大.除了使用传统的台式机,用户会越来越多的通过手机.上网本.iPad一类的平板设备来浏览页面.这种情况下,固定宽度的设计方案将会显得越发不合理.页面需要有更好的适应性,其布局结构要做到根据不同的设备及屏幕分辨率进行

Web 服务编程,REST 与 SOAP

REST 简介 在开始我们的正式讨论之前,让我们简单看一下 REST 的定义. REST(Representational State Transfer)是 Roy Fielding 提出的一个描述互联系统架构风格的名词.为什么称为 REST?Web 本质上由各种各样的资源组成,资源由 URI 唯一标识.浏览器(或者任何其它类似于浏览器的应用程序)将展示出该资源的一种表现方式,或者一种表现状态.如果用户在该页面中定向到指向其它资源的链接,则将访问该资源,并表现出它的状态.这意味着客户端应用程序随