前端PHP入门-035-Session的实例
登陆例子:(请注意一定要自己敲一遍,不要CV大法)
首先上一下成果图,激起同学们写的欲望,登录页如下:
点击登陆之后如下:
说明哦了,么问题。接下来自己实现一下。
首先数据库信息:
新建一个名为 login 的数据库,再建一个 user 表,表的结构如下图:
然后开始编码。
login.php代码
<?php
session_start();
if(( $_POST['username']!=null)&&( $_POST['password']!=null)){
$userName = $_POST['username'];
$password = $_POST['password'];
//从db获取用户信息 数据库信息改成自己的
$conn = mysqli_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>
<!-- 这里指明页面编码 -->
<metacharset="utf-8">
</head>
<body>
<formaction=""method="POST">
<div>
用户名:<inputtype="text"name="username"/>
密 码:<inputtype="text"name="password"/>
<inputtype="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表,表结构如下图:
开始编码吧!
goodsList.php 这个是商品展示页,效果图如下:
说明一下,如果是第一次购买某物品,则在购物车中加入该商品信息和计算总价,如果再次点击购买,则已购商品数量加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>
<metahttp-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 />';
}
?>
<ahref="shoppingCart.php">查看购物车</a>
</body>
</html>
buy.php 此页完成购买功能,然后再次跳转到商品列表。主要是做了在session中处理购买商品操作。
<html>
<head>
<metahttp-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 此页展示购物车中的商品、价格、总价等信息。
效果图如下:
<html>
<head>
<metahttp-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 />';
?>
<ahref="goodsList.php">返回商品列表</a>
</body>
</html>
购物车的例子完成了,自己亲自完成一遍后是不是很有成就感!!你很厉害!!
前端PHP入门-035-Session的实例的更多相关文章
- openresty 前端开发入门五之Mysql篇
openresty 前端开发入门五之Mysql篇 这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysql获取数据,并返回给用户 操作mysql主要用到了lua-resty-my ...
- PHP之session相关实例教程与经典代码
·php 中cookie和session的用法比较 ·phpmyadmin报错:Cannot start session without errors问题 ·php中cookie与session应用学 ...
- web前端开发入门全套学习方法路径,兼职在家做网站也能月入上万!
前端学习路径 1.WEB前端快速入门 在本阶段,我们需要掌握 HTML 与 CSS 基础,当然,也包含 H5 和 C3 的新特性.这个部分内容非常简单,而且非常容易掌握.相信你也更愿意学习这个部分,毕 ...
- 每天成长一点---WEB前端学习入门笔记
WEB前端学习入门笔记 从今天开始,本人就要学习WEB前端了. 经过老师的建议,说到他每天都会记录下来新的知识点,每天都是在围绕着这些问题来度过,很有必要每天抽出半个小时来写一个知识总结,及时对一天工 ...
- WCF会话(Session)与实例(Instance)管理
一.理解Session 1.Session的作用:保留Client和Service之间交互的状态,确保Client与Service之间交互唯一性(SessionId),即:多个Client同时访问Se ...
- 使用 gulp 搭建前端环境入门篇(转载)
本文转载自: 使用 gulp 搭建前端环境入门篇
- Web前端小白入门指迷
前注:这篇文章首发于我自己创办的服务于校园的技术分享 [西邮 Upper -- 004]Web前端小白入门指迷,写得很用心也就发在这里. 大前端之旅 大前端有很多种,Shell 前端,客户端前端,Ap ...
- Web前端JQuery入门实战案例
前端jquery入门到实战 为什么要学习Jquery?因为生活. 案例: <!DOCTYPE html> <html lang="zh-CN"> <h ...
- ASP.NET MVC下实现前端视图页的Session
在ASP.NET MVC的控制器中可以实现Session处理.如果要在前端视图页实现Session该如何做呢?可以使用window.sessionStorage来做. AlexChittock用jQu ...
- 鸿蒙OS前端开发入门指南:网络图片_Image渲染网络图片
目录: 1.开启明文传输 2.权限申请 3.引入http插件 4.案例展示 5.<鸿蒙OS前端开发入门指南>文章合集 开启明文传输 在config.json配置文件添加如下配置(如果不开启 ...
随机推荐
- kylin-note
http://www.cnblogs.com/tgzhu/category/915975.html https://sdk.cn/news/3566 https://www.linuxidc.com/ ...
- 学习GIT 你只要这一篇(转)
http://blog.csdn.net/afei__/article/details/51476529 安装之后第一步 安装 Git 之后,你要做的第一件事情就是去配置你的名字和邮箱,因为每一次提交 ...
- ES6的新特性(10)——Class 的基本语法
Class 的基本语法 简介 JavaScript 语言中,生成实例对象的传统方法是通过构造函数.下面是一个例子. function Point(x, y) { this.x = x; this.y ...
- 最全的NB-IoT芯片厂商、模组厂商信息
NB-IoT作为LPWAN(低功耗广域网)的新兴技术,因为具有低功耗.低成本.广覆盖.海量节点等优势,并且在授权频段可以与2G.3G无缝连接而被运营商所青睐且接受.特别是到了2017年,据统计全球有5 ...
- 对首师大研究生院的UI分析
我们分析的是首都师范大学研究生院的UI界面 网站链接http://grad.cnu.edu.cn/index.htm 学校设计和石家庄铁道大学的界面类似,都是有一个大的置顶的名字,将学校或者学院的名字 ...
- .net组件和com组件&托管代码和非托管代码
com组件和.net组件: COM组件是非托管对象,可以不需要.NET框架而直接运行,.NET框架组件是托管对象,必须有.NET框架的支撑才能运行. COM组件有独立的类型库文件,而.NET组件是通过 ...
- 博弈---威佐夫博奕(Wythoff Game)
这个写的不错 威佐夫博奕(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同 时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜. 这种情况下是颇为复杂 ...
- Android 8悬浮窗适配
背景 APP推出时,提示是退出还是更改账号,这个提示框是系统级别的.然而我的Android 9 会崩溃,宁外一个小伙伴Android 7运行理想.报错提示permission denied for w ...
- Spring1()
目的: 降低Java开发的复杂性 使用策略: 基于POJO的轻量级和最小侵入式的编程 通过依赖注入和面向接口实现松耦合 基于切面和惯例进行声明式编程 通过切面和模版减少样式代码 依赖注入:由Sprin ...
- virsh 命令行管理虚拟机
重用命令和选项 1:查看运行的虚拟机 virsh list 2:查看所有的虚拟机(关闭和运行的虚拟机) virsh list --all 3:连接虚拟机 virsh console +域名(虚 ...