首頁 > 軟體

基於PHP實現個人部落格網站

2022-04-15 13:00:54

一、執行展示

二、功能說明

未登入使用者:

僅可以瀏覽所有部落格的內容。

已登入使用者:

  • 瀏覽所有部落格的內容;
  • 發表部落格;
  • 刪除自己的部落格;
  • 修改自己的部落格;
  • 在任一部落格下評論;
  • 修改暱稱和密碼。

管理員:

  • 可以執行普通使用者的所有功能;
  • 修改任一部落格的內容;
  • 刪除任一部落格;
  • 刪除任一使用者。

網站平臺功能補充說明:

  • 動態顯示部落格資訊(如當前所有部落格數量,使用者個人部落格數量,以及部落格內容資訊);
  • 部落格和評論發表的時間遵循北京時間;
  • 登入時只要輸入賬號密碼即可,後臺會自動判斷該賬號為普通使用者還是管理員,進而推播到對應的網頁。

三、核心程式碼講解

1、建立資料庫

drop database  if  exists grblog;
CREATE DATABASE `grblog` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE grblog;
-- 人員資訊
CREATE TABLE admin
(
    adminMail varchar(25) primary key,
    adminName varchar(10) not null,
    passWord varchar(15) not null,
    level enum('user', 'super')
);

-- 部落格資訊
CREATE TABLE blog
(
    blogNo int primary key AUTO_INCREMENT,
    blogTopic varchar(50) not null,
    blogContent varchar(5000) not null,
    adminMail varchar(25) not null,
    importDate date not null ,
    foreign key (adminMail) references admin(adminMail)

);

-- 評論資訊
CREATE TABLE comment
(
    commentNo int primary key AUTO_INCREMENT,
    commentContent varchar(500) not null,
    adminMail varchar(25) not null,
    blogNo int,
    commentDate datetime not null ,
    foreign key (adminMail) references admin(adminMail),
    foreign key (blogNo) references blog(blogNo)

);

2、初始化資料

