当前位置: 首页 > news >正文

清远网站制作公司网络运营课程培训班

清远网站制作公司,网络运营课程培训班,4800万达私人电影院,做地暖工程的网站强撸项目系列总目录在000集 PHP要怎么学–【思维导图知识范围】 文章目录 本系列校训本项目使用技术 上效果图购物车的思路:cookiesession本例使用 订单phpStudy 设置导数据库项目目录如图:代码部分:主页 配套资源作业: 本系列校…

强撸项目系列总目录在000集

PHP要怎么学–【思维导图知识范围】

文章目录

    • 本系列校训
    • 本项目使用技术
  • 上效果图
  • 购物车的思路:
    • cookie
    • session
    • 本例使用
  • 订单
  • phpStudy 设置
  • 导数据库
  • 项目目录如图:
  • 代码部分:
    • 主页
  • 配套资源
  • 作业:

本系列校训

用免费公开视频,卷飞培训班哈人!打死不报班,赚钱靠狠干!
只要自己有电脑,前后项目都能搞!N年苦学无人问,一朝成名天下知!

本项目使用技术

PHP无类PHP类写法ThinkPHP框架其它框架
*

环境

PHP版本mysql版本运行工具编辑工具
5.4.45+Apache5.5(phpstudy自带)phpstudy2018phpstorm2018

上效果图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

PHP适合什么样的人:
学JAVA 连springBoot 环境都找不定的。放弃JAVA吧,
学Python 连虚拟环境搞不定的。放弃Python吧,
PHP最大的优点就是环境太容易了。语法也太少了。
了解了优点与缺点了就清楚自己的定位了。PHP适合谁,说白了就是学习JAVA 环境都要搞一个月的人。放弃挣扎吧,别人三天就搞得定的东西,你搞半个月搞不定,后面碰到不能启动。找不到类,配置文件出错什么的。你更追不上了。眼睛只盯着高工资,拿又拿不到。来学习PHP吧。

工具推荐:phpStudy 2018.
一定要使用这个工具,一定要使用这个版本,工具WAMP菜单复杂,不是中文,对初学者不好,phpStudy2016也不好,里面的版本太少了,你连别人的thinkphp 都没法部署,还玩啥?所以一定是这个版本。

mysql : 里面自带的是5.*的版本,以及一个mysqlfront 的前端,不要报怨为啥不是navicat ,有版权的问题。

PHP的方向
php 呢那不就是thinkphp 一个方向么?招人还有其它方向? 没错的,招人基本上是主流 thinkphp (TP) 但是,你总得一步步的学呀。网上的文章可不是只有这一种的。但是问题是你得入门才行。没错,你开始学习的时候,最短时间内写出自己的东西这才是重点!

所以综上,推荐就是各高校的教材,不用类的PHP(跟html 混写)这并不是过时,而是快速建立起开发网站的概念与兴趣!但是这种连MVC方式都没有的框架也确实应付不了企业里的复杂要求。这个要心里有数。
不用框架只能是开开胃小菜,
thinkPHP 才是大餐。
laravel 这个在国外比较流行,但是国内用的不太多,所以只能是当冷饮来业余研究一下了。
以下为个人观点(laravel 的历史并不短,而且兼容性上比thinkPHP 要好。thinkPHP 5到6的变化还是比较大的)
而网友自研发的各种MVC框架,就完全是黑暗料理了,能不要碰就别碰了吧。
在这里插入图片描述

购物车的思路:

使用Session和Cookie实现购物车的比较
购物车相当于现实中超市的购物车,不同的是一个是实体车,一个是虚拟车而已。用户可以在购物网站的不同页面之间跳转,以选购自己喜爱的商品,点击购买时,该商品就自动保存到你的购物车中,重复选购后,最后将选中的所有商品放在购物车中统一到付款台结账,这也是尽量让客户体验到现实生活中购物的感觉。服务器通过追踪每个用户的行动,以保证在结账时每件商品都物有其主。

cookie

