个人商城系统开源(注册)

原文地址:个人商城系统开源(注册) - Pleasure的博客

下面是正文内容:

前言

由于近期实在没有什么话题可写和一些有趣的项目教程可以分享。所以我只能决定将我自己亲手编写的一个迷你迷你商城系统进行开源。

也就是放在我博客右边的"我的另一个网站"(由于实在没什么生意只能开源了,充当教材)

开始分享一些前后端全栈的内容,希望对你们有所帮助。

虽然是迷你的商城系统,但是由于要实现每一部分各自的功能还是非常复杂的,比如用户的注册登录,手机号邮箱的绑定,充值支付功能的实现等等。

所以在这里我会花一周的时间按照功能进行划分来逐块解释,也好水一周的文章。顺便可以迁个站,整理一下代码。

看之前还是麻烦大家点点关注,谢谢!(就不选仅粉丝可见了)

如果在实现上存在什么问题,可以联系我。

正文

上回书说到商城系统的登录功能,但由于可能过于简单,以及话题较为老套,所以没什么阅读量。

而且现在这种商城系统的编辑大多采用vue+spring boot的模式进行编辑,采用php的很少。

但又都是必要的功能无法省去。一些重复的话就不说了,直接进入正题。

文章链接:个人商城系统开源(登录) - Pleasure的博客

https://yiming1234.blog.csdn.net/article/details/136496259

话不多说,直接粘贴源码。前端页面需要到之前的文章中去找了。

核心文件就是registeraction.php,剩下的就是一些跳转页面,registerfail.php,registersuccess.php,registerfail2.php等等。

registeraction.php的内容

<?php
$username = $_POST['username'];
$password = $_POST['password'];
$re_password = $_POST['re_password'];
require "../conn.php";

function isPasswordComplex($password)
{
    $uppercase = preg_match('@[A-Z]@', $password);
    $lowercase = preg_match('@[a-z]@', $password);
    $number    = preg_match('@[0-9]@', $password);
    if (!$uppercase || !$lowercase || !$number || strlen($password) < 8) {
        return false;
    } else {
        return true;
    }
}

if ($password == $re_password) {

    if (isPasswordComplex($password)) {
        $stmt_select = $conn->prepare("SELECT username FROM content WHERE username = ?");
        $stmt_select->bind_param("s", $username);
        $stmt_select->execute();
        $ret = $stmt_select->get_result();
        $num = $ret->num_rows;
        if ($num < 1) {
            $stmt_insert_content = $conn->prepare("INSERT INTO content (username,password) VALUES(?,?)");
            $stmt_insert_content->bind_param("ss", $username, $password);
            $stmt_insert_content->execute();
            $result = $stmt_insert_content->get_result();

            $stmt_insert_account = $conn->prepare("INSERT INTO account (username) VALUES(?)");
            $stmt_insert_account->bind_param("s", $username);
            $stmt_insert_account->execute();

            $stmt_insert_email = $conn->prepare("INSERT INTO email (username) VALUES(?)");
            $stmt_insert_email->bind_param("s", $username);
            $stmt_insert_email->execute();

            $stmt_insert_phone = $conn->prepare("INSERT INTO phone (username) VALUES(?)");
            $stmt_insert_phone->bind_param("s", $username);
            $stmt_insert_phone->execute();

            $stmt_insert_subscribe = $conn->prepare("INSERT INTO subscribe (username) VALUES(?)");
            $stmt_insert_subscribe->bind_param("s", $username);
            $stmt_insert_subscribe->execute();

            if ($stmt_insert_content->affected_rows > 0) {
                session_start();
                $_SESSION['username'] = $username;
                $remaining = new DateTime('1000-01-01 00:00:00');
                $_SESSION['remaining'] = $remaining;
                $token = bin2hex(random_bytes(16));
                $_SESSION['token'] = $token;
                header('refresh: 0;url=./registersuccess.php');
                exit;
            } else {
                header('refresh: 0;url=./loginfail.php');
            }
        } else {
            header('refresh: 0;url=./loginexit.php');
        }
    } else {
        header('refresh: 0;url=./registerfail.php');
    }
} else {
    header('refresh: 0;url=./registerfail2.php');
}

其中涉及到邮箱的验证(强制跳转),在之前的文章中已经介绍过了。

源码下载地址:见之前的文章。

尾声

理论上应该是还有一个头像上传,密码重置,以及登录状态保持功能的分享。后面会断断续续进行更新。但由于这些功能并不是必要的,以及项目的适用范围有限,就先不分享了。

主要是php的应用范围实在有限,而且目前正在自学Vue+Spring Boot内容,后面可能会主要分享一些这方面的内容。

相关推荐
man20171 小时前
【2024最新】基于springboot+vue的闲一品交易平台lw+ppt
vue.js·spring boot·后端
shitian08111 小时前
用轻量云服务器搭建一个开源的商城系统,含小程序和pc端
服务器·小程序·开源
hlsd#1 小时前
关于 SpringBoot 时间处理的总结
java·spring boot·后端
路在脚下@1 小时前
Spring Boot 的核心原理和工作机制
java·spring boot·后端
幸运小圣1 小时前
Vue3 -- 项目配置之stylelint【企业级项目配置保姆级教程3】
开发语言·后端·rust
前端SkyRain2 小时前
后端Node学习项目-用户管理-增删改查
后端·学习·node.js
青椒大仙KI112 小时前
24/11/13 算法笔记<强化学习> DQN算法
笔记·算法
提笔惊蚂蚁2 小时前
结构化(经典)软件开发方法: 需求分析阶段+设计阶段
后端·学习·需求分析
promise-render2 小时前
npm、yarn、pnpm 切换查看镜像源笔记
前端·笔记·npm