INSERT INTO `admin` (`adminMail`,`adminName`, `passWord`, `level`) VALUES ('2015100@126.com', '不脫髮的程式猿', 'pwdpwd', 'user'),('2015333@163.com', '濤歌依舊', 'pwdpwd', 'user'),('2015222@qq.com', 'ThinkWon', 'pwdpwd', 'user'),('2015111@qq.com', 'SAP劍客', 'pwdpwd', 'user'),('2015201@126.com', '敖 丙', 'pwdpwd', 'user'),('2015202@126.com', '>=FreeMan=<', 'pwdpwd', 'user'),('2015203@126.com', '布客飛龍', 'pwdpwd', 'user'),('2015101@126.com', 'Riveore', 'pwdpwd', 'user'),('2015102@1256.com', '打雜人', 'pwdpwd', 'user'),('super@126.com', '超級管理員', 'superpwd', 'super');
INSERT INTO `blog` (`blogNo`,`blogTopic`, `blogContent`, `adminMail`, `importDate`) VALUES (1, 'Python開發人員常犯的幾個重大錯誤', 'Python 無疑是當今使用最廣泛的程式語言,特別是進入人工智慧時代,已經成為人工智慧開發的主要語言,甚至小學三年級就已經教學該語言。它之所以如此流行,很大程度上是由於簡單的語法和老少皆宜的可讀性,這使得它非常容易使用。初學者之所以喜歡 Python,是因為它給人一種感覺就像是用英語寫一段虛擬碼一樣。但是,無論你有多麼豐富的經驗,也無論你已經研究過多少種語言,切換到 Python 並不能保證你能做到平穩過渡。具有物件導向程式設計背景的開發人員很容易忽略 Python 的常用特性,或者說python正規化程式設計。這樣一來,他們很可能會誤用程式設計結構,從而可能出現難以發現的、不可預見的錯誤。更糟糕的是,這些錯誤大多很難發現,並且可能會給專案工程帶來天大的麻煩,輕則刪庫跑路,重則抱恨終身。在本文中,將列出程式設計師(通常是菜鳥)可能會犯的常見錯誤。此外,我還將介紹如何避免這些錯誤,以便編寫出更好的、無錯誤的 Python 程式碼。', '2015100@126.com','2020-12-1'),(2, '組合優化問題', '其實組合優化問題我想大家肯定是遇到過的,因為可能現在在看這篇部落格的同學都學過了演演算法程式設計或者資料結構等的課程。那麼你們肯定見過所謂的0-1揹包問題,這個問題就是很典型的組合優化問題。當然啦還有旅行商問題等也屬於組合優化問題。很多離散組合優化問題都是從運籌學(Operations Research,OR)中演化出來的。組合優化其所研究的問題涉及到資訊科技、經濟管理、工業工程、交通運輸、通訊網路等眾多領域,在科學研究和生產實踐中都起著重要的作用。我們不難發現,其實這些問題解決的方法其實很簡單,比方說0-1揹包,那無非就是n個物品,每個物品要麼帶要麼不帶,即為2^n的情況,得到所有情況然後取出價值最大的那種方法就可以了。是呀,這樣子的話真的是老簡單了。哈哈,開個玩笑。只要是稍微多想一想都能發現我們上述的窮舉法有一個很致命的問題,就是當你的n值過大時,對應的計算量可是呈指數暴增的。所以這個時候,就需要我們藉助智慧優化計算方法,可以在合理的時間內求解得到令人滿意的解,從而滿足實踐的需要。對於演演算法的計算複雜性,我們一般很容易進行判斷,例如使用蠻力法去列舉旅行商問題或者0-1揹包問題的演演算法,就是具有指數計算複雜性的演演算法。', '2015101@126.com','2020-12-1'),(3, 'PHP簡介', 'PHP最初是一個小型的開源專案,隨著越來越多的人發現它很有用,它發展了起來。Rasmus Lerdorf在1994年釋出了PHP的第一個版本。PHP是「PHP:超文字前處理器(PHP: Hypertext Preprocessor)」的遞迴首字母縮略詞。PHP是嵌入在HTML中的伺服器端指令碼語言。它用於管理動態內容,資料庫,對談跟蹤,甚至建立整個電子商務網站。它與許多流行的資料庫整合,包括MySQL,PostgreSQL,Oracle,Sybase,Informix和Microsoft SQL Server。PHP在其執行過程中令人愉快,特別是在Unix端編譯為Apache模組時更是如此。MySQL伺服器一旦啟動,就會在記錄設定時間內執行非常複雜的查詢,並帶有巨大的結果集。PHP支援大量主要協定,如POP3,IMAP和LDAP。PHP4增加了對Java和分散式物件體系結構(COM和CORBA)的支援,使n層開發成為第一次。PHP是寬容的:PHP語言試圖儘可能寬容。PHP語法是類C的。', '2015101@126.com','2020-12-1'),(4, 'MySQL 教學', 'MySQL 是最流行的關係型資料庫管理系統,在 WEB 應用方面 MySQL 是最好的 RDBMS(Relational Database Management System:關聯式資料庫管理系統)應用軟體之一。在此次教學中,會讓大家快速掌握 MySQL 的基本知識,並輕鬆使用 MySQL 資料庫。資料庫(Database)是按照資料結構來組織、儲存和管理資料的倉庫。每個資料庫都有一個或多個不同的 API 用於建立,存取,管理,搜尋和複製所儲存的資料。我們也可以將資料儲存在檔案中,但是在檔案中讀寫資料速度相對較慢。所以,現在我們使用關係型資料庫管理系統(RDBMS)來儲存和管理巨量資料量。所謂的關係型資料庫,是建立在關係模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理資料庫中的資料。RDBMS 即關聯式資料庫管理系統(Relational Database Management System)的特點:1.資料以表格的形式出現;2.每行為各種記錄名稱;3.每列為記錄名稱所對應的資料域;4.許多的行和列組成一張表單;5.若干的表單組成database', '2015222@qq.com','2020-12-1'),(5, 'web前端知識體系梳理', '現在是資訊時代,經過 web1.0 時期、web2.0 時期到現在的行動網際網路時期,資訊獲取越來越高效,坐著不動就會有大量的新聞、部落格、資訊向你推薦而來。作為一名靠譜的程式設計師,你免不了要查閱大量的文章、視訊和書籍來充斥你的知識量,不斷學習。但是現在網上大量的資訊堆積起來,對於你來說意味著什麼?你如何去合理的篩選、梳理這些獲得的資訊,又如何去知道自己現在還缺什麼資訊?到這裡就應該提出本文的主題 —— 知識體系 。其實無論針對哪個知識領域,它都是有一套完整的、成型的知識體系和標準作為支撐的,例如數學、建築、醫學、機械等等,當然包括計算機程式設計,其中肯定包括前端開發。有了完善的知識體系,再來面對大量的資訊獲取,你就知道每個資訊所說的知識點是屬於知識體系中的哪個部分。同時,你也會很清楚自己哪些部分掌握的好,哪些部分掌握的不好,甚至哪些部分自己壓根都沒聽說過。現在不一樣了,網速越來越快、瀏覽器和 JS 引擎足夠強大,而且 vue React 等框架流行開來,使得前端 JS 的業務邏輯越來越大,這些基礎知識必須掌握。最後別忘了,nodejs 都盛行多年了,這可讓 JS 執行到 server 了,和 php java 等幹一樣的事情。最後補充一句。其實程式設計基礎也不止這幾個,像編碼、編譯原理、計算機組成、網路等這些都是基礎,但是並不會和前端開發直接相關(或者和我們日常開發相關性不大),這裡就不再深究了。有興趣的讀者,可以自己繼續補充。', '2015101@126.com','2020-12-1'),(6, '後臺開發知識點', '多執行緒和多程序區別:1.程序之間資料分開,程序間通訊需要特殊的ipc機制(管道,號誌,共用記憶體,訊息佇列),執行緒存在於程序內,執行緒之間共用程序的堆區間,全域性靜態儲存區,而各自擁有自己獨立的棧空間,同步資料用互斥量;2.程序的建立,銷燬,切換複雜,速度慢,執行緒是輕量級程序。;3.程序佔用記憶體多,cpu利用率低。執行緒佔用記憶體少,CPU利用率高。;4.程序之間不會互相影響,程序的一個執行緒掛掉則會導致整個程序掛掉。執行緒私有內容:執行緒id,暫存器值,棧記憶體,執行緒的排程策略,執行緒的私有資料,errno變數', '2015201@126.com','2020-12-1'),(7, 'web後臺開發需要學習哪些知識', 'web後臺開發需要學習的知識有HTML、CSS、JavaScript、DOM、Web伺服器、伺服器指令碼語言、資料庫及SQL語言以及baiweb框架。web後臺開發學習步驟:1、學習HTML和CSS。HTML(超檔案標示語言)是網頁的核心,學好HTML是成為Web開發人員的基本條件。學習CSS了,它可以幫你把網頁做得更美觀。利用HTML和CSS模擬一些你所見過的網站的排版和佈局(色彩,圖片,文字樣式等等)。2、學習javascript,瞭解DOM。JavaScript是一種能讓你的網頁更加生動活潑的程式語言。學習JavaScript的基本語法,學會用javascript操作網頁中dom元素。接著學習使用一些javascript庫,比如jquery是大部分WEB開發人員都喜歡用的,通過Jquery可以有效的提高JavaScript的開發效率。3、瞭解Web伺服器。學習一點Unix和Linux的基本知識,因為大部分Web伺服器都執行在Unix和Linux平臺上。4、學好一門伺服器端指令碼語言。目前流行的伺服器指令碼語言有:php、asp.net、jsp、ruby、python等。可以選一個自己喜歡的進行學習。5、學習資料庫及SQL語法。要構建動態頁面通常會使用到資料庫,常用的資料庫有SQLServer、Oracle、MySQL 等,它們都會遵循標準的SQL原則。通常asp.net 程式使用SqlServer資料庫,PHP、java使用Oracle、MySQL資料庫。6、學習使用Web框架。當你掌握了HTML,CSS,JavaScript和伺服器端指令碼語言後,就應該找一個Web框架加快你的Web開發速度,使用框架可以節約你很多時間。', '2015203@126.com','2020-12-14'),(8, '詳細後端開發知識講解', '本片文章面向後端開發,講述後端在進行開發時所使用的WEB伺服器的工作流程,正所謂知根知底,WEB伺服器是後端開發人員日常用於偵錯WEB程式和與前端通訊的一種方式!WEB伺服器最為強大的地方是能夠執行WEB程式,其WEB程式的程式語言並沒有明確的規定,因為只要你所使用的伺服器支援這樣的程式就可以了!WEB伺服器更像是一個平臺,在此平臺上編寫軟體我們稱其為WEB程式設計,注:WEB程式設計下有許多規範比如CGI,FastCGI等等,這個是要看伺服器的支援範圍!不同伺服器所使用的規範不同,比如JSP伺服器只能執行由JAVA EE編寫的WEB程式,不能用於執行像C/C++、Python等程式語言編寫而成的WEB程式!通常情況下的WEB伺服器所使用的程式設計規範均為CGI程式設計、只能執行CGI規範的程式,除了一些例外的WEB伺服器,比如JSP伺服器!CGI是Common Gateway Interface的縮寫,其意義為公用閘道器介面,意思可以理解為:在WEB伺服器上執行一個程式或指令碼,並且WEB伺服器要將指令碼執行結果返回給瀏覽器(使用者端)!規範的意思是,無論你使用任何語言編寫,都必須使用輸出函數(cout,printf,print)輸出HTML格式的資料資訊,WEB伺服器根據這些資訊傳遞給瀏覽器,瀏覽器HTML樹並將其顯示到瀏覽器當中,即為一個WEB頁面!更加深層次的來說其實,無論你使用什麼語言編寫,只要在WEB伺服器中的組態檔中,使其支援CGI程式設計,然後將你編譯完成的二進位制可執行檔案字尾名改為.cgi,最後前端頁面在使用get或post方法請求這個WEB程式,WEB伺服器會自動執行這程式並將其結果送回給瀏覽器(TCP/IP協定)!', '2015202@126.com','2020-12-15');
INSERT INTO `comment` (`commentNo`,`commentContent`, `adminMail`, `blogNo`, `commentDate`) VALUES (1, '寫得真好,棒!', '2015201@126.com', 1, '2020-12-12 12:20:20'), (2, '寫得不錯,可以一起交流學習。', '2015202@126.com', 2, '2020-12-12 12:21:20'), (3, '不錯不錯,解決了我的疑惑。', '2015102@126.com', 2, '2020-12-12 12:22:20'), (4, '文章寫得很好,棒!', '2015201@126.com', 3, '2020-12-12 12:20:20'), (5, '文筆不錯。', '2015102@126.com', 3, '2020-12-12 12:22:22'), (6, '可以可以,終於解決我的困惑了,感謝!', '201100@126.com', 4, '2020-12-12 12:20:20'), (7, '終於解決我的困惑了,感謝!', '2015100@126.com', 5, '2020-12-12 12:22:20'), (8, '解決我的困惑了,感謝!', '2015100@126.com', 1, '2020-12-12 12:21:21'), (9, '解決我的困惑了,感謝!', '2015100@126.com', 6, '2020-12-12 12:20:20'), (10, '解決我的困惑了,感謝!', '2015222@qq.com', 6, '2020-12-12 12:20:20'), (11, '解決我的困惑了,感謝!', '2015111@qq.com', 3, '2020-12-12 12:21:21'), (12, '超級管理員給你點贊!', 'super@126.com', 1, '2020-12-12 12:21:21'), (13, '解決我的困惑了,感謝!', '2015111@qq.com', 7, '2020-12-16 12:21:21'), (14, '超級管理員給你點贊!', 'super@126.com', 7, '2020-12-16 12:21:21'), (15, '超級管理員給你點贊!', 'super@126.com', 8, '2020-12-12 12:21:21'), (16, '解決我的困惑了,感謝!', '2015111@qq.com', 8, '2020-12-16 12:21:21'), (17, '寫得真好,棒!', '2015201@126.com', 8, '2020-12-12 12:20:20');