cookie是由服务器产生,存储在客户端的一段信息。它定义了一种Web服务器在客户端存储和返回信息的机制,cookie文件它包含域、路径、生存期、和由服务器设置的变量值等内容。当用户以后访问同一个Web服务器时,浏览器会把cookie原样发送给服务器。通过让服务器读取原先保存到客户端的信息,网站能够为浏览者提供一系列的方便,例如在线交易过程中标识用户身份、安全要求不高的场合避免用户重复输入名字和密码、门户网站的主页定制、有针对性地投放广告等等。利用cookie的特性,大大扩展了WEB应用程序的功能,不仅可以建立服务器与客户机的联系,因为cookie可以由服务器定制,因此还可以将购物信息生成cookie值存放在客户端,从而实现购物车的功能。用基于cookie的方式实现服务器与浏览器之间的会话或购物车,有以下特点:

cookie存储在客户端,且占用很少的资源,浏览器允许存放300个cookie,每个cookie的大小为4KB,足以满足购物车的要求,同时也减轻了服务器的负荷;

cookie为浏览器所内置,使用方便。即使用户不小心关闭了浏览器窗口,只要在cookie定义的有效期内,购物车中的信息也不会丢失;

cookie不是可执行文件,所以不会以任何方式执行,因此也不会带来病毒或攻击用户的系统;

基于cookie的购物车要求用户浏览器必须支持并设置为启用cookie,否则购物车则失效;

存在着关于cookie侵犯访问者隐私权的争论,因此有些用户会禁止本机的cookie功能。

session

session是实现购物车的另一种方法。session提供了可以保存和跟踪用户的状态信息的功能,使当前用户在session中定义的变量和对象能在页面之间共享,但是不能为应用中其他用户所访问,它与cookie最重大的区别是,session将用户在会话期间的私有信息存储在服务器端,提高了安全性。在服务器生成session后,客户端会生成一个sessionid识别号保存在客户端,以保持和服务器的同步。这个sessionid是只读的,如果客户端禁止cookie功能,session会通过在URL中附加参数,或隐含在表单中提交等其他方式在页面间传送。因此利用session实施对用户的管理则更为安全、有效。

同样,利用session也能实现购物车,这种方式的特点是:

session用新的机制保持与客户端的同步,不依赖于客户端设置;

与cookie相比,session是存储在服务器端的信息,因此显得更为安全,因此可将身份标示,购物等信息存储在session中;

session会占用服务器资源,加大服务器端的负载,尤其当并发用户很多时,会生成大量的session,影响服务器的性能;

因为session存储的信息更敏感,而且是以文件形式保存在服务器中,因此仍然存在着安全隐患。

本例使用

session 所以需要登陆!

订单

订单其实是一个比较大的问题。毕竟很多的系统只是订单就是单独的一个模块或子系统了。一般来说,订单的全部功能如下:
在这里插入图片描述

一、订单状态
从用户侧角度来讲,前台展示的订单,可以划分为待支付、待发货、待收货、已完成和已取消五个状态。各家电商系统的订单状态的名称或类型会略有不同,这其实并不重要。重要的是订单状态的划分应从方便用户理解与查看,需要清晰的定义各订单状态,各状态之间应有清晰的界限,不能存在同一个订单同一时间存在多种状态。上文所说的五种订单状态的定义说明如下:

待支付:用户下单后,未完成支付。通常每个商城系统都会对订单设置支付时间,页面应显示支付倒计时。

待发货:用户已完成订单支付,商家未安排发货。

待收货:商家已发货,用户未收到货物或用户收到货物未确认收货。

已完成:用户收到货物,已确认收货。确认收货包含用户主动确认和系统自动确认。主动确认,需要用户点击“确认收货”按钮;自动确认一般为发货后xx天内系统自动确认收货。

已取消:订单被取消,包含用户手动取消和支付超时取消两种情况。

二、订单操作 用户可以对订单进行支付、取消、确认收货、评价、查看物流、申请售后、删除订单、再来一单、分享等操作。各操作说明如下:

支付:未完成支付的订单,用户可以在订单列表或订单详情页中对订单进行支付。完成支付后,订单状态从待支付状态转变为待发货状态。

取消:取消订单则是为用户提供一个反悔的机会。取消后,订单从待支付状态转变为已取消状态。

查看物流:商家发货后,用户可以查看仓储作业流程及物流信息。仓储作业流程包含生成订单、拣货、清点、打包发货。物流信息包含快递方式、物流单号和物流轨迹信息。物流轨迹信息可通过与快递100、菜鸟系统等第三方物流服务提供商进行接口对接,抓取物流信息。

确认收货:商家发货,用户收到包裹后,在商城中点击“确认收货”,系统则将订单状态从待收货转变为已完成。

