关于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> 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> 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> 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