3、登入驗證

當用戶在登入頁面輸入賬號和密碼後點選登入時,會跳轉到下面的頁面進行驗證,其中用到session進行儲存賬號和密碼。

首先是判斷賬號密碼是否為空,接著是判斷賬號是否存在,密碼是否對應,若對應再判斷輸入的使用者是普通使用者還是管理員。

<?php
session_start();
?>
<meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1.0">
<?php
$admin = $_REQUEST['adminmail'];
$password = $_REQUEST['password'];

if ($admin == "" || $password == "") {
    echo '<script type="text/javascript">alert("使用者名稱密碼不能為空");location="signin.php";</script>';
    exit;
}
require_once "config.inc.php";
$demand = "select passWord,level,adminName from Admin where adminMail = '$admin'";
$res = mysqli_query($mysqli, $demand);
$power = mysqli_fetch_row($res);
$_SESSION["adminMail"]=$admin;
$_SESSION["passWord"]=$password;
$_SESSION["level"]=$power[1];
if ($power[0] == $password) {
    if ($power[1] == 'user') {
        $_SESSION["adminName"]=$power[2];
        header('location:user_index.php');
    } else if ($power[1] == 'super') {
        $_SESSION["adminName"]=$power[2];
        header('location:super_index.php');
    } else {
        echo '<script type="text/javascript">alert("未知錯誤,請聯絡管理員");location="signin.php";</script>';
        exit;
    }
} else {
    echo '<script type="text/javascript">alert("使用者名稱或密碼錯誤,請重新登陸");location="signin.php";</script>';
}
mysqli_free_result($res);
mysqli_close($mysqli);

