返回介绍

14.5 SESSION 应用实例

发布于 2025-01-30 22:11:37 字数 4945 浏览 0 评论 0 收藏 0

登陆例子:(请注意一定要自己敲一遍,不要 CV 大法)
首先上一下成果图,激起同学们写的欲望,登录页如下:
document/2015-09-04/55e9473ab4ec7
点击登陆之后如下:
document/2015-09-04/55e9478666a59
说明哦了,么问题。接下来自己实现一下。
首先数据库信息:
新建一个名为 login 的数据库,再建一个 user 表,表的结构如下图:
document/2015-09-04/55e9487784049
然后开始编码。
login.php

<?php
session_start();
if ( ( $_POST['username'] != null ) && ( $_POST['password'] != null ) ) {
$userName = $_POST['username'];
$password = $_POST['password'];

//从 db 获取用户信息   数据库信息改成自己的
$conn = mysqlo_connect('host','username','password','login');
$res = mysqli_query($conn,"select * from user where `username` =  '$userName' ");
$row = mysqli_fetch_assoc($res);
if ($row['passwd'] == $password) {
  //密码验证通过,设置 session,把用户名和密码保存在服务端
  $_SESSION['userName'] = $userName;
  $_SESSION['password'] = $password;

  //最后跳转到登录后的欢迎页面 //注意:这里我们没有像 cookie 一样带参数过去
  header('Location: welcome.php');
}
}

?>
<html>
<head>
<!-- 这里指明页面编码 -->
<meta charset="utf-8">
</head>
<body>
<form action="" method="POST">
  <div>
    用户名:<input type="text" name="username" />
    密  码:<input type="text" name="password" />
    <input type="submit" value="登录">    
  </div>
</form>
</body>
</html>

welcome.php 这里我们用的是 session 中的信息,而不是像 cookie 一样在 url 中带参数过来

<?php
session_start();
$userName = $_SESSION['userName'];
?>
<html>
<head>

</head>
<body>
welcome,<?php echo $userName;?>
</body>
</html>

购物车的例子:(请注意一定要自己敲一遍,不要 CV 大法)
数据库信息:建立名为 test 的数据库,库中有个 shop 表,表结构如下图:
document/2015-09-04/55e9496188de0

开始编码吧!
goodsList.php 这个是商品展示页,效果图如下:
document/2015-09-04/55e9450f14c3a
说明一下,如果是第一次购买某物品,则在购物车中加入该商品信息和计算总价,如果再次点击购买,则已购商品数量加 1,总价重新计算,查看购物车链接可以到购物车页面。

<?php
$goods = array();
//从数据库获取商品信息存入$goods 二维数组
$i = 0;
//这里请换上自己的数据库相关信息
mysqli_connect('host','username','password','test');
$res = mysqli_query($conn,'select * from shop');
//这里把商品信息放到$goods 二维数组,每一维存的是单个
//商品的信息,比如商品名、价格。
while ($row = mysqli_fetch_assoc($res)) {
  $goods[$i]['id'] = $row['id'];
  $goods[$i]['name'] = $row['name'];
  $goods[$i]['price'] = $row['price'];
  $i++ ;
}

?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
</head>
<body>
<?php
//取出商品信息显示在页面上,并添加购买功能
  foreach ($goods as $value) {
    echo ' 商品名 ' . $value['name'] . ' 价格 ' . $value['price'];
    echo "<a href=buy.php?name=" . $value['name'] . '&price=' . $value['price'] .">购买</a>";
    echo '<br />';
  }

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

buy.php 此页完成购买功能,然后再次跳转到商品列表。主要是做了在 session 中处理购买商品操作。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
</head>
<body>
<?php
//开启 session
session_start();

//获取传过来的商品名和价格
$name = $_GET['name'];
$price = $_GET['price'];

//把 session 中的商品信息和传过来的(刚买的) 商品信息对比
$goods = $_SESSION['goods'];
if ($name == $goods[$name]['name']) {
  //买过的话,则总价格增加,相应商品数量增加
  $_SESSION['totalPrice'] += $price;
  $goods[$name]['number'] += 1;
} else {
  //第一次买的话,将相应的商品信息添加到 session 中
  $goods[$name]['name'] = $name;
  $goods[$name]['price'] = $price;
  $goods[$name]['number'] += 1;
  $_SESSION['totalPrice'] += $price;
}

$_SESSION['goods'] = $goods;
//购买处理完毕后跳转到商品列表
header('location: goodsList.php');
?>
</body>
</html>

shoppingCart.php 此页展示购物车中的商品、价格、总价等信息。
效果图如下:
document/2015-09-04/55e945fc2e667

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
</head>
<body>
<?php
session_start();
//将 session 中的商品信息(即购物车中的商品) 和总价显示到页面
$goods = $_SESSION['goods'];
echo '您买了:<br />';
foreach ($goods as $value) {
echo $value['name'] . ' 价格 ' . $value['price'] . ' 数量 ' . $value['number'] . '<br />';
}
echo '总价:' . $_SESSION['totalPrice'] . '<br />';

?>
<a href="goodsList.php">返回商品列表</a>
</body>
</html>

购物车的例子完成了,自己亲自完成一遍后是不是很有成就感!!你很厉害!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文