php 카 트 기능 구현(상)
1.수요 분석
우 리 는 데이터 베 이 스 를 사용자 의 브 라 우 저 에 연결 하 는 방법 을 찾 아야 한다.사용 자 는 목록 에 따라 상품 을 조회 할 수 있다. 사용 자 는 이후 의 구 매 를 위해 상품 목록 에서 상품 을 선택 할 수 있어 야 한다.우리 도 그들 이 선택 한 물건 을 기록 할 수 있어 야 한다. 사용자 가 구 매 를 완성 하면 그들의 주문 서 를 합산 하여 운송 상품 의 세부 사항 을 얻 고 지불 을 처리 해 야 한다. 관리자 가 위 에 도서 와 디 렉 터 리 를 추가 하고 편집 할 수 있 도록 관리 인터페이스 를 만 듭 니 다.
2.해결 방안
2.1 사용자 보기
2.2 관리자 보기
2.3 북 오 라마 의 파일 목록
3.데이터베이스 3.1 생 성 북 실현sc 데이터베이스 의 SQL 코드
CREATE DATABASE book_sc; # book_sc
USE book_sc; # book_sc
CREATE TABLE customers #
(
customerid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name CHAR(60) NOT NULL,
address CHAR(80) NOT NULL,
city CHAR(30) NOT NULL,
state CHAR(10),
zip CHAR(10),
country CHAR(20) NOT NULL
);
CREATE TABLE orders #
(
orderid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
customerid INT UNSIGNED NOT NULL,
amount FLOAT(6,2),
date DATE NOT NULL,
order_status CHAR(10),
ship_name CHAR(60) NOT NULL,
ship_address CHAR(80) NOT NULL,
ship_city CHAR(30) NOT NULL,
ship_state CHAR(20),
ship_zip CHAR(10),
ship_country CHAR(20) NOT NULL
);
CREATE TABLE books #
(
isbn CHAR(13) NOT NULL PRIMARY KEY,
author CHAR(80),
title CHAR(100),
catid INT UNSIGNED,
price FLOAT(4,2) NOT NULL,
description VARCHAR(255)
);
CREATE TABLE categories #
(
catid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
catname CHAR(60) NOT NULL
);
CREATE TABLE order_items #
(
orderid INT UNSIGNED NOT NULL,
isbn CHAR(13) NOT NULL,
item_price FLOAT(4,2) NOT NULL,
quantity TINYINT UNSIGNED NOT NULL,
PRIMARY KEY(orderid,isbn)
);
CREATE TABLE admin #
(
username char(16) NOT NULL PRIMARY KEY,
password CHAR(40) NOT NULL
);
GRANT SELECT,INSERT,UPDATE,DELETE
on book_sc.*
to book_sc@localhost IDENTIFIED by 'password';
3.2 데이터베이스 테스트 데이터 문서
USE book_sc;
INSERT INTO books VALUES ('0672329166','Luke Welling and Laura Thomson','PHP and MySQL Web Development',1,49.99,
'PHP & MySQL Web Development teaches the reader to develop dynamic, secure e-commerce web sites. You will learn to integrate and implement these technologies by following real-world examples and working sample projects.');
INSERT INTO books VALUES ('067232976X','Julie Meloni','Sams Teach Yourself PHP, MySQL and Apache All-in-One',1,34.99,
'Using a straightforward, step-by-step approach, each lesson in this book builds on the previous ones, enabling you to learn the essentials of PHP scripting, MySQL databases, and the Apache web server from the ground up.');
INSERT INTO books VALUES ('0672319241','Sterling Hughes and Andrei Zmievski','PHP Developer\'s Cookbook',1,39.99,
'Provides a complete, solutions-oriented guide to the challenges most often faced by PHP developers\r
Written specifically for experienced Web developers, the book offers real-world solutions to real-world needs\r
');
INSERT INTO categories VALUES (1,'Internet');
INSERT INTO categories VALUES (2,'Self-help');
INSERT INTO categories VALUES (5,'Fiction');
INSERT INTO categories VALUES (4,'Gardening');
INSERT INTO admin VALUES ('admin', sha1('admin'));
4.온라인 디 렉 터 리 구현홈 페이지-디 렉 터 리
다음 코드 로 구현:
4.1 index.php
<?php
/**
* @author switch
* @copyright 2015
* ,
*/
//require_once require , PHP , 。
require_once('book_sc_fns.php');
session_start(); //
do_html_header('Welcome to Book-O-Rama'); //
echo "<p>Please choose a category:</p>";
$cat_array = get_categories(); //
display_categories($cat_array); //
if(isset($_SESSION['admin_user'])) // ,
display_button("admin.php","admin-menu","Admin Menu");
do_html_footer(); //
?>
4.2 book_fns.php 파일 의 함수 getcategories()
function get_categories() //
{
$conn = db_connect(); //
$query = "select catid,catname from categories";
$result = @$conn ->query($query);
if(!$result) // , false
return false;
$num_cats = @$result ->num_rows;
if($num_cats == 0) // , false
return false;
$result = db_result_to_array($result);
return $result;
}
4.3 output_fns.php 파일 의 함수 displaycategories()
function display_categories($cat_array) //
{
if(!is_array($cat_array))
{
echo "<p>No categories currently available</p>";
return;
}
echo "<ul>";
foreach($cat_array as $row)
{
$url = "show_cat.php?catid=". $row['catid'];
$title = $row['catname'];
echo "<li>";
do_html_URL($url,$title);
echo "</li>";
}
echo "</ul>";
echo "<hr/>";
}
4.4 db_fns.php 파일 의 함수 dbresult_to_array()
function db_result_to_array($result) //
{
$res_array = array();
for($count = 0; $row = $result ->fetch_assoc(); $count++)
$res_array[$count] = $row;
return $res_array;
}
인터넷 목록 의 모든 도서
다음 코드 로 구현:
4.5 show_cat.php
<?php
/**
* @author switch
* @copyright 2015
*
*/
//require_once require , PHP , 。
require_once('book_sc_fns.php');
session_start();
@$catid = $_GET['catid'];
$name = get_category_name($catid);
do_html_header($name);
$book_array = get_books($catid);
display_books($book_array);
// ,
if(isset($_SESSION['admin_user']))
{
display_button("index.php","continue","Continue Shopping");
display_button("admin.php","admin-menu","Admin Menu");
display_button("edit_category_form.php?catid=". $catid,"edit-category","Edit Category");
}
else //
{
display_button("index.php","continue-shopping","Continue Shopping");
}
do_html_footer();
?>
4.6 book_fns.php 파일 의 함수 getcategory_name()
function get_category_name($catid) //
{
$conn = db_connect(); //
$query = "select catname from categories where catid = '". $catid ."'";
$result = @$conn ->query($query);
if(!$result) // ,
return false;
$num_cats = @$result ->num_rows;
if($num_cats == 0) // ,
return false;
$row = $result ->fetch_object();
return $row ->catname;
}
4.8 book_fns.php 파일 의 함수 getbooks()
function get_books($catid) //
{
if((!$catid) || ($catid == '')) // ID
return false;
$conn = db_connect();
$query = "select * from books where catid = '". $catid ."'";
$result = @$conn ->query($query);
if(!$result) // ,
return false;
$num_books = @$result ->num_rows;
if($num_books == 0) // ,
return false;
$result = db_result_to_array($result);
return $result;
}
4.9 output_fns 파일 의 함수 displaybooks()
function display_books($book_array) //
{
if(!is_array($book_array))
echo "<p>No books currently available in this category</p>";
else // ,
{
echo "<table width = \"100%\" border=\"0\">";
foreach($book_array as $row)
{
$url = "show_book.php?isbn=". $row['isbn'];
echo "<tr><td>";
//
if(@file_exists("images/". $row['isbn'] .".jpg"))
{
$title = "<img src=\"images/". $row['isbn'] .".jpg\" style=\"border: 1px solid black\"/>";
do_html_URL($url,$title);
}
else
echo " ";
echo "</td><td>";
$title = $row['title'] ." by ". $row['author'];
do_html_URL($url,$title);
echo "</td></tr>";
}
echo "</table>";
}
echo "<hr/>";
}
PHP and MySQL 웹 개발 에 대한 자세 한 정보
다음 코드 로 구현:
4.10 show_book.php
<?php
/**
* @author switch
* @copyright 2015
*
*/
//require_once require , PHP , 。
require_once('book_sc_fns.php');
session_start();
$isbn = $_GET['isbn'];
$book = get_book_details($isbn);
do_html_header($book['title']);
display_book_details($book);
//
$target = "index.php";
if($book['catid'])
$target = "show_cat.php?catid = ". $book['catid'];
// ,
if(check_admin_user())
{
display_button("edit_book_form.php?isbn=". $isbn,"edit-item","Edit Item");
display_button("admin.php","admin-menu","Admin Menu");
display_button($target,"continue","Continue");
}
else
{
display_button("show_cart.php?new=". $isbn,"add-to-cart","Add". $book['title']." To My Shopping Cart");
display_button($target,"continue-shopping","Continue Shopping");
}
do_html_footer();
?>
4.11 book_fns.php 파일 의 함수 getbook_details()
function get_book_details($isbn) //
{
if((!$isbn) || ($isbn == '')) //
return false;
$conn = db_connect(); //
$query = "select * from books where isbn = '". $isbn ."'";
$result = @$conn ->query($query);
if(!$result) // ,
return false;
$result = @$result ->fetch_assoc();
return $result;
}
4.12 output_fns.php 파일 의 함수 displaybook_details()
function display_book_details($book) //
{
if(is_array($book))
{
echo "<table><tr>";
//
if(@file_exists("images/". $book['isbn'] .".jpg"))
{
$size = getimagesize("images/". $book['isbn'] .".jpg");
if(($size[0] > 0) && ($size[1] > 0))
{
echo "<td><img src=\"images/". $book['isbn'] .".jpg\" style=\"border: 1px solid black\"/></td>";
}
}
echo "<td><ul>";
echo "<li><strong>Author:</strong>";
echo $book['author'];
echo "</li><li><strong>ISBN:</strong>";
echo $book['isbn'];
echo "</li><li><strong>Our Price:</strong>";
echo number_format($book['price'],2);
echo "</li><li><strong>Description:</strong>";
echo $book['description'];
echo "</li></ul></td></tr></table>";
}
else
{
echo "<p>The details of this book cannot be displayed at this time.</p>";
}
echo "<hr/>";
}
5.카 트 구현인 자 를 사용 하지 않 는 스 크 립 트 는 카 트 의 내용 만 표시 합 니 다.
인자 new 가 있 는 스 크 립 트 는 카 트 에 아 이 템 을 추가 합 니 다.
다음 코드 로 구현:
5.1 show_cart.php
<?php
/**
* @author switch
* @copyright 2015
* 。
*/
//require_once require , PHP , 。
require_once('book_sc_fns.php');
session_start();
@$new = $_GET['new'];
if($new)
{
if(!isset($_SESSION['cart'])) //
{
$_SESSION['cart'] =array();
$_SESSION['items'] = 0;
$_SESSION['total_price'] = '0.00';
}
if(isset($_SESSION['cart'][$new]))
{
$_SESSION['cart'][$new]++;
}
else
{
$_SESSION['cart'][$new] = 1;
}
$_SESSION['total_price'] = calculate_price($_SESSION['cart']);
$_SESSION['items'] = calculate_items($_SESSION['cart']);
}
if(isset($_POST['save']))
{
foreach($_SESSION['cart'] as $isbn => $qty)
{
if($_POST[$isbn] == '0')
unset($_SESSION['cart'][$isbn]);
else
$_SESSION['cart'][$isbn] = $_POST[$isbn];
}
$_SESSION['total_price'] = calculate_price($_SESSION['cart']);
$_SESSION['items'] = calculate_items($_SESSION['cart']);
}
do_html_header("Your shopping cart");
if((@$_SESSION['cart']) && (array_count_values($_SESSION['cart'])))
{
display_cart($_SESSION['cart']);
}
else
{
echo "<p>There are no items in your cart</p><hr/>";
}
$target = "index.php";
// ,
if($new)
{
$details = get_book_details($new);
if($details['catid'])
{
$target = "show_cat.php?catid=". $details['catid'];
}
}
display_button($target,"continue-shopping","Continue Shopping");
//SSL -- ,PS: ,
// $path = $_SERVER['PHP_SELF']; //
// $server = $_SERVER['SERVER_NAME']; //
// $path = str_replace('show_cart.php','',$path);
// display_button("https://". $server . $path ."checkout.php","go-to-checkout","Go To Checkout");
// SSL
display_button("checkout.php","go-to-checkout","Go To Checkout");
do_html_footer();
?>
5.2 output_fns.php 파일 의 함수 displaycart()
function display_cart($cart,$change = true,$images = 1) //
{
echo "<table border=\"0\" width=\"100%\" cellspacing=\"0\">
<form action=\"show_cart.php\" method=\"post\">
<tr>
<th colspan=\"". (1 + $images) ."\" bgcolor=\" #cccccc\">Item</th>
<th bgcolor=\"#cccccc\">Price</th>
<th bgcolor=\"#cccccc\">Quantity</th>
<th bgcolor=\"#cccccc\">Total</th>
</tr>";
//
foreach($cart as $isbn => $qty)
{
$book = get_book_details($isbn);
echo "<tr>";
if($images == true)
{
echo "<td align=\"left\">";
if(file_exists("images/". $isbn .".jpg"))
{
$size = getimagesize("images/". $isbn .".jpg");
if(($size[0] > 0) && ($size[1] > 1)) //
{
echo "<img src=\"images/". $isbn .".jpg\"
style=\"border: 1px solid black\"
width=\"". ($size[0] / 3) ."\"
height=\"". ($size[1] / 3) ."\"/>";
}
}
else
echo " ";
echo "</td>";
}
echo "<td align=\"left\">
<a href=\"show_book.php?isbn=". $isbn ."\">". $book['title'] ."</a> by". $book['author'] ."</td>
<td align=\"center\">\$". number_format($book['price'],2) ."</td><td align=\"center\">";
//
if ($change == true)
{
echo "<input type=\"text\" name=\"".$isbn."\" value=\"".$qty."\" size=\"3\">";
}
else
{
echo $qty;
}
echo "</td><td align=\"center\">\$".number_format($book['price']*$qty,2)."</td></tr>
";
}
//
echo "<tr>
<th colspan=\"". (2 + $images) ."\" bgcolor = \"#cccccc\"> </th>
<th align = \"center\" bgcolor=\"#cccccc\">". $_SESSION['items'] ."</th>
<th align = \"center\" bgcolor=\"#cccccc\">\$". number_format($_SESSION['total_price'],2) ."</th></tr>";
//
if($change == true)
{
echo "<tr>
<td colspan = \"". (2 + $images) ."\"> </td>
<td align = \"center \">
<input type=\"hidden\" name=\"save\"value=\"true\" />
<input type = \"image\" src = \"images/save-changes.gif\" border = \" 0 \" alt = \" Save Changes \" />
</td>
<td> </td>
</tr>";
}
echo "</form></table>";
}
5.3 book_fns.php 파일 의 함수 calculateprice()
function calculate_price($cart) //
{
$price = 0.0;
if(is_array($cart))
{
$conn = db_connect();
foreach($cart as $isbn => $qty)
{
$query = "select price from books where isbn ='". $isbn ."'";
$result = $conn ->query($query);
if($result)
{
$item = $result ->fetch_object();
$item_price = $item ->price;
$price += $item_price * $qty;
}
}
}
return $price;
}
5.4 book_fns.php 파일 의 함수 calculateitems()
function calculate_items($cart) //
{
$items = 0;
if(is_array($cart))
{
foreach($cart as $isbn => $qty)
$items += $qty;
}
return $items;
}
고객 의 상세 한 정 보 를 얻다
다음 코드 로 구현:
5.5 checkout.php
<?php
/**
* @author switch
* @copyright 2015
* 。
*/
//require_once require , PHP , 。
require_once('book_sc_fns.php');
session_start();
do_html_header("Checkout");
if((@$_SESSION['cart']) && (array_count_values($_SESSION['cart'])))
{
display_cart($_SESSION['cart'],false,0);
display_checkout_form();
}
else
{
echo "<p>Thers are no items in your cart</p>";
}
display_button("show_cart.php","continue-shopping","Continue Shopping");
do_html_footer();
?>
5.6 output_fns.php 파일 의 displaycheckout_form()
function display_checkout_form() //
{
?>
<br />
<table border="0" width="100%" cellspacng="0">
<form action="purchase.php" method="post">
<tr> <!-- -->
<th colspan="2" bgcolor="#cccccc">Your Details</th>
</tr>
<tr>
<td>Name</td>
<td><input type="text" name="name" value="" maxlength="40" size="40"/></td>
</tr>
<tr>
<td>Address</td>
<td><input type="text" name="address" value="" maxlength="40" size="40"/></td>
</tr>
<tr>
<td>City/Suburb</td>
<td><input type="text" name="city" value="" maxlength="20" size="40"/></td>
</tr>
<tr>
<td>State/Province</td>
<td><input type="text" name="state" value="" maxlength="20" size="40"/></td>
</tr>
<tr>
<td>Postal Code or Zip Code</td>
<td><input type="text" name="zip" value="" maxlength="10" size="40"/></td>
</tr>
<tr>
<td>Country</td>
<td><input type="text" name="country" value="" maxlength="10" size="40"/></td>
</tr>
<tr> <!-- -->
<th colspan="2" bgcolor="#cccccc">Shipping Address(leave blank if as above)</th>
</tr>
<tr>
<td>Name</td>
<td><input type="text" name="ship_name" maxlength=""/></td>
</tr>
<tr>
<td>Address</td>
<td><input type="text" name="ship_address" value="" maxlength="40" size="40"/></td>
</tr>
<tr>
<td>City/Suburb</td>
<td><input type="text" name="ship_city" value="" maxlength="20" size="40"/></td>
</tr>
<tr>
<td>State/Province</td>
<td><input type="text" name="ship_state" value="" maxlength="20" size="40"/></td>
</tr>
<tr>
<td>Postal Code or Zip Code</td>
<td><input type="text" name="ship_zip" value="" maxlength="10" size="40"/></td>
</tr>
<tr>
<td>Country</td>
<td><input type="text" name="ship_country" value="" maxlength="20" size="40"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<p>
<strong>Please press Purchase to confirm your purchase, or Continue Shopping to add or remove items.</strong>
</p>
<?php display_form_button("purchase","Purchase There Items"); ?>
</td>
</tr>
</form>
</table>
<hr />
<?php
}
이미 정 보 를 기입 한 주문서
고객 신용카드 정보 획득
다음 코드 로 구현:
5.7 purchase.php
<?php
/**
* @author switch
* @copyright 2015
*
*/
//require_once require , PHP , 。
require_once('book_sc_fns.php');
session_start();
do_html_header("Checkout");
//
$name = $_POST['name'];
$address = $_POST['address'];
$city = $_POST['city'];
$zip = $_POST['zip'];
$country = $_POST['country'];
//
if(($_SESSION['cart']) && ($name) && ($address) && ($city) && ($zip) && ($country))
{
if(insert_order($_POST) != false)
{
display_cart($_SESSION['cart'],false,0);
display_shipping(calculate_shipping_cost());
display_card_form($name);
display_button("show_cart.php","continue-shopping","Continue Shopping");
}
else
{
echo "<p>Could not store data, please try again.</p><hr/>";
display_button('checkout.php','back','Back');
}
}
else
{
echo "<p>You did not fill in all the fields, please try again.</p><hr/>";
display_button('checkout.php','back','Back');
}
do_html_footer();
?>
5.8 order_fns.php 파일 의 함수 insertorder()
function insert_order($order_details) //
{
extract($order_details);
//
if((!$ship_name) && (!$ship_address) && (!$ship_city) && (!$ship_state) && (!$ship_zip) &&(!$ship_country))
{
$ship_name = $name;
$ship_address = $address;
$ship_city = $city;
$ship_state = $state;
$ship_zip = $zip;
$ship_country = $country;
}
//
$conn = db_connect();
// ,
$conn ->autocommit(false);
$query = "select customrid from customers where
name ='". $name ."' and address = '". $address ."'
and city = '". $city ."' and state = '". $state ."'
and zip = '". $zip ."' and country = '". $country ."'";
$result = $conn ->query($query);
if(@$result ->num_rows > 0)
{
$customer = $result ->fetch_object();
$customerid = $customer ->customerid;
}
else
{
$query = "insert into customers values
('','". $name ."','". $address ."','". $city ."','". $state ."','". $zip ."','". $country ."')";
$result = $conn ->query($query);
if(!$result)
return false;
}
$customerid = $conn ->insert_id; // ID
$date = date("Y-m-d");
$query ="insert into orders values
('','". $customerid ."','". $_SESSION['total_price'] ."','". $date ."','PARTIAL','". $ship_name ."','". $ship_address ."','". $ship_city ."','". $ship_state ."','". $ship_zip ."','". $ship_country ."')";
$result = $conn ->query($query);
if(!$result)
return false;
$query = "select orderid from orders where
customerid ='". $customerid ."' and
amount > (". $_SESSION['total_price'] ."-.001) and
amount < (". $_SESSION['total_price'] ."+.001) and
date ='". $date ."' and
order_status = 'PARTIAL' and
ship_name ='". $ship_name ."' and
ship_address ='". $ship_address ."' and
ship_city ='". $ship_city ."' and
ship_state ='". $ship_state ."' and
ship_zip ='". $ship_zip ."' and
ship_country ='". $ship_country ."'";
$result = $conn ->query($query);
if($result ->num_rows > 0)
{
$order = $result ->fetch_object();
$orderid = $order ->orderid;
}
else
return false;
foreach($_SESSION['cart'] as $isbn => $quantity)
{
$detail = get_book_details($isbn);
$query = "delete from order_items where
orderid = '". $orderid ."' and isbn = '". $isbn ."'";
$result = $conn ->query($query);
$query = "insert into order_items values
('". $orderid ."','". $isbn ."',". $detail['price'] .",$quantity)";
$result = $conn ->query($query);
if(!$result)
return false;
}
// ,
$conn ->commit();
$conn ->autocommit(true);
return $orderid;
}
5.9 output_fns.php 파일 의 함수 displayshipping()
function display_shipping($shipping) //
{
?>
<table border="0" width="100%" cellspacing="0">
<tr>
<td align="left">Shipping</td>
<td align="right"> <?php echo number_format($shipping, 2); ?></td>
</tr>
<tr>
<th bgcolor="#cccccc" align="left">TOTAL INCLUDING SHIPPING</th>
<th bgcolor="#cccccc" align="right">$ <?php echo number_format($shipping+$_SESSION['total_price'], 2); ?></th>
</tr>
</table>
<br />
<?php
}
5.10 output_fns.php 파일 의 함수 displaycard_form()
function display_card_form($name) //
{
?>
<table border="0" width="100%" cellspacing="0">
<form action="process.php" method="post">
<tr>
<th colspan="2" bgcolor="#cccccc">Credit Card Details</th>
</tr>
<tr>
<td>Type</td>
<td>
<select name="card_type">
<option value="VISA">VISA</option>
<option value="MasterCard">MasterCard</option>
<option value="American Express">American Express</option>
</select>
</td>
</tr>
<tr>
<td>Number</td>
<td><input type="text" name="card_number" value="" maxlength="16" size="40"/></td>
</tr>
<tr>
<td>AMEX code (if required)</td>
<td><input type="text" name="amex_code" value="" maxlength="4" size="4"/></td>
</tr>
<tr>
<td>Expiry Date</td>
<td>Month
<select name="card_month">
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
Year
<select name="card_year">
<?php
for($y = date("Y"); $y < date("Y") + 10; $y++)
echo "<option value =\"". $y ."\">" . $y ."</option>";
?>
</select>
</td>
</tr>
<tr>
<td>Name on Card</td>
<td><input type="text" name="card_name" value="<?php echo $name; ?>" maxlength="40" size="40"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<p>
<strong>Please press Purchase to confirm yout purchase, or Continue Shopping to add or remove items</strong>
</p>
<?php display_form_button('purchase','Purchase These Items'); ?>
</td>
</tr>
</table>
<?php
}
5.11 db_fns.php 파일 의 함수 dbconnect()
function db_connect() //
{
$result = new mysqli('localhost','book_sc','password','book_sc');
if(!$result) //
return false;
$result ->autocommit(true);
return $result;
}
6.지불 실현이미 정 보 를 기입 한 신용카드 상세 정보
쇼핑 성공
다음 코드 로 구현:
6.1 process.php
<?php
/**
* @author switch
* @copyright 2015
* ,
*/
//require_once require , PHP , 。
require_once('book_sc_fns.php');
session_start();
do_html_header('Checkout');
//
$card_type = $_POST['card_type'];
$card_number = $_POST['card_number'];
$card_month = $_POST['card_month'];
$card_year = $_POST['card_year'];
$card_name = $_POST['card_name'];
if(($_SESSION['cart']) && ($card_type) && ($card_number) && ($card_month) && ($card_year) &&($card_name))
{
// ,
display_cart($_SESSION['cart'],false,0);
display_shipping(calculate_shipping_cost());
if(process_card($_POST))
{
//
session_destroy();
// ,
echo "<p>Thank you for shopping with us. Your order has been placed.</p>";
display_button("index.php","continue-shopping","Continue Shopping");
}
else
{
echo "<p>Could not process your card. Please contact the card issuer or try again.</p>";
display_button("purchase.php","back","Back");
}
}
else
{
echo "<p>You did not fill in all the fields,please try again.</p><hr/>";
display_button("purchase.php","back","Back");
}
do_html_footer();
?>
이상 은 phop 이 카 트 기능 을 실현 하 는 전편 입 니 다.코드 가 상세 합 니 다.여러분 의 학습 에 도움 이 되 기 를 바 랍 니 다.그 다음 에 다음 편 이 있 으 니 놓 치지 마 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.