php實現(xiàn)購物車功能(下)
接著上篇繼續(xù)學(xué)習(xí): 《php實現(xiàn)購物車的功能(上)》
7、實現(xiàn)一個管理界面

登錄界面
由以下代碼實現(xiàn):
7.1 admin.php
<?php
/**
* @author switch
* @copyright 2015
* 主管理菜單
*/
//require_once語句和require語句完全相同,唯一區(qū)別是PHP會檢查該文件是否已經(jīng)被包含過,如果是則不會再次包含。
require_once('book_sc_fns.php');
session_start();
if((@$_POST['username']) && (@$_POST['passwd'])) //嘗試登陸
{
$username = $_POST['username'];
$passwd = $_POST['passwd'];
if(login($username,$passwd))
{
$_SESSION['admin_user'] = $username;
}
else
{
do_html_header("Problem:");
echo "<p>You could not be logged in.<br />
You must be logged in to view this page.</p>";
do_html_URL('login.php','Login');
do_html_footer();
exit;
}
}
do_html_header("Administration");
if(check_admin_user())
{
display_admin_menu();
}
else
{
echo "<p>You are not authorized to enter the administration area.</p>";
do_html_URL('login.php','Login');
}
do_html_footer();
?>
7.2 user_auth_fns.php文件中的函數(shù)login()
function login($username,$password) //登錄
{
$conn = db_connect(); //連接數(shù)據(jù)庫
if(!$conn)
return 0;
//檢查用戶名唯一性
$query = "select * from admin where username='". $username ."'
and password = sha1('". $password ."')";
$result = $conn ->query($query);
if(!$result)
return 0;
if($result ->num_rows > 0)
return 1;
else
return 0;
}
7.3 user_auth_fns.php文件中的函數(shù)check_admin_user()
function check_admin_user() //檢查是否是管理員
{
if(isset($_SESSION['admin_user']))
return true;
else
return false;
}

管理主界面
由以下代碼實現(xiàn):
7.4 output_fns.php文件中的函數(shù)display_admin_menu()
function display_admin_menu() //輸出管理員菜單
{
?>
<br />
<a href="index.php">Go to main site</a><br />
<a href="insert_category_form.php">Add a new category</a><br />
<a href="insert_book_form.php">Add a new book</a><br />
<a href="change_password_form.php">Change admin password</a><br />
<?php
}
function display_button($target,$image,$alt) //顯示按鈕
{
echo "<div align= \" center \"><a href=\"". $target ."\">
<img src=\"images/". $image .".gif\"
alt=\"". $alt ."\" border = \" 0 \" height = \" 50 \"
width = \" 135 \" /></a></div>";
}

目錄添加
目錄添加成功
目錄頁中可以看出多了Novel目錄
由以下代碼實現(xiàn):
7.5 insert_category_form.php
<?php
/**
* @author switch
* @copyright 2015
* 允許管理員向數(shù)據(jù)庫中添加一個目錄的表格
*/
//require_once語句和require語句完全相同,唯一區(qū)別是PHP會檢查該文件是否已經(jīng)被包含過,如果是則不會再次包含
require_once('book_sc_fns.php');
session_start();
do_html_header();
if(check_admin_user())
{
display_category_form();
do_html_URL("admin.php","Back to administrtion menu");
}
else
{
echo "<p>You are not authorized to enter the administation area.</p>";
}
do_html_footer();
?>
7.6 insert_category.php
<?php
/**
* @author switch
* @copyright 2015
* 向數(shù)據(jù)庫中插入新目錄
*/
//require_once語句和require語句完全相同,唯一區(qū)別是PHP會檢查該文件是否已經(jīng)被包含過,如果是則不會再次包含
require_once('book_sc_fns.php');
session_start();
do_html_header("Adding a category");
if(check_admin_user())
{
if(filled_out($_POST))
{
$catname =$_POST['catname'];
if(insert_category($catname))
{
echo "<p>Category \"". $catname ."\" was added to the database.</p>";
}
else
{
echo "<p>Category \"". $catname ."\" could not be added to the database.</p>";
}
}
else
{
echo "<p>You have not filled out the form. Please try again.</p>";
}
do_html_URL("admin.php","Back to administration menu");
}
else
{
echo "<p>You are not authorised to view this page.</p>";
}
do_html_footer();
?>

管理員目錄界面

目錄編輯界面-可更新,刪除

目錄更新成功

