TP5多用户商城

1.网站www.site.com

1.创建工程和数据库表

composer create-project topthink/think=5.1.* www.site.com

2.创建index控制器

php think make:controller index/Index
public function index()
    {
        return $this->fetch();#会自动定位到\application\index\view\index\index.html
    }

静态文件会定位到public文件夹下面,所以修改路径的时候就以public为/:<link type="text/css" href="/static/css/css.css" rel="stylesheet" />,然后抽出框架模板并继承:{extend name="layout"}{block name="content"}{/block}

3.创建商品类模型并连接数据库,将数据动态显示到index页

php think make:model Categorys
 public function index()
    {
        $cate=new Categorys();
        $cates=$cate->where('pid',0)->field('id,name')->select();
        foreach($cates as $k=>$v){
            $v['child']=$cate->where('pid',$v['id'])->field('id,name')->limit(5)->select();
        }
        $this->assign('cates',$cates);
        return $this->fetch();
    }
        <div class="pntLeft">
     <h2 class="Title">所有商品分类</h2>
     <ul class="InPorNav">
     {volist name="cates" id="vo"}
      <li><a href="#">{$vo.name}</a>
       <div class="chilInPorNav">
        {volist name="vo.child" id="vv"}
        <a href="#">{$vv.name}</a>
        {/volist}
       </div><!--chilLeftNav/-->
      </li>
     {/volist}
     </ul><!--InPorNav/-->
    </div><!--pntLeft/-->

2.商家www.shoper.com

3.平台www.system.com

1.创建控制器,后台管理员登录验证

composer create-project topthink/think=5.1.* www.system.com
cd www.system.com
php think make:controller system/Login
php think make:model Admins

login控制器进行了登录的get(index)和post(save)后端

<?php
namespace app\system\controller;
use think\Controller;
use think\Request;
use app\common\model\Admins;
class Login extends Controller
{
    public function index()
    {
        return $this->fetch('login/index');
    }

    public function save(Request $request)
    {
        // 使用 input 函数接收前端发送的数据
        $username = $request->post('username');
        $password = $request->post('password');
        // // 使用 $username 和 $password 处理后续逻辑
        $db = new Admins();
        $info = $db->where('username', $username)->find();
        if (!$info) {
            return json(['status' => 'fail','message' => '用户不存在']);
        }
        if ($info['password'] != md5($password)) {
            return json(['status' => 'fail','message' => '用户或密码错误']);
        }
        session('aid', $info['id']);
        session('aname', $info['username']);
        return json(['status' => 'success','message' => '用登录成功']);
    }      
}
<?php

namespace app\common\model;

use think\Model;

class Admins extends Model
{
    protected $table='admin';
}

前端使用了ajax进行异步验证

$(document).ready(function() {
    $('#loginButton').click(function(event) { // 注意修改选择器为按钮的ID
        event.preventDefault(); // 阻止默认的表单提交行为
        var name = $('.name').val();
        var pwd = $('.pwd').val();
        var namelen = name.length;
        var pwdlen = pwd.length;
        // 进行表单验证
        if (namelen < 3) {
            alert("用户名不能小于3位,请重新输入!");
            return false;
        }
        if (pwdlen < 3) {
            alert("你输入的密码不正确,请重新输入!");
            return false;
        }
        // 发送登录请求
        $.ajax({
            url: '/system/login/save',
            type: 'POST',
            data: {
                username: name,
                password: pwd
            },
            success: function(response) {
                console.log(response);
                if (response.status === 'success') {
                    window.location.href = '/system/index/index';
                } else {
                    alert('登录失败,请检查用户名和密码!');
                }
            },
            error: function(xhr, status, error) {
                alert('请求出错,请稍后重试!');
            }
        });
    });
});

application\system\view\login\index.html是在网上随便找的模板,其中css等静态文件放在public/static文件夹下

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>17商城</title>
<link type="text/css" href="/static/css/css.css" rel="stylesheet" />
<script type="text/javascript" src="/static/js/jquery.js"></script>
<script type="text/javascript" src="/static/js/login.js"></script>
</head>

