戻る

カートに入れる仕組みを作る(セッション版)

index.phpとcart.phpは、セッション管理機能を使ってショッピングカートの基本的な処理を行う例です。

index.phpの画面で「カートに入れる」のリンクをクリックすると、その行の商品IDがGETで自分自身に送られます。index.phpはデータを受け取り、現在のセッション変数のデータを取り出した後、今回選択された商品IDをカンマ区切りで追加して、再度同じセッション変数に保存します。

一方、「カートの中味を見る」のリンクをクリックするとcart.phpの画面へページ移動します。このPHPファイルでは、カート情報の入ったセッション変数の内容を読み込み、商品名データの配列を参照しながら、カートの内容を一覧表示します。

<?php
header("Content-type: text/html; charset=utf-8");
?>
<!DOCTYPE HTML>
<html lang="ja-JP">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
if(isset($_GET["id"])){
	
	session_start();
	 
	if($_GET["id"] == 0){
		unset($_SESSION["sescart"]);
	}
	else{
		$cart = "";
		
		//if(!session_is_registered("sescart")){
		if(!isset($_SESSION["sescart"])){
			//session_register("sescart");
		}
		else{
			$cart = $_SESSION["sescart"];
		}
		
		$cart .= (strlen($cart) == 0 ? "" : ",") . $_GET["id"];
		
		$_SESSION["sescart"] = $cart;
		
		echo "今回カートに入れた商品IDは" . $_GET["id"] . "<br><br>";
	}
}
?>
<table border="1">
	<tr>
		<th>商品ID</th><th>商品名</th><th><br></th>
	</tr>
	<tr>
		<td>1</td><td>冷蔵庫 AB-12345</td><td><a href="<?=$_SERVER["PHP_SELF"]."?id=1"?>">カートに入れる</a></td>
	</tr>
	<tr>
		<td>2</td><td>エアコン AC-99999</td><td><a href="<?=$_SERVER["PHP_SELF"]."?id=2"?>">カートに入れる</a></td>
	</tr>
	<tr>
		<td>3</td><td>テレビ TV-A3456K-L23</td><td><a href="<?=$_SERVER["PHP_SELF"]."?id=3"?>">カートに入れる</a></td>
	</tr>
	<tr>
		<td>4</td><td>パソコン PC-999999 Win100G</td><td><a href="<?=$_SERVER["PHP_SELF"]."?id=4"?>">カートに入れる</a></td>
	</tr>
	<tr>
		<td>5</td><td>洗濯機 SK-TK2424 380L</td><td><a href="<?=$_SERVER["PHP_SELF"]."?id=5"?>">カートに入れる</a></td>
	</tr>
	<tr>
		<td colspan="3" align="center"><a href="<?=$_SERVER["PHP_SELF"]."?id=0"?>">カートをクリア</a></td>
	</tr>
	<tr>
		<td colspan="3" align="center"><a href="cart.php">カートの中味を見る</a></td>
	</tr>
</table>
</body>
</html>

<?php
header("Content-type: text/html; charset=utf-8");

//セッションを開始
session_start();

//if(!session_is_registered("sescart")) {
if(!isset($_SESSION["sescart"])){
	//セッション変数が未定義の場合
	$html = "【現在、カートは空です】";
}

else {
	//セッション変数のデータを読み込み
	$cart = $_SESSION["sescart"];

	//商品名データを配列に代入
	$product = array("冷蔵庫 AB-12345(H)" , "エアコン AC-99999(W)",
	"テレビ TV-A3456K-L23", "パソコン PC-999999 Win100G",
	"洗濯機 SK-TK2424 380L");

	//現在のカート内容を列挙
	$html = "【現在のカートの状況】<br><br>";
	
	$cartarray = explode(",", $cart);
	
	foreach ($cartarray as $data)  {
		//商品IDから商品名を取得してHTML文に追加
		$html .= $product[$data - 1] . "<br>";
	}
}
?>.
<!DOCTYPE HTML>
<html lang="ja-JP">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?=$html?>
<br>
<br>
<a href="index.php">戻る</a>
</body>
</html>

inserted by FC2 system