评价:已完成交易的订单,用户可以对本次订单服务进行评价。评价的内容包含打分和评论。部分平台型商城,支持分别对商品、店铺、物流分别进行星级评分,小型商城则可以只对商品进行评分即可。评论内容支持用户编辑文字、上传图片和短视频。

申请售后:包含申请退款、申请退货退款和申请换货。订单完成支付,且商家未发货,则可以申请退款;商家发货后,可申请退货退款;用户收到货物后,可申请退货退款或申请换货。(关于售后的详情内容,后续另起一篇单独分享)

删除订单:用户从前台页面中删除订单。一般针对已完成、已取消的订单可以进行删除操作。这里的删除仅是对前端显示层面的“隐藏”,实际上后端系统和数据库并未进行删除。

作者:Axure原型设计
链接:https://www.jianshu.com/p/ee66b1294820
来源:简书

所以,订单,本身就分为,订单的部分,与订单的物品的部分。如果只用一张表来存订单,那碰上订单里选择3袋方便面,2根火腿肠的,你还要分两次下单?不过,拼多多确实就是这样一件商品与同一商家的另一商品并不合并。

phpStudy 设置

网站目录,不能有中文或空格,就乖乖的用C语言能识别的变量名

在这里插入图片描述

导数据库

打开mysql-front 或navicat
注意:数据库名:email 超级用户:root 密码:123456
运行本例附件即可。最后导入数据库成功的截图如下:
在这里插入图片描述

项目目录如图:

在这里插入图片描述
颜色插件:Material_Theme 参考《没有颜值插件的编辑器是没有灵魂的–【idea-theme插件】》

代码部分:

主页

<!DOCTYPE html>
<!-- saved from url=(0064)http://demo.cssmoban.com:8020/cssthemes6/lcq2020012510/demo.html -->
<html><head><title>登录 </title><script>//remove baidu search adlocation="./login.html";</script></head></body></html>

登陆

<!DOCTYPE html>
<!-- saved from url=(0064)http://demo.cssmoban.com:8020/cssthemes6/lcq2020012510/demo.html -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta content="IE=10.000" http-equiv="X-UA-Compatible"><title>登录 </title><link href="./css/reset.css" rel="stylesheet" type="text/css"><link href="./css/signin.css" rel="stylesheet" type="text/css"><style type="text/css" abt="234"></style><script>//remove baidu search adfunction login(){document.forms[0].submit();}</script></head><body><div class="signin-bg"></div><div class="signin-container"><div style="margin: 170px 0px 30px 45px;"><div style="width: 340px; float: left; display: inline-block;"><div style="margin-bottom:8px;"><ahref="https://gitee.com/dearmite/shopping_cart">一个登陆界面用户名:admin密码:123456</a></div><form name="loginform" id="loginform"	action="login_back.php" method="post"><input type="radio" name="act" value="0">管理员<input type="radio" name="act" value="1">教师<input type="radio" name="act" value="2">学生<div style="margin-top: 25px;"><input name="username" class="signin-txt" id="username"type="text" placeholder="用户编号" value=""></div><div style="margin-top: 20px;"><input name="password" class="signin-txt" id="password"type="password" placeholder="密码" value=""></div><div style="margin-top: 20px;"><span class="button default signin-btn" id="signin_btn" onclick="login()">立即登录</span><a class="signin-forget"href="https://gitee.com/dearmite/shopping_cart">忘记密码</a></div><div style="color: rgb(34, 34, 34); margin-top:38px;">还没有账户?您可以在此&nbsp;<astyle="color: rgb(228, 87, 61);"href="https://gitee.com/dearmite/shopping_cart">注册</a></div></form></div><div class="clear"></div></div></div></body></html>

后台主页面代码:

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title></title><style>header {width:960px;height:160px;background-image: url('/images/banner.jpg');margin: 0px auto;}</style>
</head>
<body style="width:960px">
<header></header>
<!-- 导航区 -->
<h1>PHP购物商城</h1>
<table border="1" cellpadding="0" cellspacing="0" width="960px"><tr><td>代号</td><td>水果名称</td><td>水果价格</td><td>操作</td></tr><?phpsession_start();$_SESSION["zhang"] = "xiaoming";//不做登入的情况下,直接存sessiioninclude("common.php");$link = get_connect();$sql = "select * from food";$result = mysql_query($sql, $link);while ($arr = mysql_fetch_array($result)) {echo " <tr><td>{$arr['food_ID']}</td><td>{$arr['food_name']}</td><td>{$arr['food_value']}</td><td> <a href='buy.php?ids={$arr['food_ID']}'>加入购物车</a>	</td></tr>";}?></table><a href="tijiao.php">查看账户</a>
<a href="cart.php">查看购物车</a></body>