<body style=" background:#FFF;">
 <div class="loginLogo">
  <div class="logoMid">
   <h1 class="logo" style="height:71px;padding-top:10px;"><a href="index.html"><img src="/static/images/loginLogo.jpg" width="241" height="71" /></a></h1>
   <div class="loginReg">
    还没有会员账号?&nbsp;<a href="reg.html">免费注册</a>
   </div><!--loginReg/-->
  </div><!--logoMid/-->
 </div><!--loginLogo/-->
 <div class="loginBox">
  <div class="loginLeft">
   <img src="/static/images/logoinimg.jpg" width="716" height="376" />
  </div><!--loginLeft/-->
  <form action=""  class="loginRight">
   <h2>会员登录</h2>
   <h3>用户名</h3>
   <input type="text" class="name" />
   <h3>密码</h3>
   <input type="password" class="pwd" />
   <div class="zhuangtai">
    <input type="checkbox" checked="checked" /> 下次自动登录
   </div><!--zhuangtai/-->
   <div class="subs">
    <input type="button" value="登录" class="submit" id="loginButton" />

   </div>
  </form><!--loginRight/-->
  <div class="clears"></div>
 </div><!--loginBox/-->
</body>
</html>

这里的访问路径配置了好久,首先是在phpstudy里面设置根目录到public文件夹,然后高级配置里打开目录索引,然后在public目录下的.htaccess文件里写

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>

然后就可以访问http://www.system.com/system/login/index/(域名/模块名/控制器名/方法名/)。

2.创建Base验证uid,之后的控制器继承

php think make:controller system/Base
<?php
namespace app\system\controller;
use think\Controller;
use think\Request;
class Base extends Controller
{
    public function initialize()
    {
        parent::initialize();
        if (!session('aid')){
            $this->redirect('system/Login/index');
        }
    }
}

3.创建控制器,管理商品三级分类

php think make:controller system/Index

1.首先针对主页的管理员名字和退出键做一个post的ajax请求处理

<a href="javascript:void(0);">{:session('aname')}</a>
<a class="outsys" title="退出系统" href="javascript:void(0);">退出</a>
#前端请求
$(document).ready(function(){
  $('.outsys').click(function(){
    $.ajax({
      url: '/system/index/logout', // 这应该是你的后端退出路由
      type: 'POST', // 或者是你需要的任何HTTP方法
      success: function(){
        // 当请求成功时,重定向到登录页面
        window.location.href = '/system/login/index';
      },
      error: function(){
        // 可选:当请求失败时,显示一条消息
        alert('退出失败,请稍后再试');
      }
    });
  });
});
#后端lagout处理函数
public function logout()
    {
        session('aname', null);
        session('aid', null);
        // 返回一个成功的响应
        return json(['status' => 'success']);
    }

开始做后台的商品分类

php think make:controller system/Category
php think make:model Categorys

2.按二级目录进行表格罗列。

class Category extends Base
{
    public function index()
    {
        $cate=new Categorys();
        $cates=$cate->where('pid',0)->field('id,name')->select();
        foreach($cates as $k=>$v){
            $v['child']=$cate->where('pid',$v['id'])->field('id,name')->select();
        }
        $this->assign('cates',$cates);
        return $this->fetch('index/category');
    }
#然后在前端把cates里的数据拿到进行显示
{block name="content"}
<body>
    <h2>商品分类列表</h2>
    <table>
        <tr>
            <th>一级分类名称</th>
            <th>二级分类名称</th>
            <th>操作</th>
        </tr>
        {volist name="cates" id="vo"}
        {volist name="vo.child" id="vv"}
        <tr>
            <td>{$vo.name}</td>
            <td>{$vv.name}</td>
            <td>
                <button class="btn btn-edit">编辑</button>
                <button class="btn btn-delete">删除</button>
            </td>
        </tr>
        {/volist}
        {/volist}
        <!-- 更多分类行可以继续添加 -->
    </table>
</body>
{/block}

3.某二级类目进行删除

#1.前端请求
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $(".btn-delete").click(function(){
        var categoryName= $(this).closest('tr').find('td:eq(1)').text(); // 获取要删除的分类名称
        console.log(categoryName);
        $.ajax({
            url: 'delete', // 服务器端处理删除的 URL
            type: 'POST',
            data: {
                categoryName: categoryName
            },
            success: function(response) {
                // 处理服务器的响应
                if(response.status === 'success') {
                    alert('删除成功!');
                    location.reload(); // 刷新页面
                } else {
                    alert('删除失败!');
                }
            }
        });
    });
});
</script>
#2.后端查询删除操作
    public function delete(Request $request)
    {
        $categoryName =$request->post('categoryName');
        $db = new Categorys();
        $info = $db->where('name', $categoryName)->find(); 
        if (!$info) {
            return json(['status' => 'fail','message' => '商品类目不存在']);
        }
        $result = $info->delete();
        if($result) {
            return json(['status' => 'success','message' => '删除成功']);
        } else {
            return json(['status' => 'fail','message' => '删除失败']);
        }
    }

