用户
 找回密码
 入住 CI 中国社区
搜索
查看: 11760|回复: 11
收起左侧

CI中用户注册后显示“注册成功”并自动重定向的一种方法

[复制链接]
发表于 2013-4-15 00:54:38 | 显示全部楼层 |阅读模式
RT。
今天花了三个小时从零开始做好了用户注册的前台+后台,想加一个“注册成功”的提示又花了一小时,在此分享此次设计思路:

做过注册的应该都知道,一般会加一个redirect函数跳转到首页,但是提示“注册成功”却又无法实现了,我搞了很久,一次想到如下方法:
直接加一个echo  //结果失败
跳转之后用js判断来路url  //不兼容多地址网站且失败
跳转之后用php函数判断来路url  //同理,失败,还不如js的好设计
用ajax校验、提交表单,延迟跳转  //难度太大,需要重构,没有尝试

最后想到并且成功实施了一个方案:


跳转到一个index.php/signupsc 控制器(取sign up success之意),它载入的view和之前的默认页面(即首页)基本一致,在footer之前多载入一个view,也可以命名为signupsc,用来存放显示“注册成功”的js代码,成功实现。至于重定向,就不用我说了吧。

这样在用户体验上趋于完美。什么?你说性能?绝大多数网站在遇到性能问题之前就已经死掉了,等遇到性能问题了,那时候性能就不是问题了。
发表于 2018-5-12 09:50:04 | 显示全部楼层
假设:
        1.注册提交地址为:http://reg.xxx.com/reg
        2.注册成功提示页面为:http://reg.xxx.com/success

       

form表单提交方式:
        注册成功、就可以header到http://reg.xxx.com/success就可以了。
        当然注册成功可以是直接登录,也可以是跳转到登录页,让用户重新登录

        ①如果是直接登录,在success页面的php逻辑里你可以获取注册前的地址,如果没有则这个地址默认为首页
        在success页面JS 延迟3秒自动跳转 外加 用户可以点直接跳转


AJAX方式:
        注册成功、返回成功标识,js判断若注册成功,则直接location到http://reg.xxx.com/success,然后接着上面的①
发表于 2018-5-11 23:47:18 | 显示全部楼层
我也刚学CI几天,如果用redirect则没提示,不友好,如果用载入视图,因为URL还是原来的,页面还是显示原来的URL内容,不友好。我的方法是:
自己写个利用Header定时刷新跳转页面的公共函数,如msg_helper,放在APP/HELPERS文件夹,在控制器构造函数里载入此函数,就可以用了。
发表于 2018-6-11 16:01:09 | 显示全部楼层
hdok 发表于 2018-6-10 15:18
可以说说,注册页面的用户名处,要怎么写才能可以只能输入中文英文数字,不要符号! ...

这个可以通过正则表达式来限制,严格一点的话包括两个方面,一个是前端js验证+后端php验证,否则需要其中一个就好了
发表于 2013-4-15 13:51:16 | 显示全部楼层
为啥不做一个message 提示 在首页预留 $message  使用session或者cookie传递message~ 跳转到首页直接显示.

类似参考 joomla 等.
 楼主| 发表于 2013-4-15 14:42:23 | 显示全部楼层
IvanCI 发表于 2013-4-15 13:51
为啥不做一个message 提示 在首页预留 $message  使用session或者cookie传递message~ 跳转到首页直接显示.
...

没用过那个啊。。。
发表于 2013-4-18 09:57:54 | 显示全部楼层
求分享你的用户注册登录模块{:soso_e113:}
发表于 2013-5-9 10:56:35 | 显示全部楼层
个人觉得有点自找麻烦.真正的用户体验不是应该注册成功,直接跳转首页,并且已经登录完成么?
 楼主| 发表于 2013-5-9 15:58:10 | 显示全部楼层
wshm520 发表于 2013-5-9 10:56
个人觉得有点自找麻烦.真正的用户体验不是应该注册成功,直接跳转首页,并且已经登录完成么?
...

你可以再想想。
发表于 2013-5-9 18:11:52 | 显示全部楼层
http://codeigniter.org.cn/user_guide/libraries/sessions.html

使用 Flashdata 即可实现预期效果。
 楼主| 发表于 2013-5-9 19:16:02 | 显示全部楼层
乌有 发表于 2013-5-9 18:11
http://codeigniter.org.cn/user_guide/libraries/sessions.html

使用 Flashdata 即可实现预期效果。 ...

谢谢~
后来我遇到了一个更加蛋疼的信息传递问题,用了这个方法。。。

本版积分规则