目錄主界面可以看到該目錄更改成功
由以下代碼實現(xiàn):
7.7 edit_category_form.php
<?php
/**
* @author switch
* @copyright 2015
* 管理員編輯目錄的表單
*/
//require_once語句和require語句完全相同,唯一區(qū)別是PHP會檢查該文件是否已經(jīng)被包含過,如果是則不會再次包含。
require_once('book_sc_fns.php');
session_start();
do_html_header("Edit category");
if(check_admin_user())
{
if($catname = get_category_name($_GET['catid']))
{
$catid = $_GET['catid'];
$cat = compact('catname','catid');
display_category_form($cat);
}
else
{
echo "<p>Could not retrieve category details.</p>";
}
do_html_URL("admin.php","Back to administration menu");
}
else
{
echo "<p>You are not authorized to enter the administration area.</p>";
}
do_html_footer();
?>
7.8 edit_category.php
<?php
/**
* @author switch
* @copyright 2015
* 更新數(shù)據(jù)庫中的目錄
*/
//require_once語句和require語句完全相同,唯一區(qū)別是PHP會檢查該文件是否已經(jīng)被包含過,如果是則不會再次包含。
require_once('book_sc_fns.php');
session_start();
do_html_header("Updating category");
if(check_admin_user())
{
if(filled_out($_POST))
{
if(update_category($_POST['catid'],$_POST['catname']))
{
echo "<p>Category was updated.</p>";
}
else
{
echo "<p>Category could not be updated.</p>";
}
}
else
{
echo "<p>you have not filled out the form. Please try again.</p>";
}
do_html_URL("admin.php","Back to administration menu");
}
else
{
echo "<p>You are not authorised to view this page.</p>";
}
do_html_footer();
?>
7.9 admin_fns.php
<?php
/**
* @author switch
* @copyright 2015
* 管理腳本使用的函數(shù)集合
*/
function display_category_form($category = '') //顯示目錄表單
{
//如果傳入存在目錄,進入編輯模式
$edit = is_array($category);
?>
<form method="post" action="<?php echo $edit ? 'edit_category.php' :'insert_category.php'; ?>">
<table border="0">
<tr>
<td>Category Name:</td>
<td><input type="text" name="catname" size="40" maxlength="40" value="<?php echo $edit ? $category['catname'] : ''; ?>"/></td>
</tr>
<tr>
<td <?php if(!$edit){echo "colspan=2";} ?> align="center">
<?php
if($edit)
{
echo "<input type=\"hidden\" name=\"catid\" value=\"". $category['catid'] ."\" />";
}
?>
<input type="submit" value="<?php echo $edit ? 'Update' : 'Add'; ?> Category"/></form>
</td>
<?php
if($edit) //允許刪除存在目錄
{
echo "<td>
<form method=\"post\" action=\"delete_category.php\">
<input type=\"hidden\" name=\"catid\" value=\"". $category['catid'] ."\" />
<input type=\"submit\" value=\"Delete category\" />
</form></td>";
}
?>
</tr>
</table>
<?php
}
function display_book_form($book = '') //顯示圖書表單
{
//如果傳入圖書存在,進入編輯模式
$edit = is_array($book);
?>
<form method="post" action="<?php echo $edit ? 'edit_book.php' : 'insert_book.php'; ?>">
<table border="0">
<tr>
<td>ISBN:</td>
<td><input type="text" name="isbn" value="<?php echo $edit ? $book['isbn'] : ''; ?>" /></td>
</tr>
<tr>
<td>Book Title:</td>
<td><input type="text" name="title" value="<?php echo $edit ? $book['title'] : ''; ?>" /></td>
</tr>
<tr>
<td>Book Author:</td>
<td><input type="text" name="author" value="<?php echo $edit ? $book['author'] : ''; ?>"/></td>
</tr>
<tr>
<td>Category:</td>
<td>
<select name="catid">
<?php
$cat_array = get_categories();
foreach($cat_array as $thiscat)
{
echo "<option value=\"". $thiscat['catid'] ."\"";
if(($edit) && ($thiscat['catid'] == $book['catid']))
{
echo " selected";
}
echo ">". $thiscat['catname'] ."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>Price:</td>
<td><input type="text" name="price" value="<?php echo $edit ? $book['price'] : ''; ?>" /></td>
</tr>
<tr>
<td>Description:</td>
<td><textarea rows="3" cols="50" name="description"><?php echo $edit ? $book['description'] : ''; ?></textarea></td>
</tr>
<tr>
<td <?php if (!$edit) { echo "colspan=2"; }?> align="center">
<?php
if ($edit)
echo "<input type=\"hidden\" name=\"oldisbn\" value=\"".$book['isbn']."\" />";?>
<input type="submit" value="<?php echo $edit ? 'Update' : 'Add'; ?> Book" /></form></td>
<?php
if ($edit)
{
echo "<td>
<form method=\"post\" action=\"delete_book.php\">
<input type=\"hidden\" name=\"isbn\" value=\"".$book['isbn']."\" />
<input type=\"submit\" value=\"Delete book\"/>
</form></td>";
}
?>
</td>
</tr>
</table>
</form>
<?php
}
function display_password_form() //顯示更改密碼表單
{
?>
<br />
<form action="change_password.php" method="post">
<table width="250" cellpadding="2" cellspacing="0" bgcolor="#cccccc">
<tr>
<td>Old password:</td>
<td><input type="password" name="old_passwd" size="16" maxlength="16"/></td>
</tr>
<tr>
<td>New password:</td>
<td><input type="password" name="new_passwd" size="16" maxlength="16"/></td>
</tr>
<tr>
<td>Repeat new password:</td>
<td><input type="password" name="new_passwd2" size="16" maxlength="16"/></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Change password"/></td>
</tr>
</table>
</form>
<br />
<?php
}
function insert_category($catname) //目錄插入
{
$conn = db_connect(); //數(shù)據(jù)庫連接
$query = "select *
from categories
where catname='". $catname ."'";
$result = $conn ->query($query);
if((!$result) || ($result ->num_rows != 0))
return false;
$query = "insert into categories values
('','". $catname ."')";
$result = $conn ->query($query);
if(!$result)
return false;
else
return true;
}
function insert_book($isbn,$title,$author,$catid,$price,$description) //圖書插入
{
$conn = db_connect(); //連接數(shù)據(jù)庫
$query = "select * from books
where isbn='". $isbn ."'";
$result = $conn ->query($query);
if((!$result) || ($result ->num_rows != 0))
return false;
$query = "insert into books values
('". $isbn ."','". $author ."','". $title ."',
'". $catid ."','". $price ."','". $description ."')";
$result = $conn ->query($query);
if(!$result)
return false;
else
return true;
}
function update_category($catid,$catname) //更改目錄名稱
{
$conn = db_connect(); //連接數(shù)據(jù)庫
$query = "update categories
set catname='". $catname ."'
where catid='". $catid ."'";
$result = @$conn ->query($query);
if(!$result)
return false;
else
return true;
}
function update_book($oldisbn,$isbn,$title,$author,$catid,$price,$description)
{
$conn = db_connect(); //連接數(shù)據(jù)庫
$query = "update books
set isbn='". $isbn ."',
title='". $title ."',
author='". $author ."',
catid='". $catid ."',
price ='". $price ."',
description='". $description ."'
where isbn='". $oldisbn ."'";
$result = @$conn ->query($query);
if(!$result)
return false;
else
return true;
}
function delete_category($catid) //刪除目錄
{
$conn = db_connect(); //連接數(shù)據(jù)庫
$query = "select *
from books
where catid='". $catid ."'";
$result = @$conn ->query($query);
if((!$result) || (@$result ->num_rows > 0)) //如果該目錄有圖書,無法刪除該目錄
return false;
$query = "delete from categories
where catid='". $catid ."'";
$result = @$conn ->query($query);
if(!$result)
return false;
else
return true;
}
function delete_book($isbn) //刪除圖書
{
$conn = db_connect(); //連接數(shù)據(jù)庫
$query = "delete from books
where isbn='". $isbn ."'";
$result = @$conn ->query($query);
if(!$result)
return false;
else
return true;
}
?>
7.10 目錄刪除操作,圖書添加,更新,刪除操作基本與上述操作差不多,這里就不在演示,可以下載代碼查看
8、擴展
本項目創(chuàng)建了一個相當(dāng)簡單的PHP購物車系統(tǒng)。我們還可以對它進行許多改進和提高:
- 在真正的在線商店,可能必須建立一些訂單記錄和實施系統(tǒng)——在這個系統(tǒng)中,用戶無法看到已經(jīng)預(yù)定了的訂單。
- 顧客希望在不必與我們聯(lián)系的前提下就能檢查到他們的訂單處理情況。用戶應(yīng)當(dāng)可以通過一種身份驗證方式使之能夠查看自己以前的訂單,并且也可以將操作與個人情況緊密地結(jié)合起來。也更方便我們收集一些用戶習(xí)慣信息。
- 圖書的圖片可以通過FTP之類的服務(wù)傳輸?shù)皆摼W(wǎng)站的圖像目錄并給它們?nèi)∫粋€合適的名字??梢园盐募陷d到圖片插入頁,以使該操作方便一些。
- 可以添加用戶登錄、個性化設(shè)置以及書目推薦、在線評論、會員制度、庫存級別檢查等。可以添加的功能是非常多的。
以上就是php實現(xiàn)購物車功能的全部代碼,希望對大家的學(xué)習(xí)有所幫助。
源碼下載:購物車
相關(guān)文章
php實現(xiàn)獲取文章內(nèi)容第一張圖片的方法
這篇文章主要介紹了php實現(xiàn)獲取文章內(nèi)容第一張圖片的方法,涉及對正則表達式的操作,非常具有實用價值,需要的朋友可以參考下2014-11-11