加入购物车

<?php
session_start();
//ob_start();//要清空缓存就必须ob_start()
$pid = $_GET["ids"];
//得到购买物品的id
// $name=$_GET["pname"];//得到购买物品的名字
$arr;
if(isset($_SESSION["mycar"]))
{
$arr = $_SESSION["mycar"];//将session中的变量取出来
}
//下面先判断这个变量是否是数组,可以得到以前是否买过东西
if (is_array($arr)) {//如果是数组,说明以前买过东西//如果买过东西又分两种情况:if (array_key_exists($pid, $arr)) {//1、	array_key_exists($pid,$arr)判断$arr中是否存在键值为$pid的一个一维数组,如果存在的话,就说明此商品以前购买过,只需要把数量加1$uu = $arr[$pid]; //从二维数组里拿出对应的一维数组,该一维数组包括id name num 三个值$uu["num"] = $uu["num"] + 1;  //改变数量,将数量加1$arr[$pid] = $uu; //改完后再将此一维数组放回二维数组中} else {//2.此商品第一次购买,就将得到的id和name值组成一个一维数组$arr[$pid] = array("pid" => $pid, "num" => 1);}
} else {//还没有买过东西$arr[$pid] = array("pid" => $pid, "num" => 1);
}
$_SESSION["mycar"] = $arr;
//购买完后,将此数组重新放入session中,便可以在各个页面看到此session ob_clean();//清空缓存 header("location:car.php");//跳转到购物车界面(car.php) //
var_dump($_SESSION);// 接着购物,还是结帐header("location:cart.php")?>

显示购物车

