前端入门-035-Session的实例

登陆例子:(请注意一定要自己敲一遍,不要CV大法)

首先上一下成果图,激起同学们写的欲望,登录页如下:

点击登陆之后如下:



说明哦了,么问题。接下来自己实现一下。

首先数据库信息

新建一个名为 login 的数据库,再建一个 user 表,表的结构如下图:

然后开始编码。

login.php代码

  1. <?php
  2. session_start();
  3. if ( ( $_POST[‘username‘] != null ) && ( $_POST[‘password‘] != null ) ) {
  4. $userName = $_POST[‘username‘];
  5. $password = $_POST[‘password‘];
  6. //从db获取用户信息 数据库信息改成自己的
  7. $conn = mysqli_connect(‘host‘,‘username‘,‘password‘,‘login‘);
  8. $res = mysqli_query($conn,"select * from user where `username` = ‘$userName‘ ");
  9. $row = mysqli_fetch_assoc($res);
  10. if ($row[‘passwd‘] == $password) {
  11. //密码验证通过,设置session,把用户名和密码保存在服务端
  12. $_SESSION[‘userName‘] = $userName;
  13. $_SESSION[‘password‘] = $password;
  14. //最后跳转到登录后的欢迎页面 //注意:这里我们没有像cookie一样带参数过去
  15. header(‘Location: welcome.php‘);
  16. }
  17. }
  18. ?>
  19. <html>
  20. <head>
  21. <!-- 这里指明页面编码 -->
  22. <meta charset="utf-8">
  23. </head>
  24. <body>
  25. <form action="" method="POST">
  26. <div>
  27. 用户名:<input type="text" name="username" />
  28. 密 码:<input type="text" name="password" />
  29. <input type="submit" value="登录">
  30. </div>
  31. </form>
  32. </body>
  33. </html>

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

  1. <?php
  2. session_start();
  3. $userName = $_SESSION[‘userName‘];
  4. ?>
  5. <html>
  6. <head>
  7. </head>
  8. <body>
  9. welcome,<?php echo $userName;?>
  10. </body>
  11. </html>

购物车的例子:(请注意一定要自己敲一遍,不要CV大法)

数据库信息:建立名为test的数据库,库中有个shop表,表结构如下图:

开始编码吧!

goodsList.php 这个是商品展示页,效果图如下:

说明一下,如果是第一次购买某物品,则在购物车中加入该商品信息和计算总价,如果再次点击购买,则已购商品数量加1,总价重新计算,查看购物车链接可以到购物车页面。

  1. <?php
  2. $goods = array();
  3. //从数据库获取商品信息存入$goods二维数组
  4. $i = 0;
  5. //这里请换上自己的数据库相关信息
  6. mysqli_connect(‘host‘,‘username‘,‘password‘,‘test‘);
  7. $res = mysqli_query($conn,‘select * from shop‘);
  8. //这里把商品信息放到$goods二维数组,每一维存的是单个
  9. //商品的信息,比如商品名、价格。
  10. while ($row = mysqli_fetch_assoc($res)) {
  11. $goods[$i][‘id‘] = $row[‘id‘];
  12. $goods[$i][‘name‘] = $row[‘name‘];
  13. $goods[$i][‘price‘] = $row[‘price‘];
  14. $i++ ;
  15. }
  16. ?>
  17. <!DOCTYPE html>
  18. <html>
  19. <head>
  20. <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  21. </head>
  22. <body>
  23. <?php
  24. //取出商品信息显示在页面上,并添加购买功能
  25. foreach ($goods as $value) {
  26. echo ‘ 商品名 ‘ . $value[‘name‘] . ‘ 价格 ‘ . $value[‘price‘];
  27. echo "<a href=buy.php?name=" . $value[‘name‘] . ‘&price=‘ . $value[‘price‘] .">购买</a>";
  28. echo ‘<br />‘;
  29. }
  30. ?>
  31. <a href="shoppingCart.php">查看购物车</a>
  32. </body>
  33. </html>

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

  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  4. </head>
  5. <body>
  6. <?php
  7. //开启session
  8. session_start();
  9. //获取传过来的商品名和价格
  10. $name = $_GET[‘name‘];
  11. $price = $_GET[‘price‘];
  12. //把session中的商品信息和传过来的(刚买的)商品信息对比
  13. $goods = $_SESSION[‘goods‘];
  14. if ($name == $goods[$name][‘name‘]) {
  15. //买过的话,则总价格增加,相应商品数量增加
  16. $_SESSION[‘totalPrice‘] += $price;
  17. $goods[$name][‘number‘] += 1;
  18. } else {
  19. //第一次买的话,将相应的商品信息添加到session中
  20. $goods[$name][‘name‘] = $name;
  21. $goods[$name][‘price‘] = $price;
  22. $goods[$name][‘number‘] += 1;
  23. $_SESSION[‘totalPrice‘] += $price;
  24. }
  25. $_SESSION[‘goods‘] = $goods;
  26. //购买处理完毕后跳转到商品列表
  27. header(‘location: goodsList.php‘);
  28. ?>
  29. </body>
  30. </html>

shoppingCart.php 此页展示购物车中的商品、价格、总价等信息。

