zoukankan      html  css  js  c++  java
  • 前端PHP入门-035-Session的实例

    登陆例子:(请注意一定要自己敲一遍,不要CV大法)
    首先上一下成果图,激起同学们写的欲望,登录页如下:
    document/2015-09-04/55e9473ab4ec7
    点击登陆之后如下:


    document/2015-09-04/55e9478666a59说明哦了,么问题。接下来自己实现一下。

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

    document/2015-09-04/55e9487784049然后开始编码。

    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. <metacharset="utf-8">
    23. </head>
    24. <body>
    25. <formaction=""method="POST">
    26. <div>
    27. 用户名:<inputtype="text"name="username"/>
    28. 密 码:<inputtype="text"name="password"/>
    29. <inputtype="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表,表结构如下图:
    document/2015-09-04/55e9496188de0

    开始编码吧!

    goodsList.php 这个是商品展示页,效果图如下:
    document/2015-09-04/55e9450f14c3a
    说明一下,如果是第一次购买某物品,则在购物车中加入该商品信息和计算总价,如果再次点击购买,则已购商品数量加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. <metahttp-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. <ahref="shoppingCart.php">查看购物车</a>
    32. </body>
    33. </html>

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

    1. <html>
    2. <head>
    3. <metahttp-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 此页展示购物车中的商品、价格、总价等信息。

    效果图如下:
    document/2015-09-04/55e945fc2e667

    1. <html>
    2. <head>
    3. <metahttp-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. <ahref="goodsList.php">返回商品列表</a>
    17. </body>
    18. </html>

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





  • 相关阅读:
    General part中方向选取的作用
    mount part中位置的作用
    关于zero pivot
    Revit二次开发示例:ModelessForm_ExternalEvent
    elasticsearch6.4 memory locking requested for elasticsearch process but memory is not locked
    百度网盘 http://pandownload.com/index.html
    MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!
    linux 系统优化
    服务器cpu过高修复:操作系统内核bug导致
    Jvm中时区设置方式
  • 原文地址:https://www.cnblogs.com/pangxiansheng/p/c2807e3a545230d87a1dfcaa398c2c9f.html
Copyright © 2011-2022 走看看