其中的require_once "config.inc.php";用於連線資料庫,程式碼實現如下:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<?php
 $server="localhost";  //mysql伺服器地址
 $user="root";         //登陸mysql的使用者名稱
 $pass="";   //登陸mysql的密碼
 $db_name="grblog";   //mysql中要操作的資料庫名

$mysqli=mysqli_connect($server,$user,$pass, $db_name);
  mysqli_query($mysqli,"SET NAMES 'utf8'");
?>

4、使用者註冊

首先判斷賬號密碼是否為空,接著判斷註冊賬號是否已經存在。

<?php
session_start();
?>
<meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1.0">
<?php
$admin = $_REQUEST['adminmail'];
$adminName = $_REQUEST['adminName'];
$password = $_REQUEST['password'];
$level = 'user';
if ($admin == "" || $password == "") {
    echo '<script type="text/javascript">alert("使用者名稱或密碼不能為空");location="signup.php";</script>';
    exit;
}
require_once "config.inc.php";
if (mysqli_connect_errno()) {
    die("Failed to connect to MySQL: (" . mysqli_connect_errno() . ") " . mysqli_connect_error());
}
$demand1 = "INSERT INTO admin values('$admin','$adminName','$password','$level')";
$res1 = mysqli_query($mysqli, $demand1);
if ($res1){
    $_SESSION['adminName'] = '';
    echo '<script type="text/javascript">alert("註冊成功!");location="signin.php";</script>';
}
else{
    echo '<script type="text/javascript">alert("該郵箱已註冊!");location="signup.php";</script>';
}