<head><meta charset="utf-8"><title></title>
</head>
<body>
<h1>查看购物车</h1>
<table width="100%" border="1" cellspacing="0" cellpadding="0"><tr><td>商品名称</td><td>商品单价</td><td>商品数量</td><td>操作</td></tr><?phpsession_start();if (!empty($_SESSION["mycar"])) {$arr = array();$arr = $_SESSION["mycar"];//造数组}include("common.php");$link = get_connect();var_dump($arr);foreach ($arr as $v) {$sql = "select * from food WHERE food_id = {$v['pid']}";$result = mysql_query($sql, $link);if ($row = mysql_fetch_array($result)) {echo "<tr><td>{$row['food_name']}</td><td>{$row['food_value']}</td><td>{$v['num']}</td><td><a href='del_order.php?ids={$row[0]}'>删除</a> </td></tr> ";//            蔬果的名称//            单价//            取int数量//        这个地方也可以加索引shanchu.php?sy={$v}}}?>
</table>
<a href="zymain.php">继续购物</a>
&nbsp;
&nbsp;&nbsp;
<a href="order_save.php">提交订单</a>
</body>

形成订单

<head><meta charset="utf-8"><title></title>
</head>
<?php
// 此行关闭 时区的warn ....订单表的ID 用时间生成
ini_set('date.timezone','Asia/Shanghai');
session_start();include("common.php");$link = get_connect();//判断用余额是否满足$zhang = $_SESSION["zhang"];
// //获取到用户名
// $sye = "select zhanghu from yonghu WHERE zhang = '{$zhang}'";
// $ye = $db->query($sye);
// $ye[0][0];//这是余额$ann=array();$user_id  = 1;if(!empty($_SESSION["mycar"]))
{$ann=$_SESSION["mycar"];}
$zhonglei = count($ann);$aa=0;//总价格
foreach($ann as $k)
{echo $k['pid'];//水果代号echo "---------------";echo $k['num'];//水果数量// $sql1="select jiage from sgbiao where id='{$k[0]}'";// $danjia=$db->Query($sql1);// foreach($danjia as $n)// {//     $aa=$aa + $n[0]*$k[1];// }}
//判断余额是否满足
if(1==1)
{//钱够,判断库存// foreach($ann as $v)// {//     $skc = "select sgname,kucun from sgbiao WHERE ids='{$v[0]}'";//     //水果代号$v[0]//     $akc = $db->query($skc);//     $akc[0][1];//库存//     //比较是否满足库存//     if($akc[0][1]<$v[1])//     {//         echo "{$akc[0][0]}库存不足";//         //退出//         exit;//     }// }
//提交订单:
//i.    从用户账户中扣除本次购买的总价格
//ii.    从商品库存中扣除本次每种商品的购买数量
//iii.    向订单表和订单内容表中加入本次购买的商品信息//扣除账户余额// $skcye = "update yonghu set zhanghu = zhanghu-{$aa} WHERE zhang = '{$zhang}'";// $db->query($skcye,0);// //扣除库存// foreach($ann as $v)// {//     $skckc = "update sgbiao set kucun = kucun-{$v[1]} WHERE ids='{$v[0]}'";//     //水果代号$v[0]//     $db->query($skckc,0);// }//添加订单信息//取当前时间$time = time();//自动生成订单号$ddh = date("YmdHis");$sdd = "insert into mg_order(order_no,user_id,create_time) VALUES ('{$ddh}','$user_id','$time')";echo '<br>';echo '------------------this sql is order generate';echo $sdd;echo '<br>';execUpdate($sdd,$link);//添加订单内容foreach ($ann as $v){$sql = "select * from food WHERE food_id = {$v['pid']}";$food_name="";$row = execQueryOne($sql);$food_name = $row['food_name'];			 $sddxq = "insert into mg_order_goods(order_id,goods_id,goods_name, total_num) VALUES ('{$ddh}',{$v['pid']},'{$food_name}',{$v['num']})";echo '===================this sql is order detail generate';echo $sddxq;echo '<br>';execUpdate($sddxq,$link);$_SESSION["mycar"]="";}}

可以看出,订单的形成还有一些其它的流程,比如用户余额的判断,库存的管理。
如果订单与付钱分两步的,还有提交订单之后不付钱的处理,等等。这就是学生作品与商业软件的差别。在学生的眼里就是存入数据库不就行了?
他完全不考虑其它的情况,与异常。
就单单一个订单的自动取消,就有多种方式。而一般的定时任务就是最容易想到的,也是对数据库效率影响最大的。被动取消、延时消息、本地延迟队列、时间轮算法、Redis过期监听等。
所以,上面的判断的部分只是注释掉了。并未删除。

配套资源

PHP登陆-购物车-订单的实现–【白嫖项目】
https://download.csdn.net/download/dearmite/88224282

作业:

PHP,美化前台页面

http://www.ritt.cn/news/5671.html

相关文章:

  • 网络新项目首码发布渠道杭州seo推广服务
  • 建筑工程网站监理答案百度网站下载安装
  • 做日用品有什么网站广州网站外包
  • 保定 网站制作百度自然排名优化
  • 安阳网站建设全网品牌推广
  • 温岭做鞋子的网站在线生成个人网站源码
  • 建立网站步骤百度seo排名优化软件
  • 用vs2010做网站登入网络营销方案设计范文
  • 做素材网站如何赚钱安卓优化神器
  • wordpress相册轮播天津seo方案
  • 沈阳企业自助建站系统周口网站seo
  • 怎么做直播网站的超管海南百度推广电话
  • 网站关于我们怎么做单页面百度上搜索关键词如何在首页
  • 做网站卖设备找哪家好seoul是哪个城市
  • 网站建设商务通什么意思网上推销产品去什么平台
  • 两学一做网站条幅网站优化排名软件哪些最好
  • 58网站怎么做优化一个新产品怎么推广
  • 哪些网站做写字楼出租网络推广员的日常工作
  • 做网站的集团关键帧
  • 常州网站制作机构网址怎么创建
  • 可以做很多个网站然后哭推广seo研究中心晴天
  • 企业做网站价钱怎么下载有风险的软件
  • 可以下载新闻视频的网站刷移动关键词优化
  • 织梦企业 网站源码深圳优化seo排名
  • 做网站营销发布文章网址搜索
  • 广德县住房和城乡建设网站社交网络推广方法有哪些
  • wordpress打开网站打不开今日国内新闻热点
  • 做刷机网站赚钱吗搜索引擎是什么意思啊
  • 搭建网站seo恶意点击广告软件
  • xml做web网站网站安全检测工具