《卓音工作室php+mysql学习diy实例进阶》由会员分享,可在线阅读,更多相关《卓音工作室php+mysql学习diy实例进阶(55页珍藏版)》请在金锄头文库上搜索。
1、卓音工作室卓音工作室 PHP+Mysql 学习学习 DIY 实例进阶实例进阶写在前面的话:本文适用于已经熟练掌握 Mysql 和部分 PHP 的初学者,作为编 程的练习作业,通过实例逐步的循序渐进的提高编程水平,前 3 个例子为详细 讲解,后 8 个例子仅仅给出提示和参考。 一、注册表单确认 1、功能说明 实现网页表单信息的确认 表单元素包括姓名(单行文本框) 、密码(密码文本) 、性别(单选) 、自我介 绍(多行文本) 、爱好(多选)等 2、提示与流程简述 首先制作表单页面,项目如下按“提交”后由另外一页来处理结果3、技术关键 本练习主要是实现变量在两个页面中传递的问题,这需要在第一个页面的
2、 form 中设置成其中 act.php 为第二个页 面的文件名称,意思是告诉浏览器这个表单由 act.php 来处理。POST 提交方式与 GET 提交方式的区别在于,GET 方式通过地址栏传递变量值,有长度限制而且不能传递特殊字符 变量传递的关键在于明白表单元素的 name 属性和变量名称之间的关系,如 姓名的文本框属性如下,则添入这个文本 框的内容,在第二个页面用变量$username 就可以接收。 密码框在于 中的 type 属性 多选框的变量接收,在第二页 用如下代码判断 单选分组,只要 name 相同的就是一组,一组里只能有一 个被选择,传递到第二页的值就是被选中的那个单选框的值,
3、他的判断和多选 框大同小异。 全局变量指的是在多个页面都存在的变量,局部变量指的是只在一个页面存 在的变量,比如上面的例子中第一页的文本框 username 在第二页还是存在的用 $username 可以接受到其值。如果发现变量无法传递,请检查 php.ini 看看 register_globals = On 还是 register_globals = Off 如果是 Off 则说明,所有的变量 默认都不是全局变量,这样只能用函数来实现变量的传递,所以本文所有的例 子都是在 register_globals = On 下,请改动你的 php.ini。 4、参考 HTML 文档中的表单(见 pe
4、r 目录) PHP 教程中关于 if 语句的部分二、例子一的进阶练习 1、功能说明 实现第二个页面中变量的再次传递 在第二个页面实现让使用者是否继续的功能 在第一个页面实现对爱好简单的介绍 2、提示与流程简述 第二个页面要修改为如果点“正确继续”则转到第三个页面如果点错误修改则返回第一个页面如果点“文学”或者“体育”等连接到达同一个页面,但是根据你点的内容 不同介绍也不相同3、技术关键 隐藏域的相关知识。在第二页面(act.php)实际是有一个表单,但是大家发 现这个表单只有一个按纽作为表单元素,那变量是怎么传递到第三页的呢?用 隐藏域,隐藏域是特殊的表单元素,他特殊就在于他不在浏览器显示,但
5、是用 法却和文本框等表单元素一样。关键代码如下:(act.php 部分代码)姓名:;“ 爱好:;“ 关于“错误修改”的问题,可以简单的用来解决,但是这样 的缺点是显而易见的,就是表单全部被清空了,怎么样保留刚才填写的内容呢? 使用在客户端运行的 javascript 来实现,代码如下:错误修改 他是作用和点浏览器上的“后退”按扭是一样的,出于安全考虑,后退以后的 密码狂会被清除干净。 关于同一个页面根据连接不同给出不同的结果。这就是使用 GET 传递变量的 地方了,在第一个页面中我们把“文学” “体育” “娱乐”分别加上超级连接, 但是稍微有些差别。 文学 体育 娱乐 在 URL 的后面加上?
6、后面是被传递的变量和值的列表,多个变量用“ break; case “体育“: $info=“体育是关于运动的学问“; break; default: $info=“不能判断你输入的是什么“; break; Echo “关于”.$type.”的介绍”.$info; 通过点击连接把 type 的值传递到了 info.php,此页面用 swith 语句来判断 type 的值然后给出相应的处理方法。 4、参考 PHP 教程的 swith 语句 常用的 javascript 客户端程序三、把注册信息加入到 mysql 中 1、功能说明 实现表单内容插入到数据库中 实现 cookie 判断是否登陆功能
7、2、提示与流程简述 首页面 index.php注册页面(reg.htm)注册结果(reg.php)登陆结果(login.php) 密码出入错误给出提示登陆成功自动转到首页 index.php3、技术关键 关于对数据库的插入,查询,更新操作 Reg.php 中,需要把验证后的数据插入到数据库 test 的 user 表中 表的结构 Idint 5 位 自动增长 主键(KEY) AccountVchar 20 位 用户名 pswdVchar 20 位 密码 regdateVchar 10 位 注册日期 timesInt 5 位 登陆次数 关键的代码如下: if ($password=$repass
8、word and strlen($account)1 and strlen($password)1) /数据库服务器 $mysdb_connect_db=“localhost“; /数据库用户名 $mysdb_connect_user=“join“; /数据库口令 $mysdb_connect_password=“joiner“; /连接数据库 mysql_connect($mysdb_connect_db,$mysdb_connect_user,$mysdb_connect_passwo rd); $result=mysql_db_query(“test“,“select account f
9、rom user where account=$account“); $row=mysql_fetch_array($result); if(mysql_num_rows($result)=0) $dd=date(“Y-m-d“);/设置日期 $query=“insert into user (account,password,regdate,click) values($account,$password,$dd,0)“; mysql_db_query(“test“,$query);/插入新的记录 echo $account.“你好,你已经成功的注册!“; else echo “该用户名已经
10、被其他人注册过了“; else echo “两次密码不符合或者用户名、密码没在 020 之间“; 关于 login.php 判断密码是否正确并更新登陆次数 /数据库服务器 $mysdb_connect_db=“localhost“; /数据库用户名 $mysdb_connect_user=“join“; /数据库口令 $mysdb_connect_password=“joiner“; /连接数据库 mysql_connect($mysdb_connect_db,$mysdb_connect_user,$mysdb_connect_passwo rd); $query=“select * fro
11、m user where account=$accountand password=$password“; /判断密码是否正确 (记录查询) $result=mysql_db_query(“test“,$query); $num=mysql_num_rows($result); $row=mysql_fetch_array($result); if ($num=1) /如果正确 setcookie(username,$row“account“);/传递 cookie $times=$row“times“+1; $query=“update user set times=$timewhere u
12、sername=$account“; /更新登陆次数 (记录更新) mysql_db_query(“test“,$query); header(“location:index.php“);/转向到 index.php 关于 index.php 判断是否登陆 if ($username!=“) /判断 cookie 是否为空值 /数据库服务器 $mysdb_connect_db=“localhost“; /数据库用户名 $mysdb_connect_user=“join“; /数据库口令 $mysdb_connect_password=“joiner“; /连接数据库 mysql_connect
13、($mysdb_connect_db,$mysdb_connect_user,$mysdb_connect_passwo rd); $query=“select * from user where account=$username“; /根据 cookie 查询记录 (记录查询)$result=mysql_db_query(“test“,$query); $row=mysql_fetch_array($result); $info= $account.“你好,你已经登陆,从“.$row“regdate“.“你已经登陆了 “.$row“time“.“次“; else $info=“你还没有登陆
14、“; echo “登陆状态:“.$info; 4、参考 工作室的一些简单的数据库查询的例子,熟悉多种数据库查询、更新、添加 (删除)的操作。 PHP 的相关知识 strlen() setcookie() header()等用法 数组变量的含义和功能四、简单的新闻发布系统 实现的功能 1、首页显示新闻的标题和发布时间 2、点新闻标题可以查看新闻的内容、新闻的点击次数 3、首页可以登陆到后台的控制面板首页,控制面板首页列出新闻标题,点可以 查看新闻内容,每条新闻后面都有 删除 和 更新的连接 点完后可以实现删 除和更新新闻的功能 4、控制面板首页可以实现添加新闻的功能 参考与提示 1、PHP 中的
15、 while 结构 Select * from 新闻表 . While(记录还存在) 显示记录 2、别忘了前面的例子中关于 GET 的灵活运用 . 第 23 号新闻的标题 在 Show.php 页面里 . 查找数据 where id=23 如果找到了 显示 记录 如果没有 该新闻不存在 3、关于更新新闻内容 第 23 号新闻的标题删除更新 Update.php 中 查找数据 where id=23 如果找到了 显示 “ 4、安全的问题,插入新闻、更新新闻、删除新闻都要判断一下 cookie 存在与 否,要不然谁都可以更改新闻了。 五、复杂的新闻发布系统 实现的功能 1、新闻分页显示 2、加入新闻搜索功能3、每条新闻显示内容的页面都加上“我来评论”和“推荐到其他人”功能,并 列出最近 5 条的评论。4、发布新闻时处理好新闻内容中回车换行和空格的问题。 参考与提示 1、PHP 相关 ceil()分页时可能使用 str_replace()替换回车和空格可能使用 mail()发信时使用 rand()随即生成评论者 ID 使用 2、关于分页查询 $sqlcount=“select count(*) f