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

[已解决] 看了<一哈子>会员系统教学视频的请进!!急盼赐教

[复制链接]
发表于 2010-8-25 10:57:05 | 显示全部楼层 |阅读模式
本帖最后由 刀客孩哥 于 2010-8-25 14:24 编辑

model里有这么个函数,负责把表单里的数据弄进数据库
PHP复制代码
function add_user()
    {
        $useremail=$this->input->post('useremail');
        $password=$this->input->post('password');
        $nicheng=$this->input->post('nicheng');
        $mysex=$this->input->post('mysex');
        $brithyeah=$this->input->post('brithyeah');
    //.....略
       
        $query = $this->db->query("SELECT username From dc_user WHERE username = '$useremail'");
        if($query->num_rows() > 0)
        {
            return $useremail;
        }
 
        $password = md5($password);
        $sql="INSERT INTO user(username,password,nicheng)VALUES('$useremail','$password','$nicheng')";
        $query = $this->db->query($sql);
  //      $new_id_number=$this->db->insert_id();
  //      $sql2="INSERT INTO user_info VALUES('$new_id_number','$mysex','$brithyeah','$brithmonth','$brithday',
  //      '$shen','$shi','$shengao','$xueli','$yuexin','$zhufang','$hunkuang','$haizi','$handphone','$buchong')";
  //      $query2 = $this->db->query($sql2);
        if($query && $query2)
        {
            return $this->db->insert_id();
        }else{
            return false;
        }
    }
复制代码


控制器里有这么个函数:是判断用户名是否重复
PHP复制代码
if($this->form_validation->run()==FALSE){
                $this->load->view('register');
            }else{
                $this->load->model('M_user');
                $query = $this->M_user->add_user();
               
                if($query == $this->input->post('useremail',TRUE))
                {
                    $data['useremail_exist'] = $this->input->post('useremail');
                    $this->load->view('register',$data);
                }else{
                   
                    $this->session->set_userdata('useremail',$this->input->post('useremail'));
                    redirect('Home/user');
                }
            }
 
        }
复制代码


问题:插入单表是可以的,一切正常。但我的注册表单要分别插入两个表,user和user_info。。我加上model里所注释的代码后,插入数据是成功的,但views里那个对用户名是否重复的判断好像就不灵了。无论重不重复,提交注册表单后都到达regsiter页,正常情况应该是:不重复就进user页

急盼赐教啊!
发表于 2010-8-25 11:34:02 | 显示全部楼层
if($query == $this->input->post('useremail',TRUE))
改成
if($query === $this->input->post('useremail',TRUE))
 楼主| 发表于 2010-8-25 14:23:18 | 显示全部楼层
回复 2# visvoy


    果然是这个问题,谢谢版主!
 请问其中的原理
发表于 2010-8-25 14:28:17 | 显示全部楼层
== 是等于
=== 是全等于,也就是必须类型相同。
这个在 PHP 手册上有详细说明 php.net
发表于 2010-8-25 14:31:32 | 显示全部楼层
同ls
 楼主| 发表于 2010-8-25 14:38:31 | 显示全部楼层
谢谢两位老大!
为什么那个$useremail发生了变故呢,ci在幕后又做了什么样的一个手脚呢。。
发表于 2010-8-25 14:49:47 | 显示全部楼层
跟ci没有任何关系,纯php原理,俩等号不是全等于,php会自动将等号左右的东西转成boolean
string只有空值和'0'是false,其余都是true,true==true,所以true
 楼主| 发表于 2010-8-25 14:51:33 | 显示全部楼层
谢谢两位老大!
为什么那个$useremail发生了变故呢,ci在幕后又做了什么样的一个手脚呢。。
发表于 2010-8-25 15:02:21 | 显示全部楼层
和 CI 无关,请看 PHP 手册: php.net
发表于 2010-8-27 16:16:16 | 显示全部楼层
嗯 不好意思,确实是=== 判断全等。

本版积分规则