mysqli_free_result($res);
mysqli_free_result($res1);
mysqli_close($mysqli);

5、發表部落格

首先判斷使用者是否已經登入,其次判斷輸入的資料是否滿足格式需求(是否為空)

<?php
session_start();
?>
    <meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1.0">
<?php
if ($_SESSION["adminName"] != "") {
    $blogTopic = $_REQUEST['blogTopic']; //部落格主題
    $adminMail = $_SESSION["adminMail"];
    $blogContent = $_REQUEST["blogcontent"];
    date_default_timezone_set('Asia/Shanghai');//設定為北京時間
    $blogDate = date("Y-m-d");//自動獲取時間(年月日)
    require_once "config.inc.php";

//插入BLOG資訊命令
    $demand = "INSERT INTO `blog` (`blogTopic`, `blogContent`, `adminMail`, `importDate`) values('$blogTopic','$blogContent','$adminMail','$blogDate')";
    $res = mysqli_query($mysqli, $demand);
    if ($res) { //跳轉頁面
        mysqli_close($mysqli); //查詢已經結束,在這裡關閉連線
        echo '<script>alert("部落格發表成功");location="super_myblogs.php";</script>';
    } else {
        mysqli_close($mysqli);
        echo '<script>alert("部落格發表失敗");location="super_insert_blog.php";</script>';
    }
}
else{
    echo '<script>alert("請先登入!");location="signin.php";</script>';
}
?>

