PHP session realizes shopping cart function

  • 2021-09-24 22:01:25
  • OfStack

In the wamp environment, PHP session session control to complete the effect of shopping cart, data stored in the array practice, no connection to the database, the effect is good, easy to understand, the following parts of the code

common.php


<?php
header("content-type:text/html;charset=utf-8");
$arrPro = array(
    array('id'=>1,'img'=>'img/1.jpg','title'=>' Millet mobile power supply 5000mAh','price'=>49),
    array('id'=>2,'img'=>'img/2.jpg','title'=>'20000mAh Millet mobile power supply 2','price'=>149),
    array('id'=>3,'img'=>'img/3.jpg','title'=>' Millet ring iron earphone Pro','price'=>129),
    array('id'=>4,'img'=>'img/4.jpg','title'=>' Xiaomi family electric scooter ','price'=>1999),
    array('id'=>5,'img'=>'img/5.jpg','title'=>' Millet Notebook ','price'=>3499),
    array('id'=>6,'img'=>'img/6.jpg','title'=>' Mi Jia LED Intelligent desk lamp ','price'=>169),
    array('id'=>7,'img'=>'img/7.jpg','title'=>' Millet weighing scale ','price'=>99),
    array('id'=>8,'img'=>'img/8.png','title'=>' Millet TV 3s 48 Inches ','price'=>2599)
  );

index.php


<?php 
header("content-type:text/html;charset=utf-8");
require 'common.php';
session_start();
$sum = 0;
$class = "";
// Determine the style display of the shopping cart in the upper left corner 
if(!empty($_SESSION['shopcar'])){
  $data = $_SESSION['shopcar'];
  $sum = array_sum($data[4]);
  $class = "on";
  // Top right dot 
    if(empty($data[0])){
      $class = "";
    }
  }
