A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

二、用户注册功能
1、显示用户注册的表单页面。在前台创建控制器UserController.class.php继承至公共控制器,控制器中增加方法来加载模板文件,修改模版文件中的链接地址,使其正常加载cssjs和图片,增加方法来显示验证码,验证码可以直接实例化Think下的Verify方法。然后修改模板来显示验证码。
2、创建用户表,字段分别为用户名,密码和盐值,盐值的存在是为了将用户经过MD5加密后的数据连接上随机的6位数字并再次进行MD5加密,使用户密码的安全性更高。
3、实现注册功能,由于表单提交需要用到Ajax,所以应该引入jQueryForm插件提交注册表单,将Jquery文件复制粘贴到Publi/Home/JS文件夹下,然后在注册的模板文件中添加JavaScript代码,代码中使用Ajax验证。
4、然后在用户控制器中修改注册功能,打印出通过表单接收到的数据,然后使用浏览器的抓包查看接收的数据,表单没有跳转而且抓包抓到一个http请求说明目前的提交方法没有正确。
5、实现注册信息的入库,在控制器UserController.class.php中接收数据并调用模型来事数据入库。控制器中通过I函数的post方法来接收用户提交的用户名,密码和验证码,并首先判断验证码是否正确,然后判断用户名和密码是否正确。在判断密码时要注意,先将接收到的密码进行MD5加密,然后从数据库中获取盐值,并将加密后的数据连接盐值并再次进行MD5加密,在和数据库中的数据进行判断。
三、用户登录功能
1、在控制器UserController.class.php文件下创建登录方法,在方法中实现加载模板文件,然后修改模板文件中的资源连接地址,在连接地址前加__PUBLIC_HOME__使cssjs和图片加载正确。然后在模板中添加JavaScript代码使其提交方式改为ajax
2、然后实现具体的登录功能,在控制器UserController.class.php中通过I函数的post方法接收数据,然后首先进行验证验证码是否正确,验证码正确之后再连接数据库进行用户名和密码的验证。
3、然后在模型UserModel.class.php中添加具体的方法来实现登录操作,验证密码时同样要注意,密码是经过双重MD5加密的,所以还要连接数据库取到对应的盐值并在连接加密后进行验证。
4、首先修改头部的公共模板的显示问题,因为在用户的登录之后的页面还是会显示登录和注册按钮,所以应该将其修改为正常的逻辑。在模版中修改代码,增加eq判断,在用户登录之后,应该显示欢迎该用户字段同时隐藏掉登录和注册。判断用户是否登录的方法应该为是否能接收到session中的用户信息,如果有数据证明用户已登录,反之则没有登录。
5、实现用户退出功能,在模板中,如果用户已经登录,还应该显示相应的退出按钮,并为退出按钮增加相应的链接。具体的退出功能在用户控制器UserController.class.php中添加退出功能。由于登录后的用户具体信息存储在session中,所以退出功能就是将session数据删除即可,将session中的数据设置为null
四、购物车功能
1、首先分析购物车的功能,首先在用户登录之前,购物车中的数据应该存储cookiesession中,如果用户登录应该将数据存储在数据库中。然后分析购物车中都应该存储什么数据,首先要记录到商品的具体的ID,当商品有多种属性时还应该记录商品的具体信息组合,比如手机的颜色、屏幕大小、运营商和内存等数据,还有购物车中同种商品的数量。如果商品的属性单一,则直接在商品上增加数量即可,如果商品属性不同,要分开不同的属性组合进行记录。
2、分析cookie如何存储,对于cookie存储数据需要跟 数据库的存储一致需要记录到对应的商品ID、属性组合以及购买数量。因此对应的数据就是一个数组格式但是目前cookie只能支持字符串的格式,可以将数组格式转换为字符串的格式 可以通过使用序列化或者使用json格式存储。然后创建相应的购物车数据表。
3、分析完成后开始实现购物车功能,首先修改模板文件中的加入购物车的链接地址,地址使用U函数生成。然后在模板文件中添加隐藏域,用来传递对应的商品ID
4、创建控制器CartController.class.php用来实现商品添加到购物车,方法中使用I函数的post方法来接收传递古来的商品ID和商品的具体数量。然后实例化对象调用方法来将数据写入数据库。
5、创建模型CartModel.class.php用来实现数据的写入。在数据写入的时候要注意分两种情况,及用户登录状态下的加入购物车和没有登录的加入购物车操作。在模型中定义字段,字段名与数据表中的一致。然后完善方法来实现添加购物车功能。首先将得到的数组使用sort进行排序,目的是为了考虑后期库存量的检查,将得到的信息转化为字符串,然后获取用户的ID标识并判断用户是否登录,根据当前要写入的数据信息判断数据库中是否存在,如果存在直接更新对应的数量否则直接写入数据。然后判断目前数据是否存在,如果已经存在则直接更新对应的数量,使用连贯操作将数据更新至数据库。如果数据不存在,直接写入数据即可。
6、然后处理用户没有登录时的添加购物车功能。没有用户登录时购物车信息保存在cookie中,所以要从cookie中获取数据并反序列化,然后判断当前商品是否已经存在,处理完成后将数据重新写入从cookie中。
7、添加购物车时检查商品库存是否充足。修改模型CartModel.class.php。实现通过调用方法来实现检查库存量。然后在模型中添加相应的方法来完成库存检查功能。在判断时应该分情况判断,先判断总库存量,然后在判断商品各个属性的商品是否足够。
8、登录后的购物车转移功能,用户登录前的购物车商品应该在用户登录后将数据写入数据库中。在购物车模型CartController.class.php中添加方法来来实现将cookie数据转存到数据库。首先获取到cookie中的数据并将其反序列化,然后获取当前登录用户的ID表示,通过foreach方法讲获取的数据拆分并重新组合为数组。然后将数据写入数据库中,写入方式与之前的方法相同,要先判断商品是否已经存在,如果存在直接更新对应的数量,如果不存在则直接写入即可。整个过程应该在用户登录之后触发,所以应该在用户登录之后直接调用该方法。
9、购物车列表显示,在控制器CartController.class.php中添加方法,方法中调用方法来获取数据,然后通过assigndisplay方法来渲染模板。然后在模版CartModel.class.php中添加方法来实现具体的数据获取操作。首先判断用户是否登录,如果已登录通过连贯操作直接从数据库中获取该用户对应的购物车信息,如果没有登录,将从cookie中获取数据并反序列化并将数据转化成数据库中的格式。
10、根据商品ID获取对应的商品信息,根据商品对应的属性值的组合来获取对应对的属性名和属性值,然后通过连贯操作讲数据查询出来。然后修改购物车的模板文件,修改相应的商品名称,数量,属性信息,价格等数据。然后在控制器中添加相应的方法来计算总金额,并在模型中完成方法来执行总金额的计算。
11、购物车中商品的删除,首先在模板文件中为删除按钮添加相应的链接,连接地址使用U函数生成。然后在控制器CartController.class.php中添加方法来执行删除操作,通过I函数中的post方法来获取要删除商品的ID,并执行删除操作。然后在模型CartModel.class.php中添加方法来完成删除操作。先从session中获取用户的ID,然后查询出用户对应的购物车信息,将商品从购物车中删除
12、使用Ajax修改购物车列表商品添加,在修改商品数量的时候要用到无刷新的更新操作,所以可以使用Ajax,首先修改模板文件中增加和减少的按钮,为其绑定单击事件,然后增加JavaScript代码来完成点击增加和减少事件,并发送Ajax请求。在控制器中通过I函数的post方法来接收数据并调用方法来执行数据更新,然后在模型中添加方法来实现数据更新,同时要判断,当数量小于等于0时将不执行更新操作。通过session中的用户ID标识来将数据写入数据库中。

4 个回复

倒序浏览
赞一个
回复 使用道具 举报
回复 使用道具 举报
沈唁 黑马帝 2017-11-26 08:16:54
板凳
购物车完了该是支付宝接口了吧
回复 使用道具 举报
黑马南京 来自手机 初级黑马 2017-11-28 10:28:18
报纸
我自横刀向天笑
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马