6、更新部落格

這裡是以普通使用者為例,首先判斷是否已經登入 ,接著判斷是否具有更改部落格的許可權(非自己部落格不能更改),最後判斷輸入的資料是否滿足格式需求(是否為空)

<?php
session_start();
?>
<meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1.0">
<?php
if ($_SESSION["adminName"] != "") {
    $blogTopic = $_REQUEST['blogTopic']; //部落格主題
    $adminMail = $_SESSION["adminMail"];
    $blogContent = $_REQUEST["blogcontent"];
    $blogno = $_SESSION['no_blog'];
    require_once "config.inc.php";

    $demand = "select adminMail from blog where blogNo = '$blogno'";
    $res = mysqli_query($mysqli, $demand);
    $power = mysqli_fetch_row($res);
    $mail = $power[0];

    if ($mail == $adminMail){
        //插入BLOG資訊命令
        $demand2 = "UPDATE `blog` SET `blogTopic` = '$blogTopic',`blogContent` = '$blogContent' WHERE `blog`.`blogNo` ='$blogno'";
        $res2 = mysqli_query($mysqli, $demand2);
        if ($res2) { //跳轉頁面
            mysqli_close($mysqli); //查詢已經結束,在這裡關閉連線
            echo '<script>alert("部落格修改成功");location="user_index.php";</script>';
        } else {
            mysqli_close($mysqli);
            echo '<script>alert("部落格修改失敗");location="user_update_blog.php";</script>';
        }
    }else{
        echo '<script>alert("無許可權!");location="user_index.php";</script>';
    }


} else {
    echo '<script>alert("請先登入!");location="signin.php";</script>';
}
?>

7、刪除部落格

這裡普通使用者和管理員的程式碼時基本一樣的,首先判斷是否登入,接著判斷是否為普通使用者,若是,則判斷要刪除的部落格是否為自己的部落格,若為管理員,則無需判斷是否為自己的部落格。

<?php
session_start();
?>
<meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1.0">
<?php
if ($_SESSION["adminName"] != "") {
    require_once "config.inc.php";
    $level = $_SESSION["level"];
    $mail_blog = $_SESSION['mail_blog'];
    $adminMail = $_SESSION["adminMail"];
    $no_blog = $_SESSION['no_blog'];

    if ($level == 'user') {
        if ($adminMail != $mail_blog) {
            echo '<script>alert("無許可權!");location="user_index.php";</script>';
        } else {
            $demand = "delete from blog where blogNo = '$no_blog'";
            $res = mysqli_query($mysqli, $demand);
            if ($res) { //跳轉頁面
                mysqli_close($mysqli);
                echo '<script>alert("刪除部落格成功");location="user_index.php";</script>';
            } else {
                mysqli_close($mysqli);
                echo '<script>alert("刪除部落格失敗");location="user_index.php";</script>';
            }
        }
    } else {
        $demand = "delete from blog where blogNo = '$no_blog'";
        $res = mysqli_query($mysqli, $demand);
        if ($res) { //跳轉頁面
            mysqli_close($mysqli);
            echo '<script>alert("刪除部落格成功");location="super_index.php";</script>';
        } else {
            mysqli_close($mysqli);
            echo '<script>alert("刪除部落格失敗");location="super_index.php";</script>';
        }
    }
} else {
    echo '<script>alert("請先登入!");location="signin.php";</script>';
}
?>

8、發表評論

注意評論不能為空。

<?php
session_start();
?>
<meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1.0">
<?php
if ($_SESSION["adminName"] != ""){
    require_once "config.inc.php";
    $email = $_SESSION['adminMail'];//使用者名稱
    $blogNo = $_SESSION['no_blog'];//部落格號
    $new_comment =$_REQUEST['new_comment'];//新評論
    date_default_timezone_set('Asia/Shanghai');//設定為北京時間
    $commentDate=date('Y-m-d H:i:s');//自動獲取時間(年月日時間)
    $demand = "INSERT INTO `comment` (`commentContent`, `adminMail`, `blogNo`, `commentDate`) values('$new_comment','$email',$blogNo,'$commentDate')";
    $insertComment = mysqli_query($mysqli,$demand);
    if ($insertComment){
        echo '<script>alert("發表成功");location="user_index.php";</script>';
    }
    else{
        echo '<script>alert("輸入錯誤!");location="user_index.php";</script>';
    }
}
else{
    echo '<script>alert("請先登入!");location="signin.php";</script>';
}
?>

