php网站设计窍门,php网站设计思路案例-金沙1005

php网站设计窍门,php网站设计思路案例_php设计网站本文是对《phpandmysqlwebdevelopment》第5版27章中项目的总结。1.分析所需功能列出主要功能模块:登录、注册、忘记密码、重设密码、登出、书签浏览、书签增加、书签删除、书签推荐确定模块之间的先后转移关系:2.分解所需模块将模块的逻辑和内容分开:内容写在function_form.php中逻辑写在function.php中设置专门文件用于:连接数据库输入数据检验用户…

本文是对《php and mysql web development》 第5版27章中项目的总结。

1.分析所需功能

列出主要功能模块:登录、注册、忘记密码、重设密码、登出、书签浏览、书签增加、书签删除、书签推荐

确定模块之间的先后转移关系:

eb3a9e7a50c39de9eb66bb8838a9d143.png

2.分解所需模块

将模块的逻辑和内容分开:

内容写在function_form.php中

逻辑写在function.php中

设置专门文件用于:

连接数据库

输入数据检验

用户身份验证

浏览器输出

该项目所有文件可以分为以下几类:

1.数据定义文件:bookmarks.sql

用于建立所需数据库和数据表。

2.数据库连接文件:db_fns.php

用于连接数据库。保存着数据库用户的用户名和密码。

3.输入数据检验文件:user_auth_fns.php

用于检验输入数据。检验post变量的值是否为空,email输入是否合法。

4.用户身份验证文件:user_auth_fns.php

用于验证用户是否能够注册、登录、修改密码、重设密码,以及用户是否已经登录。

由多个相应功能的函数组成,函数接收参数,连接数据库进行查询,返回查询结果或抛出异常。

5.书签操作文件:url_fns.php

用于对书签url进行查询、增加、删除与推荐。功能实现方法与上一类相似。

6.浏览器输出文件:output_fns.php

用于显示所有种类的浏览器输出:

网页名称、页内标题、各种表单、页内url、网站信息、用户菜单、页尾。

每个函数实现一个种类部位的浏览器输出,函数根据需要可以接收参数,在html中插入php显示,也可以通过php输出html元素。

7.包含常被引用文件集的文件:bookmark_fns.php

8.9.表单文件及对应的逻辑处理文件

表单文件

login.php

change_passwd_form.php

register_form.php

forgot_form.php

add_bm_form.php

逻辑处理文件

member.php

change_passwd.php

register_new.php

forgot_passwd.php

add_bms.php

其它逻辑处理文件:

delete_bms.php、recommend.php

logout.php

表单文件的特点:

1.包含对bookmark_fns.php中output_fns.php文件中函数的引用(即一些浏览器输出函数)

2.对于登录后才能填写的表单,包含会话开始函数session_start()和检验用户是否已注册会话函数check_valid_user()。

逻辑处理文件的特点: 处理表单提交的数据

1.包含对bookmark_fns.php中output_fns.php文件中函数的引用(即一些浏览器输出函数)

2.包含会话开始函数session_start()。

3.接收post变量的信息。

4.对表单是否填满、输入是否合法进行判断。

5.继而调用用户身份验证函数,如果验证通过,则显示相关信息。

6.捕捉所有抛出的异常,合理的显示在浏览器上。

3.主要模块关键思路

1.数据库连接模块:

连接数据库,返回mysqli对象。

function db_connect() {

$db = new mysqli(‘localhost’, ‘username’, ‘password’, ‘database’);

if (!$db) {

throw new exception(“could not connect to database server”);

}else {

return $db;

}

}

2.输入数据检验模块:

//检验每个变量都有一个值

function filled_out($form_vars) {

foreach ($form_vars as $key => $value) {

if ((!isset($key)) || ($value == ”)) {

return false;

}

}

return true;

}

//检验email

function valid_email($address) {

if(preg_match(‘/^[a-za-z0-9_\.\-] @[a-za-z0-9\-] \.[a-za-z0-9\-\.] $/’, $address)) {

return true;

} else {

return false;

}

}

3.用户身份验证模块:

