给你一个概念:
当Client忘记密码, 欲索取密码的话, 必须先通过一个验证.
方法1) 先回答注册时所预设的问题.
譬如说 question: what's your favorite food? answer: human meat.
方法2) 直接要求client呈交他的email address.
当验证通过以后,系统将会自动产生一组随机密码, 作为暂时性的密码,
然后发送去Client的邮件信箱.
待顾客下回登陆的话,再让他们更改密码.
一些不完整code的例子 ( 方法2的):
- .......................................
- if($is_user==1){
- alphanum = array ('a','b','c','d','e','f','i','j','k','m','n','o','p','q'
- ,'r','s','t','u','v','x','y','z','....还有大写的英文字母(A-Z except l & w)...'2','3','
- 4','5','6','7','8','9');
- $chars=sizeof($alphanum);
- $a=time();
- mt_srand($a);
- for ($i=0;$i<6;i++){
- $randnum= intval(mt_rand(0,56));
- $password= $alphanum[$random];
- }
- $query="update users set password = '$password' where email = '$email';
- $result = mysql_query($query) or die ('Cannot complete update');
- $to = $_post['email'];
- $from = "forgot@example.com";
- $subject = "New password";
- $msg = <<< EOMSG
- Your recently requested that we send you a new password for Example.com.
- Your new password is:
- $password
- Please log in at this URL:
- http://localhost/login.html
- Then go to this address to change your password:
- http://localhost/changepass.php
- EOMSG;
- $mailsend=mail("$to",$subject","$msg",'From:$from\r\nReply- To:webmaster@example.com");
- header(Location: login.html");
- }else {
- }
- }
复制代码
(以上的Code参考于PHP5 and MySQL Bible此书的)
若你看不懂我在写什么的话,我想你应先去研究User Authentication,找找看
相关的code吧!
至于要让你们公司可以看到会员资料的方法的话, 只需要让系统检查他们的使用者种类
(User Type)就可以了. 譬如说: 若登入者属于一般会员的话,他们只可以阅读与更改自己的个人资料. 若登入者属于一般Admin的话, 就拥有阅读与更改一般会员
(or client)的资料的权限.若登入者属于高级Admin的话, 就拥有更多的权限.
[ 本帖最后由 亡者之疯 于 22-5-2006 09:38 PM 编辑 ] |