4.某二级类目进行编辑操作

4.APIapi.shop.com

5.图片img.shop.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ThinkPHP 5.1开源多用户商城系统 B2B2C 电商系统功能 (一) 系统管理:菜单权限、前台菜单、角色管理、职员管理、登录日志、操作日志、图片空间、商城消息、风格设置、计划任务 (二) 基础设置:商城配置、导航管理、广告管理、广告位置、银行管理、支付管理、地区管理、友情链接、快递管理、消息模板 (三) 会员管理:会员等级、会员管理、账号管理 (四) 文章管理:文章管理、文章分类 (五) 运营管理:推荐管理、商品推荐、店铺推荐、品牌推荐、财务管理、资金管理、提现申请、结算管理、商家结算 (六) 订单管理:订单管理、订单管理、投诉管理、退款管理 (七) 店铺管理:店铺认证、开店申请、店铺管理、停用店铺 (八) 商品管理:商品管理、已上架商品、待审核商品、违规商品、商品分类、商品属性、品牌管理、商品规格、评价管理 (九) 虚拟物品自动发货:虚拟商品上架、卡密管理、自动发货 (十) 扩展管理:插件管理、钩子管理 (十一) 分销管理:分销管理菜单、分销商家列表、分销商品列表、佣金分成列表、推广用户列表 (十二) 数据分析:商品销售排行、店铺销售统计、销售额统计、销售订单统计、新增会员统计、会员登录统计 (十三) 营销管理:三级分销,商品团购,限时拍卖、微砍价、优惠券、满减、满送、满包邮、签到送积分、积分商城 (十四) 微信管理:公众号设置、自定义菜单、用户管理、主动回复文本信息、主动回复图文信息、微信消息模板 (十五) 支付管理:支付宝支付,微信支付、银联支付、货到付款、积分支付、余额支付 (十六) 短信接口:中国网建、阿里大于、阿里云云通信 (十七) 登录接口:QQ登录、微信登录、微博登录 (十八) 物流接口:快递100接口 (十九) 其他接口:UCenter通信接口(可与社区论坛等同步登录退出)
基于ThinkPHP 5.1框架打造的多商户电商平台,是目前完善度领先的电商管理平台标准化产品,全新的产品模式很好地诠释电子商务在现今及未来的发展模式,强大的插件可插拔扩展制,让您在的行业电商所向披靡,系统拥有PC、手机WAP、微商城、买家APP、卖家APP、微信小程序,六端合一,六端互通,真正实现全网营销,极其适合企业及个人快速上线商务平台。 系统代码清晰易懂,大量的可视化报表便于运营者决策,丰富的营销功能让系统的应用场景广阔,良好的插件机制使系统更加易于扩展。系统操作简单,安全稳定,更新迭代快速,是广大用户直接使用和二次开发的最佳选择。 电商系统功能 (一) 系统管理:菜单权限、前台菜单、角色管理、职员管理、登录日志、操作日志、图片空间、商城消息、风格设置、计划任务 (二) 基础设置:商城配置、导航管理、广告管理、广告位置、银行管理、支付管理、地区管理、友情链接、快递管理、消息模板 (三) 会员管理:会员等级、会员管理、账号管理 (四) 文章管理:文章管理、文章分类 (五) 运营管理:推荐管理、商品推荐、店铺推荐、品牌推荐、财务管理、资金管理、提现申请、结算管理、商家结算、充值送、退款原路返回 (六) 订单管理:订单管理、投诉管理、退款管理 (七) 店铺管理:店铺认证、开店申请、店铺管理、停用店铺 (八) 商品管理:商品管理、已上架商品、待审核商品、违规商品、商品分类、商品属性、品牌管理、商品规格、评价管理 (九) 虚拟物品自动发货:虚拟商品上架、卡密管理、自动发货 (十) 扩展管理:插件管理、钩子管理 (十一) 分销管理:分销管理菜单、分销商家列表、分销商品列表、佣金分成列表、推广用户列表 (十二) 数据分析:商品销售排行、店铺销售统计、销售额统计、销售订单统计、新增会员统计、会员登录统计 (十三) 营销管理:三级分销,商品团购,限时拍卖、微砍价、优惠券、满减、满送、满包邮、签到送积分、积分商城,拼团 (十四) 微信管理:公众号设置、自定义菜单、用户管理、主动回复文本信息、主动回复图文信息、微信消息模板 (十五) 支付管理:支付宝支付,微信支付、银联支付、货到付款、积分支付、余额支付 (十六) 短信接口:中国网建、阿里大于、阿里云-云通信、短信宝 (十七) 登录接口:QQ登录、微信登录、微博登录、支付宝登录 (十八) 物流接口:快递100接口 (十九) 其他接口:LBS、UCenter通信接口(可与社区论坛等同步登录退出)
### 回答1: tp5商城项目源代码是一种基于ThinkPHP框架的商城系统的源代码,用于作为毕业设计小学期项目的开发实践。 商城项目源代码包含了一个完整的电子商务系统的代码实现,涵盖了常见的商城功能,如用户管理、商品管理、订单管理等。该项目的主要目的是让学生通过实际开发来加深对软件工程的理解和应用。 在该项目中,学生可以学习和应用诸如需求分析、系统设计、数据库设计、编码实现、测试调试等软件工程的相关知识。通过深入研究和实践,学生可以更好地理解并掌握开发一个实际项目的全过程,加强自己的项目管理与协作能力。 同时,该项目也可以帮助学生学习和掌握ThinkPHP框架的使用。ThinkPHP是一款成熟的PHP框架,具有良好的可维护性和易于扩展的特点。通过使用ThinkPHP来开发商城项目,学生可以了解和应用框架的各种功能和特性,提高开发效率和代码质量。 综上所述,tp5商城项目源代码是一种具有实践意义的毕业设计小学期项目,可以通过开发实践加深对软件工程和ThinkPHP框架的理解和应用,提升学生的综合能力和就业竞争力。 ### 回答2: tp5商城项目源代码毕设小学期是指用thinkphp5框架编写的一个商城项目的源代码,在毕业设计中作为小学期的一个重要内容。该商城项目是以tp5框架为基础,结合数据库、前端页面设计和后台管理系统的完整开发流程。 该项目的实现主要分为前台和后台两个部分。前台是用户访问和购物的主要界面,包括商品展示、购物车、订单提交、支付等功能。后台是管理员进行商品管理、订单管理、用户管理等操作的界面。 在项目的源代码中,通过模块化的方式,将整个商城项目划分为多个独立的模块,方便开发和维护。在实现过程中,使用了thinkphp5框架提供的MVC架构,使用了数据库操作、HTTP请求、数据验证、缓存等多种功能和扩展。 在小学期的毕设中,通过对tp5商城项目源代码的开发,可以学习到前后端开发流程,了解项目需求分析、数据库设计、系统架构设计和代码编写等全过程。同时,还可以掌握thinkphp5框架的应用和使用,提升对PHP编程语言的理解和运用能力。 通过毕设小学期的实践,学生可以深入了解商城项目的开发流程,掌握软件工程实践技巧,培养项目开发和团队协作能力。同时,还能够提升对互联网技术和市场需求的了解,为未来的职业发展打下坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是小z呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值