9、修改密碼

首先判斷是否已經登入,接著判斷新密碼和第二次輸入的新密碼是否一致,再判斷原密碼是否正確。

<?php
session_start();
?>
<meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1.0">
<?php
if ($_SESSION["adminName"] != "") {
    require_once "config.inc.php";
    $email = $_SESSION['adminMail'];//使用者名稱
    $real_pwd = $_SESSION['passWord'];//真實密碼
    $past_pwd = $_REQUEST['past_pwd'];//原密碼
    $new_pwd = $_REQUEST['new_pwd'];//新密碼
    $pwd = $_REQUEST['new_pwd_2'];//第二次新密碼
    if ($new_pwd == $pwd) {
        if ($real_pwd == $past_pwd) {
            $sql = "update admin set password = '$pwd' where adminMail='$email'";
            $updatepwd = mysqli_query($mysqli, $sql);
            if ($updatepwd) {
                echo '<script>alert("密碼修改成功,請重新登入");location="signin.php";</script>';
            } else {
                echo '<script>alert("未知錯誤!");location="user_update_pwd.php";</script>';
            }
        } else {
            echo '<script>alert("原密碼輸入錯誤!");location="user_update_pwd.php";</script>';
        }

    } else {
        echo '<script>alert("兩次密碼輸入不相同!");location="user_update_pwd.php";</script>';
    }
} else {
    echo '<script>alert("請先登入!");location="signin.php";</script>';
}
?>

10、修改暱稱

<?php
session_start();
?>
<meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1.0">
<?php
if ($_SESSION["adminName"] != "") {
    require_once "config.inc.php";
    $email = $_SESSION['adminMail'];//使用者名稱
    $new_name = $_REQUEST['new_name'];//新暱稱
    $sql = "update admin set adminName = '$new_name' where adminMail='$email'";
    $updatename = mysqli_query($mysqli, $sql);
    if ($updatename) {
        $_SESSION["adminName"] = $new_name;
        echo '<script>alert("暱稱修改成功");location="user_index.php";</script>';
    } else {
        echo '<script>alert("輸入錯誤!");location="user_update_name.php";</script>';
    }
} else {
    echo '<script>alert("請先登入!");location="signin.php";</script>';
}
?>

11、管理員刪除使用者

需要注意的是,刪除使用者的同時會刪除有關他的所有資訊,包括他發表的部落格和評論。

<?php
session_start();
?>
<meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1.0">
<?php
if ($_SESSION["adminName"] != "") {
    require_once "config.inc.php";
    $admai = $_GET['delete_mail'];
    $sql = "delete from admin where adminMail='$admai'";
    $delete = mysqli_query($mysqli, $sql);

    $sql2 = "delete from blog where adminMail='$admai'";
    $delete2 = mysqli_query($mysqli, $sql2);
    $sql3 = "delete from comment where adminMail='$admai'";
    $delete2 = mysqli_query($mysqli, $sql3);
    echo '<script>alert("刪除成功");location="super_user.php";</script>';

} else {
    echo '<script>alert("請先登入!");location="signin.php";</script>';
}
?>

四、執行環境

APMServ 5.2.6 for Windows 2000/XP/2003

五、執行說明

1、以管理員身份執行APMServ,啟動伺服器,點選管理MySQL資料庫;

2、將資料庫設計原始碼(.sql檔案)中的資料匯入資料庫當中;

3、最後點選存取使用者本地網站,找到我們解壓後的原始碼的目錄並點選(記得事先將專案檔案放到APMServ5.2.6wwwhtdocs目錄下);

4、找到signin.php檔案並點選即可進入登入頁面;

5、若想體驗登入後的功能,可以點選使用者中心下的登入並輸入賬號密碼即可。

(如輸入普通使用者賬號:2015100@126.com 密碼:pwdpwd;

或者管理員賬號:super@126.com 密碼:superpwd)

以上就是基於PHP實現個人部落格網站的詳細內容,更多關於PHP部落格網站的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com