日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP网站设计思路

發(fā)布時間:2023/12/10 php 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP网站设计思路 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文是對《PHP and MySQL Web Development》 第5版27章中項目的總結(jié)。

1.分析所需功能

列出主要功能模塊:登錄、注冊、忘記密碼、重設密碼、登出、書簽瀏覽、書簽增加、書簽刪除、書簽推薦

確定模塊之間的先后轉(zhuǎn)移關系:

2.分解所需模塊

將模塊的邏輯和內(nèi)容分開:

  • 內(nèi)容寫在function_form.php中
  • 邏輯寫在function.php中

設置專門文件用于:

  • 連接數(shù)據(jù)庫
  • 輸入數(shù)據(jù)檢驗
  • 用戶身份驗證
  • 瀏覽器輸出

該項目所有文件可以分為以下幾類:

1.數(shù)據(jù)定義文件:bookmarks.sql

用于建立所需數(shù)據(jù)庫和數(shù)據(jù)表。

2.數(shù)據(jù)庫連接文件:db_fns.php

用于連接數(shù)據(jù)庫。保存著數(shù)據(jù)庫用戶的用戶名和密碼。

3.輸入數(shù)據(jù)檢驗文件:user_auth_fns.php

用于檢驗輸入數(shù)據(jù)。檢驗POST變量的值是否為空,email輸入是否合法。

4.用戶身份驗證文件:user_auth_fns.php

用于驗證用戶是否能夠注冊、登錄、修改密碼、重設密碼,以及用戶是否已經(jīng)登錄。

由多個相應功能的函數(shù)組成,函數(shù)接收參數(shù),連接數(shù)據(jù)庫進行查詢,返回查詢結(jié)果或拋出異常。

5.書簽操作文件:url_fns.php

用于對書簽url進行查詢、增加、刪除與推薦。功能實現(xiàn)方法與上一類相似。

6.瀏覽器輸出文件:output_fns.php

用于顯示所有種類的瀏覽器輸出:

網(wǎng)頁名稱、頁內(nèi)標題、各種表單、頁內(nèi)URL、網(wǎng)站信息、用戶菜單、頁尾。

每個函數(shù)實現(xiàn)一個種類部位的瀏覽器輸出,函數(shù)根據(jù)需要可以接收參數(shù),在HTML中插入php顯示,也可以通過php輸出HTML元素。

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

8.9.表單文件及對應的邏輯處理文件

表單文件login.phpchange_passwd_form.phpregister_form.phpforgot_form.phpadd_bm_form.php
邏輯處理文件member.phpchange_passwd.phpregister_new.phpforgot_passwd.phpadd_bms.php

其它邏輯處理文件:

delete_bms.php、recommend.php

logout.php

表單文件的特點:

1.包含對bookmark_fns.php中output_fns.php文件中函數(shù)的引用(即一些瀏覽器輸出函數(shù))

2.對于登錄后才能填寫的表單,包含會話開始函數(shù)session_start()和檢驗用戶是否已注冊會話函數(shù)check_valid_user()。

邏輯處理文件的特點: 處理表單提交的數(shù)據(jù)

1.包含對bookmark_fns.php中output_fns.php文件中函數(shù)的引用(即一些瀏覽器輸出函數(shù))

2.包含會話開始函數(shù)session_start()。

3.接收POST變量的信息。

4.對表單是否填滿、輸入是否合法進行判斷。

5.繼而調(diào)用用戶身份驗證函數(shù),如果驗證通過,則顯示相關信息。

6.捕捉所有拋出的異常,合理的顯示在瀏覽器上。

3.主要模塊關鍵思路

1.數(shù)據(jù)庫連接模塊:

連接數(shù)據(jù)庫,返回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.輸入數(shù)據(jù)檢驗模塊:

//檢驗每個變量都有一個值 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.用戶身份驗證模塊:

先連接數(shù)據(jù)庫,然后執(zhí)行查詢語句(最好使用參數(shù)化查詢方法),根據(jù)查詢結(jié)果返回相應的值。

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.<br />';}else {echo 'Could not log you out.<br />';} }else {echo 'You are not logged in ,so have not been logged out.<br />'; }

5.url推薦模塊的sql語句:

如果兩個用戶收藏了相同的URL,那么可能他們有相似的愛好,就可以把其中一個用戶收藏的其它URL推薦給另一個用戶。

bookmark數(shù)據(jù)表一共有兩列,bm_URL和username。

$query = "select bm_URLfrom bookmarkwhere username in(select distinct(b2.username)from bookmark b1, bookmark b2where b1.bm_URL = b2.bm_URLand b1.username != b2.usernameand b1.username = '".$valid_user."')and bm_URL not in(select bm_URLfrom bookmarkwhere b1.username = '".$valid_user."')group by bm_URLhaving count(bm_URL)>".$popularity;

總結(jié)

以上是生活随笔為你收集整理的PHP网站设计思路的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。