網站課設——壁紙網站+留言板(PHP+wamp)

壁紙網站+留言板源文件

一、實驗環境

Wamp
提取碼:1ihb

Navicat
提取碼:8ams

二、數據庫設計部分

1、新建連接

主機或IP地址爲localhost或者127.0.0.1;用戶名爲root;密碼爲空;
在這裏插入圖片描述

2、新建數據庫

數據庫名爲photosite;選擇字符集爲utf-8;
在這裏插入圖片描述

3、創建表

user表與administrator表
在這裏插入圖片描述
messageboard表
在這裏插入圖片描述

三、實現功能

下面的代碼都已刪減,不能直接使用

1、登錄

(1)連接數據庫
利用mysqli_connect函數連接數據庫;

$host ='127.0.0.1';
$user ='root';
$pwd ='';
$dbname = 'photosite';
$con=mysqli_connect($host, $user, $pwd, $dbname);
if ($con->connect_errno!=0){
	die('數據庫鏈接失敗');
	exit;
}
mysqli_set_charset($con,"utf8");	// 設置格式爲utf-8

(2)判斷是否登錄成功
將查詢結果的內容存入result中,再用while循環將結果分別賦值給對應的數組;如果用戶名密碼均匹配則提示登錄成功,跳轉至home.html頁面

$username = $_POST["name"];     // 獲取html中的用戶名
$password = $_POST["password"]; // 獲取html中的密碼

$dbusername = array();		// 利用array函數創建數組
$dbpassword = array();
$sql = "SELECT * FROM user";
$result = mysqli_query($con,$sql);	// 執行查詢語句
while($row = mysqli_fetch_array($result)){  //while循環將$result中的結果提取
	$dbusername[] = $row['name'];
	$dbpassword[] = $row['pwd'];
}
$length = count($dbusername);	// 計算數組的長度
for($i = 0;$i < $length;$i++){
	if($username == $dbusername[$i]){
		if($password == $dbpassword[$i]){
			<script type="text/javascript">
			 alert("登陸成功");
			 document.location.href="/KeChengSheJi/home.html";
			</script>
		}
	}
}

2、註冊

(1)利用mysqli_connect函數連接數據庫
(2)註冊

  • 與登錄相同,從user表中提取用戶名,再將輸入的用戶名與user表中的用戶名進行比較,若相同則提示“此用戶名已被註冊”;
  • 如果flag爲0即用戶名有效,創建插入語句,將用戶名、密碼插入user表中;
while($row = mysqli_fetch_array($result)){    //while循環將$result中的結果找出來
	$dbusername[] = $row['name'];
}	
$flag = 0;          //判斷用戶名是否被註冊
$length = count($dbusername);
for($i = 0;$i < $length;$i++){
	if($username == $dbusername[$i]){
		alert("此用戶名已被註冊");
		window.location.href="register.html";
		flag = 1;	// 代表註冊失敗
	}
}
if($flag == 0){
	$sql2 = "INSERT INTO user(name,pwd) VALUES  ('$username','$password')";
	$is = $con->query($sql2);
	if($is == true){
		alert("註冊成功");
	}
}

3、修改密碼

(1)與登錄一致,從數據庫中獲取用戶名、密碼;
(2)將輸入的用戶名與數據庫中的用戶名進行比較,若未找到報錯;若找到則保存用戶名的位置,據此找到對應的密碼,並將flag置1;

for($i = 0;$i < $length;$i++){
	if($username != $dbusername[$i]){
		if($i == $length-1){
			alert("用戶名不存在");
		}
	}else {
                $mima = $i; //對應用戶的密碼
                $flag = 1;
                break;
	}

(3)若flag等於1且密碼正確,則創建更新語句,再用query函數更新數據庫;

if($flag){
	if($password != $dbpassword[$mima]){
		alert("原密碼錯誤");
	} else {
		$up_sql = "UPDATE user SET pwd = '$newpassword' WHERE name = '$dbusername[$i]'";
		$is = $con->query($up_sql);
		if($is == true){
			alert("修改成功");
		}
	}
}

4、刪除用戶及留言

會刪除數據庫中所有暱稱爲想刪除的暱稱的留言
(1)連接數據庫
(2)獲取messageboard表中的內容,將其中的暱稱提取,與輸入的暱稱進行比較,若未找到匹配項則報錯;若找到,創建刪除語句並用query方法執行;

while($row = mysqli_fetch_array($result)){
	$username[] = $row['name'];
}
$length = count($username);
for($i = 0;$i < $length;$i++){
	if($name != $username[$i]){
                if($i == $length-1)
                	alert("不存在此留言暱稱");
	} else {
		$del_sql = "DELETE FROM messageboard WHERE name = '$name'";
                $del = $con->query($del_sql);
                if($del == true)
                	alert("刪除留言成功");
                else
                	alert("刪除留言失敗");
	}
}

5、留言板

顯示留言板內容:
(1)連接數據庫
(2)從messgeboard表中按id降序獲取所有留言信息,用array方法創建arrays數組,利用foreach循環將所有內容輸出;

$sql = "SELECT * FROM messageboard ORDER BY id DESC";
$result = mysqli_query($con,$sql);

$rows = array();
while($row = mysqli_fetch_array($result)){
	$rows[] = $row;
}
foreach ($rows as $row) {
	<span class='user'><?php echo $row['name'];?></span>
	<span class='time'><?php echo date('Y-m-d H:i:s',$row['intime']);?></span>
	<span>&nbsp;&nbsp;<?php echo $row['content'];?></span>
}        

留言:
(1)連接數據庫
(2)用time函數獲取當前時間,如果留言內容與留言暱稱均不爲空,則創建插入語句,將暱稱、內容和時間插入messageborad表中;

$time = time();
if ($name != ''&&$content != '') {
	$sql2 ="INSERT INTO messageboard (name,content,intime) VALUES  ('{$name}','{$content}','{$time}')";
	$is = $con->query($sql2);
	if($is == true)
		alert("留言成功");
	else
		alert("留言失敗");
}

四、效果圖

1、首頁

在這裏插入圖片描述

2、登錄界面

在這裏插入圖片描述
在這裏插入圖片描述

3、註冊界面

在這裏插入圖片描述

4、留言板界面

在這裏插入圖片描述

五、涉及到Wamp的一些問題

在這裏插入圖片描述
需要三個服務都開啓(Apache、PHP、MySQL),wamp才能正常運行

  1. 在瀏覽器輸入127.0.0.1查看是否正常
    在這裏插入圖片描述
  2. 查看各個端口是否被佔用
    右鍵圖標,選擇Tools,測試80端口,3306端口
    在這裏插入圖片描述

Could not execute item (internal error) [Exception] Could not perform service action:服務尚未啓動

六、結

咳,好看的界面都是龍哥寫的,偶都是登錄、註冊、留言板。。
後臺都是php寫的,臨時學的php,各種混搭,慘不忍睹。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章