效果图如下:

  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  4. </head>
  5. <body>
  6. <?php
  7. session_start();
  8. //将session中的商品信息(即购物车中的商品)和总价显示到页面
  9. $goods = $_SESSION[‘goods‘];
  10. echo ‘您买了:<br />‘;
  11. foreach ($goods as $value) {
  12. echo $value[‘name‘] . ‘ 价格 ‘ . $value[‘price‘] . ‘ 数量 ‘ . $value[‘number‘] . ‘<br />‘;
  13. }
  14. echo ‘总价:‘ . $_SESSION[‘totalPrice‘] . ‘<br />‘;
  15. ?>
  16. <a href="goodsList.php">返回商品列表</a>
  17. </body>
  18. </html>

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

来自为知笔记(Wiz)

时间: 2024-08-06 19:48:56

前端入门-035-Session的实例的相关文章

Spring MVC注解配置结合Hibernate的入门教程及其代码实例

原文:Spring MVC注解配置结合Hibernate的入门教程及其代码实例 源代码下载地址:http://www.zuidaima.com/share/1787210045197312.htm 1.概述 本文旨在搭建Spring MVC+Hibernate开发框架,通过一个简单的demo讲解Spring MVC的相关配置文件,以及通过注解方式实现简单功能. 开发框架:Spring+Spring MVC+Hibernate(Spring所用的版本为3.0.5). 数据库:MySQL(数据库名称

Web前端入门学习(2)——HTML常用标签

HTML标签 a标签 a标签是一个超链接标签,用于从一个页面链接到另一个页面.在<Web前端入门学习(1)>有提到过4个伪类,分别是a:link.a:visited.a:hover.a:active. a:link代表的是未访问过的链接,当访问者首次打开网页未点击链接时,所表现的形式: a:visited代表的是访问过的链接,相对于link,是访问者点击了连接后,所表现的形式: a:hover代表的是当鼠标经过链接上面时所表现的形式,鼠标经过后,链接会有所变化: a:active代表的是当用户

转摘_结合个人经历总结的前端入门方法

转载请注明出处: https://github.com/qiu-deqing/FE-learning Table of Contents generated with DocToc FE-learning 必备基础技能 基本开发工具 学习方法和学习目标 入门之路 继续提高 一些个人经历 LingyuCoder的学习经历 工具 技能 语言基础 进阶 项目 未来 其他 入门书 一些不错的网站 历程 MrRaindrop的学习经历 缘起 项目,下一个项目 收集癖和知识管理 跟对神 读书 前端的定位 最

前端入门方法(大全)

转载请注明出处: https://github.com/qiu-deqing/FE-learning Table of Contents generated with DocToc FE-learning 必备基础技能 基本开发工具 学习方法和学习目标 入门之路 继续提高 一些个人经历 LingyuCoder的学习经历 工具 技能 语言基础 进阶 项目 未来 其他 入门书 一些不错的网站 历程 MrRaindrop的学习经历 缘起 项目,下一个项目 收集癖和知识管理 跟对神 读书 前端的定位 最

Web前端入门学习(5)——浮动原理及清除浮动

浮动原理及清除浮动 上节回顾 在上节的<Web前端入门学习(4)-- 块级元素和行内元素之特征与转换>中(http://cherry360.blog.51cto.com/12176744/1863945),介绍了块级元素和行内元素的特征,及粗略介绍了如何进行转换.加上display属性,可以指定元素的类型,如display:block.display:inline,以及display:inline-block.当然用得最多的是最后一个display:inline-block.结合例子来看: 例

web前端入门:一小时学会写页面

一小时学会写页面 作为一个懒癌晚期患者,总是习惯找各种简单的解决问题的方法,也习惯性把问题简单化,所以今天想分享给大家简单的web前端入门方法.既然题目已经定了一个小时那么废话就不多说了,计时开始 1.什么是前端 简单来说,前端就是做网页(大神勿喷,本文一切从简) 2.前端技术 html,是首字母缩写,具体意义请百度,大家要记住“t”代表text,ok你们没有想错,text就是文本文件text,好了准备工作做好了,现在开始做网页 3.我们的第一个网页 请身边有电脑的小伙伴和我一起开始,在桌面鼠标

web前端入门与java入门

关于web前端入门一.软件结构划分1.C/S结构:Client(客户)-Server(服务器)之间的交互.特点:客户端的软件必须升级才能使用服务器高版本的功能.例如:阿里巴巴等.2.B/S结构:Browser(浏览器)-Server(服务器)之间的交互.特点:浏览器端的软件无需特定的升级就可访问服务器端的网站.例如:网易新闻等.JavaWeb/EE均基于B/S结构.二.网站基本认识基于B/S结构的应用都叫网站.组成:由很多的html标签组成.三.W3C组织规范了html.css.js(javas

web前端入门到实战:css选择器和css文本样式相关

[文章来源微信公众号:每天学编程]---关注,后台领取编程资源 css基础-css选择器和css文本样式相关: 使用link链入外部样式,页面加载时会同时加载样式 @import url("*.css");使用导入式,页面加载完后,才会加载样式 链接伪类的顺序 :link-> :visited ->:hover-> :active 或者 : visited -> : link ->:hover-> :active 选择器的优先级: id选择器>

前端PHP Session的实例

登陆例子:(请注意一定要自己敲一遍,不要CV大法) 首先上一下成果图,激起同学们写的欲望,登录页如下:  点击登陆之后如下: 说明哦了,么问题.接下来自己实现一下. 首先数据库信息: 新建一个名为 login 的数据库,再建一个 user 表,表的结构如下图: 然后开始编码. login.php代码 <?php session_start(); if(( $_POST['username']!=null)&&( $_POST['password']!=null)){ $userNam