程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php實現購物車功能(下)

php實現購物車功能(下)

編輯:PHP綜合

接著上篇繼續學習: 《php實現購物車的功能(上)》

7、實現一個管理界面


登錄界面

由以下代碼實現:
7.1 admin.php

<?php 
 
/** 
 * @author switch 
 * @copyright 2015 
 * 主管理菜單 
 */ 
 //require_once語句和require語句完全相同,唯一區別是PHP會檢查該文件是否已經被包含過,如果是則不會再次包含。 
 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文件中的函數login()

function login($username,$password) //登錄 
 { 
 $conn = db_connect(); //連接數據庫 
 
 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文件中的函數check_admin_user()

function check_admin_user() //檢查是否是管理員 
 { 
 if(isset($_SESSION['admin_user'])) 
 return true; 
 else 
 return false; 
 } 

管理主界面

由以下代碼實現:

7.4 output_fns.php文件中的函數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目錄

由以下代碼實現:
7.5 insert_category_form.php

<?php 
 
/** 
 * @author switch 
 * @copyright 2015 
 * 允許管理員向數據庫中添加一個目錄的表格 
 */ 
 //require_once語句和require語句完全相同,唯一區別是PHP會檢查該文件是否已經被包含過,如果是則不會再次包含 
 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 
 * 向數據庫中插入新目錄 
 */ 
 //require_once語句和require語句完全相同,唯一區別是PHP會檢查該文件是否已經被包含過,如果是則不會再次包含 
 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(); 
?> 

管理員目錄界面


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


目錄更新成功


目錄主界面可以看到該目錄更改成功

由以下代碼實現:
7.7 edit_category_form.php

<?php 
 
/** 
 * @author switch 
 * @copyright 2015 
 * 管理員編輯目錄的表單 
 */ 
 //require_once語句和require語句完全相同,唯一區別是PHP會檢查該文件是否已經被包含過,如果是則不會再次包含。 
 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 
 * 更新數據庫中的目錄 
 */ 
 //require_once語句和require語句完全相同,唯一區別是PHP會檢查該文件是否已經被包含過,如果是則不會再次包含。 
 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 
 * 管理腳本使用的函數集合 
 */ 
 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(); //數據庫連接 
 
 $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(); //連接數據庫 
 
 $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(); //連接數據庫 
 
 $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(); //連接數據庫 
 
 $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(); //連接數據庫 
 
 $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(); //連接數據庫 
 
 $query = "delete from books 
  where isbn='". $isbn ."'"; 
 $result = @$conn ->query($query); 
 if(!$result) 
 return false; 
 else 
 return true; 
 } 
?>

 7.10 目錄刪除操作,圖書添加,更新,刪除操作基本與上述操作差不多,這裡就不在演示,可以下載代碼查看

8、擴展
本項目創建了一個相當簡單的PHP購物車系統。我們還可以對它進行許多改進和提高:

  • 在真正的在線商店,可能必須建立一些訂單記錄和實施系統——在這個系統中,用戶無法看到已經預定了的訂單。
  • 顧客希望在不必與我們聯系的前提下就能檢查到他們的訂單處理情況。用戶應當可以通過一種身份驗證方式使之能夠查看自己以前的訂單,並且也可以將操作與個人情況緊密地結合起來。也更方便我們收集一些用戶習慣信息。
  • 圖書的圖片可以通過FTP之類的服務傳輸到該網站的圖像目錄並給它們取一個合適的名字。可以把文件上載到圖片插入頁,以使該操作方便一些。
  • 可以添加用戶登錄、個性化設置以及書目推薦、在線評論、會員制度、庫存級別檢查等。可以添加的功能是非常多的。

以上就是php實現購物車功能的全部代碼,希望對大家的學習有所幫助。

源碼下載:購物車

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved