cakephp: как вставить новую запись в таблицу пользователей, прочитав ее из url

#jquery #html #cakephp

#jquery #HTML #cakephp

Вопрос:

я очень новичок в этом cakephp, и я получил задание исправить проблему, мы запускаем интернет-магазины на платформах brandx и brandstores cakephp.

У меня есть модель CakePHP — User. Я храню некоторые данные в этих системах и другие данные локально, если пользователь существует в таблице, тогда он позволяет войти в хранилище, но если пользователь не существует в таблице, тогда он должен создать этого пользователя, и пользователь должен войти в хранилище, а не создавать пользователя, которого он использует.отображается

пользователь с этим идентификатором отсутствует в нашей системе, пожалуйста, свяжитесь с администратором, я пытаюсь создать нового пользователя, передав имя пользователя и пароль в url, как указано ниже:

 "http://mystorename.domainname.com/pages/index/username:"   username   "/password:"   password);
  

если я вставляю нового пользователя в таблицу, он успешно входит в систему, но не может создать нового пользователя.

Я не могу найти способ сделать это. как я могу исправить эту проблему, может кто-нибудь сказать мне, как это сделать? извините за мой плохой английский. Заранее спасибо..

Вот код, пожалуйста, помогите исправить это

  if(!empty($user_data))          {      

                 if($user_data[$this->userModel]['active']==2)
                 {
                     $this->Session->setFlash('accout disabled');
                     return false;
                 }

                 $user_data_logged = $model->find('first',array('conditions'=>$login_filter));  
     if(!empty($user_data_logged))
                 {

                     $model->save(array(    'id'=>$user_data[$this->userModel]['id'], $this->fields['recent_login']=>date('Y-m-d H:i:s'),
     $this->fields['login_attempts']=>0 ) );

     $this->Session->write('Auth.'.$this->userModel,$user_data[$this->userModel]);
                     $status = $this->shout("LOGIN_SUCCESS",$points); 
                     $this->authRedirect();
                     return true;

                 }
                 else
                 {
                     $login_attempts_made = $user_data[$this->userModel][$this->fields['login_attempts']];

     $model->save(array( 'id'=>$user_data[$this->userModel]['id'],
     $this->fields['login_attempts']=>$login_attempts_made 1  ) );
     if($user_data[$this->userModel][$this->fields['login_attempts']]>=$this->max_login_attempts)

     {
                         $model->save(array(    'id'=>$user_data[$this->userModel]['id'], 'active'=>2 ) ); $this->Session->setFlash($this->max_login_attempts.'
     login attempts over... accout disabled');

     return false;
                     }

                 }
                     }       else        {
                 $employee_id = $data[$this->fields['username']];
                 $user_data = $model->create('first',array('conditions'=>array($this->fields['username']=>$data[$this->fields['username']],$this->fields['password']=>$data[$this->fields['password']])));  
                 $model->save(array($this->fields['username']=>$data[$this->fields['username']],$this->fields['password']=>$data[$this->fields['password']]));
                 //$this->Session->setFlash("$employee_id User with this employee id is not available in our system. for more details amp; registration
     contact admin@domain.com");            
    //$status =$this->shout("LOGIN_FAIL",$employee_id); 
     //return false;        
     }
  

Ответ №1:

Выполнение этого: "http://mystorename.domainname.com/pages/index/username:" username "/password:" password); крайне небезопасно. Вы не должны передавать пароли людей незащищенными в таком URL-адресе.

Кто-то другой может просто просмотреть историю своего браузера (или даже использовать javascript) и увидеть свой пароль.

Вы хотите запомнить корзину пользователя, а затем направить пользователя на страницу регистрации. Как только пользователь завершит регистрацию, сохраните для него свою корзину.

Затем они могут вернуться к проверке в любое время, когда захотят, со своими предыдущими элементами.