文章目錄
一、實驗環境
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> <?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才能正常運行
- 在瀏覽器輸入127.0.0.1查看是否正常
- 查看各個端口是否被佔用
右鍵圖標,選擇Tools,測試80端口,3306端口
Could not execute item (internal error) [Exception] Could not perform service action:服務尚未啓動
六、結
咳,好看的界面都是龍哥寫的,偶都是登錄、註冊、留言板。。
後臺都是php寫的,臨時學的php,各種混搭,慘不忍睹。。。