先连接数据库,然后执行查询语句(最好使用参数化查询方法),根据查询结果返回相应的值。

function login($username, $password) {

$conn = db_connect();

$results = $conn -> query(“select * from user where username = ‘”.$username.”‘ and passwd = sha1(‘”.$password.”‘)”);

if (!$results) {

throw new exception(‘could not log you in.’);

}

if ($results -> num_rows > 0) {

return true;

} else {

throw new exception(‘could not log you in.’);

}

}

4.登入登出模块:

//登入成功,设置session

$_session[‘valid_user’] = $username;

//登出,先保存用户名,再注销,通过判断用户名是否存在给出不同提示

$old_user = $_session[‘valid_user’];

unset($_session[‘valid_user’]);

$result_dest = session_destroy();

if (!empty($old_user)) {

if ($result_dest) {

echo ‘logged out.

‘;

}else {

echo ‘could not log you out.

‘;

}

}else {

echo ‘you are not logged in ,so have not been logged out.

‘;

}

5.url推荐模块的sql语句:

如果两个用户收藏了相同的url,那么可能他们有相似的爱好,就可以把其中一个用户收藏的其它url推荐给另一个用户。

bookmark数据表一共有两列,bm_url和username。

$query = “select bm_url

from bookmark

where username in

(select distinct(b2.username)

from bookmark b1, bookmark b2

where b1.bm_url = b2.bm_url

and b1.username != b2.username

and b1.username = ‘”.$valid_user.”‘)

and bm_url not in

(select bm_url

from bookmark

where b1.username = ‘”.$valid_user.”‘)

group by bm_url

having count(bm_url)>”.$popularity;

js555888金沙老品牌的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/141638.html

(0)

相关推荐

  • php hscan,hgetall 替代 hscan的用法详解。「建议收藏」众所周知hgetall如果遇到redis中的bigkey会造成慢查,严重的甚至直接卡死redis服务进程。redis提供了hscan的替代方案。本例使用yield协程。来实现对hscankey的遍历。下面是错误的示例,原因cursor无法进行递进,这是个大坑。所以改造下functionhscankey($key,$count=5,$pattern=’*’){$curs…

  • pjsip gb28181_gib gb下载地址livegbsgb28181国标方案安装使用说明服务资源服务架构服务说明安装包windows平台使用的安装包:livecms-windows-***.ziplivesms-windows-***.ziplinux平台使用的安装包:livecms-linux-***.tar.gzlivesms-linux-***.tar.gz信令服务livecmssip中心信令服务,单节点,自带一…

    2022年11月26日
  • php技术栈有哪些_php数据结构一、栈的定义及知识 1.定义:栈又称为栈或者堆叠,是计算机科学中的一种特殊的串列形式的抽象数据类型,特殊之处在于只允许在链表或者数组的一端(堆栈顶端指针,又称 "top")加入数据

  • php如何自定义一个方法在php中可以通过【function foo($arg_1, $arg_2, /* …, */ $arg_n){echo “example function.
    “;return $retval;}】形式定义一个方法。

  • php怎么根据key删除数组元素php根据key删除数组元素的方法:首先根据key使用array_keys()函数和array_search()函数查找要删除元素的开始位置x;然后使用“array_splice(数组, x, 1);”来删除指定数组元素即可。

  • php运行乱码怎么办_php连接sql数据库mssql php乱码的解决办法:1、修改php.ini文件,设置utf-8编码;2、通过iconv函数进行编码转换;3、利用ado连接在连接时设置编码;4、添加meta属性“”。

  • php 转换为字符串_php中define()函数的参数php转换decimal的方法:1、创建一个php示例文件;2、使用“float floatval ( mixed $var )”方式进行转换即可。

  • php删除指定元素的方法「建议收藏」php删除指定元素的方法:1、使用“array_splice()”删除指定元素即特定值,并且数组的索引值发生变化;2、使用“unset”函数删除特定值,但数组的索引值没有变化。

发表回复

您的电子邮箱地址不会被公开。

联系金沙1005

关注“java架构师必看”公众号

回复4,添加站长微信。

附言:ispacesoft.com网而来。

关注微信
网站地图