PHP 会话购物车

Posted Yao1101

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 会话购物车相关的知识,希望对你有一定的参考价值。

主页面

<body>
<?php
//session_start();//开启session

//HTTP,无状态性
//SESSION   COOKIE

//SESSION:存储在服务端的,每个人存一份,可以存储任意类型的数据,默认过期时间15分钟
//COOKIE:存储在客户端的,每个人存一份,只能存储字符串,默认永不过期

//$_SESSION["uid"] = "zhangsan";//写入SESSION

//echo $_SESSION["uid"];

//setcookie("uid","zhangsan"); //设置COOKIE




?>
<a href="test1.php">跳转</a>
</body>
</html>

 跳转后页面

<body>
<?php
//session_start();
//echo $_COOKIE["uid"];
//echo $_SESSION["uid"];
?>
</body>
</html>

用法示例:
登录页面

<body>
<h1>登录</h1>
<form action="loginchuli.php" method="post">
    <div>用户名:<input type="text" name="uid" /></div>
    <div>密码:<input type="text" name="pwd" /></div>
    <div><input type="submit" value="登录" /></div>
</form>
</body>
</html>

 

 登录处理页面

<?php
session_start();
include("../DBDA.php");
$db = new DBDA();

 

主页面

<body>
<?php
session_start();

if(empty($_SESSION["uid"]))  //控制一下不可以随便访问,只有登录成功之后才能访问其他页面
{
    header("location:login.php");
}


echo $_SESSION["uid"];
?>
</body>
</html>

 

 

示例二:加购物车
显示水果信息页面

<body>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
    <td>水果名称</td>
    <td>水果价格</td>
    <td>水果产地</td>
    <td>水果库存</td>
    <td>操作</td>
</tr>
<?php

include("../DBDA.php");
$db = new DBDA();

$sql = "select * from fruit";

$attr = $db->Query($sql);

foreach($attr as $v)
{
    echo "<tr><td>{$v[1]}</td>
    <td>{$v[2]}</td>
    <td>{$v[3]}</td>
    <td>{$v[4]}</td>
    <td><a href=‘addgwc.php?code={$v[0]}‘>加入购物车</a></td></tr>";
}

?>
</table>

<a href="gouwuche.php">查看购物车</a>
</body>
</html>

 

 水果处理页面

<?php
session_start();

$code = $_GET["code"];


//如果第一次点击
if(empty($_SESSION["sg"]))
{
    $attr = array(array($code,1));
    $_SESSION["sg"] = $attr;
}
else
{
    //第n次点击,n!=1
    $attr = $_SESSION["sg"];
    
    //判断该水果师是否已经存在
    if(iscunzai($code))
    {
        foreach($attr as $k=>$v)
        {
            if($v[0]==$code)
            {
                $attr[$k][1] = $v[1]+1;
            }
        }
        
        $_SESSION["sg"] = $attr;
    }
    else
    {
        $arr = array($code,1);
        array_push($attr,$arr);
        
        $_SESSION["sg"] = $attr;
    }

}

function iscunzai($c)
{
    $attr = $_SESSION["sg"];
    
    $b = false;
    
    foreach($attr as $v)
    {
        $b = $b || in_array($c,$v);
    }
    
    return $b;
}

header("location:showlist.php");

 

 购物车页面

<body>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
    <td>水果名称</td>
    <td>水果价格</td>
    <td>数量</td>
</tr>
<?php
session_start();

include("../DBDA.php");
$db = new DBDA();

$attr = $_SESSION["sg"];

foreach($attr as $v)
{
    $sql = "select Name,Price from fruit where Ids=‘{$v[0]}‘";
    
    $arr = $db->Query($sql);
    
    echo "<tr><td>{$arr[0][0]}</td>
    <td>{$arr[0][1]}</td>
    <td>{$v[1]}</td></tr>";
}


?>
</table>
</body>
</html>


$uid = $_POST["uid"];
$pwd = $_POST["pwd"];

$sql = "select count(*) from Users where Uid=‘{$uid}‘ and Pwd = ‘{$pwd}‘";

$r = $db->StrQuery($sql);

if($r==1)
{
    $_SESSION["uid"] = $uid;
    header("location:main.php");
}
else
{
    header("location:login.php");
}

 

以上是关于PHP 会话购物车的主要内容,如果未能解决你的问题,请参考以下文章

我如何在 React 中使用 PHP 会话?

从数据库而不是会话中获取特定产品的数量 - 购物车(PHP 和 MySQL)

使用会话变量在 PHP 中创建一个简单的购物篮

laravel 5.3会话访问购物车

如何在php中获取会话数组值?

在规则中使用 php 会话值进行自定义 jquery 验证