?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title> Commodity display </title>
  <style type="text/css">
  section{
    width:1032px;
    height: 700px;
    margin: 40px auto;
  }
  .top{
    float: right;
    position: relative;
    width: 190px;
    height: 34px;
    border: 1px solid #ccc;
    margin-right: 32px;
    text-align: center;
    line-height: 34px;
    border-radius: 4px;
    transition: all .3s linear;
    -moz-transition: all .3s linear;
    -webkit-transition: all .3s linear;
  }
  .top a{
    color: #d00;
  }
  .top:hover{
    width: 210px;
    color: #fff;
    font-weight: bold;
    background-color: #d00;
    border-radius: 6px;
  }
  .top:hover a{
    color: #fff;
  }
  .top:hover span{
    background-color: #fff;
    color: #d00;
  }
  .top:hover .star{
    right:150px;
    top: 0;
    font-size: 14px;
    color: #ff0;
    transform: rotate(1080deg);
  }
  .top span{
    position: absolute;
    top:2px;
    right: 40px;
    width: 18px;
    height: 18px;
    font-weight: bold;
    border-radius: 9px;
    line-height: 18px;
    text-align: center;
    font-size: 12px;
    font-weight: border;
    color: #fff;
  }
  .star{
    color: #fff;
    font-size: 48px;
    font-style: normal;
    position: absolute;
    right:530px;
    top:186px;
    transform: rotate(60deg);
    transition: all .3s ease;
  }
  .on{
    background-color: #e00;
  }
  .list{
    margin: 20px 20px;
    padding: 36px 0;
    list-style: none;
  }  
  a{
    display: block;
    color: #757575;
    text-decoration: none;
  }
  .list li{
    float: left;
    height: 246px;
    width: 234px;
    padding: 10px 0 20px;
    margin-right:12px;
    margin-top: 20px;
    border: 1px solid #ccc;
    background: #fff;
    -webkit-transition: all .2s linear;
    transition: all .2s linear;
  }
  .list li:hover{
    box-shadow: 2px 4px 5px #aaa;
  }
  .figure{
    width: 150px;
    height: 150px;
    margin: 0 auto 18px;
  }
  .title{
    color: #222;
    font-size: 14px;
    font-weight: normal;
    text-align: center;
  }
  .price{
    margin: 0 10px 10px;
    text-align: center;
    color: #ff6700;
  }
  .cart{
    margin: 0 15px 5px;
    text-align: center;
  }
  .cart a{
    color: #a34;
    width: 190px;
    height: 24px;
    border-radius: 4px;
    margin: 0 8px 5px;
    text-align: center;
  }
  .cart a:hover{
    color: #eee;
    box-shadow: 0 2px 1px #333,0 2px 1px #666;
    background-color: #ccc;
    background-image: linear-gradient(#33a6b8,#0089a7)
  }
  .num{
    text-align: center;
    color: #ff6700;
  }
  </style>
</head>
<body>
  <section>
  <div class='top'>
  <a href="spcar.php" rel="external nofollow" > My shopping cart </a><span class="<?php echo $class;?>"><?php echo $sum;?></span>
  <em class='star'> ★ </em>
  </div>
  <ul class="list">
  <?php foreach ($arrPro as $key => $value):?>
  <li>
    <div class="figure"> 
    <a href=""><img src=" rel="external nofollow" <?php echo $value['img'];?>" width="150" height="150" alt=" Millet mobile power supply 5000mAh"></a> 
    </div> 
    <h3 class="title"> 
    <a href=""><?php echo $value['title'];?></a>
    </h3> 
    <p class="price"><span class="num"> $ <?php echo $value['price'];?></span></p>
    <p class='cart'><a href="action.php?id=<?php echo $value['id'];?>" rel="external nofollow" > Join the shopping cart </a></p>
  </li>
  <?php endforeach;?>
  </ul>
  <div style='clear:both'></div>
  </section>
</body>
</html>

action.php


<?php
if(!empty($_GET['id'])){
  require 'common.php';
  session_start();
  $id = $_GET['id'];
  // Put the selected ID The commodity information is traversed out 
  foreach ($arrPro as $key => $value) {
    if($id == $value['id']){
    $arrData = $arrPro[$key];
    }
  }

  // Use 1 A new one 2 Dimensional array stores commodity information 
  $arrDatax[0][$arrData['id']] = $arrData['id'];
  $arrDatax[1][$arrData['id']] = $arrData['img'];
  $arrDatax[2][$arrData['id']] = $arrData['title'];
  $arrDatax[3][$arrData['id']] = $arrData['price'];
  $arrDatax[4][$arrData['id']] = 1;
  // Determine if there is SESSION Existence, if there is, it will be added after the array, and if there is no, it will be saved directly 
  if(empty($_SESSION['shopcar'])){
    $_SESSION['shopcar'] = $arrDatax;
    header('Location:index.php');
  }else{
    // No. 1 1 Shopping after the second shopping 
    // Take it out again to prevent data overwrite 
    $arrDataz = $_SESSION['shopcar'];
    if(in_array($id,$arrDataz[0])){
      $arrDataz[4][$arrData['id']] += 1;
      $_SESSION['shopcar'] = $arrDataz;
      header('Location:index.php');
    }else{
      $arrDataz[0][$arrData['id']] = $arrData['id'];
      $arrDataz[1][$arrData['id']] = $arrData['img'];
      $arrDataz[2][$arrData['id']] = $arrData['title'];
      $arrDataz[3][$arrData['id']] = $arrData['price'];
      $arrDataz[4][$arrData['id']] = 1;
      $_SESSION['shopcar'] = $arrDataz;
      header('Location:index.php');
    }

  }
}else{
  echo " There are no goods in the shopping cart !";
}

spcar.php


<?php
if(!empty($_GET['id'])){
  require 'common.php';
  session_start();
  $id = $_GET['id'];
  // Put the selected ID The commodity information is traversed out 
  foreach ($arrPro as $key => $value) {
    if($id == $value['id']){
    $arrData = $arrPro[$key];
    }
  }

  // Use 1 A new one 2 Dimensional array stores commodity information 
  $arrDatax[0][$arrData['id']] = $arrData['id'];
  $arrDatax[1][$arrData['id']] = $arrData['img'];
  $arrDatax[2][$arrData['id']] = $arrData['title'];
  $arrDatax[3][$arrData['id']] = $arrData['price'];
  $arrDatax[4][$arrData['id']] = 1;
  // Determine if there is SESSION Existence, if there is, it will be added after the array, and if there is no, it will be saved directly 
  if(empty($_SESSION['shopcar'])){
    $_SESSION['shopcar'] = $arrDatax;
    header('Location:index.php');
  }else{
    // No. 1 1 Shopping after the second shopping 
    // Take it out again to prevent data overwrite 
    $arrDataz = $_SESSION['shopcar'];
    if(in_array($id,$arrDataz[0])){
      $arrDataz[4][$arrData['id']] += 1;
      $_SESSION['shopcar'] = $arrDataz;
      header('Location:index.php');
    }else{
      $arrDataz[0][$arrData['id']] = $arrData['id'];
      $arrDataz[1][$arrData['id']] = $arrData['img'];
      $arrDataz[2][$arrData['id']] = $arrData['title'];
      $arrDataz[3][$arrData['id']] = $arrData['price'];
      $arrDataz[4][$arrData['id']] = 1;
      $_SESSION['shopcar'] = $arrDataz;
      header('Location:index.php');
    }

  }
}else{
  echo " There are no goods in the shopping cart !";
}

delete.php


<?php
session_start();
if(!empty($_GET['id'])){
  $arrData = $_SESSION['shopcar'];
  // Judge the corresponding commodity ID Information 
    if(in_array($_GET['id'],$arrData[0])){
      unset($arrData[0][$_GET['id']]);
      unset($arrData[1][$_GET['id']]);
      unset($arrData[2][$_GET['id']]);
      unset($arrData[3][$_GET['id']]);
      unset($arrData[4][$_GET['id']]);
      $_SESSION['shopcar'] = $arrData;
    }
    header('Location:spcar.php');
}


Related articles: