CI 묻고 답하기

제목 admin 로그인이 안되고 있습니다.
글쓴이 보다 작성시각 2015/05/13 16:26:20
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 18995   RSS
안녕하세요, 가입하자마자 질문 글부터 올리게 되었습니다.
우선, 간략하게 상황 설명을 드리고 답변 말씀을 기다려보도록 하겠습니다.

1) 상황설명

- 기존에 운영되던 사이트의 유지보수를 신규로 담당하게 되었습니다. (업체의 규정상 사이트 링크는 할 수가 없네요..)
- 다른 정보없이 웹호스팅 업체의 로그인 정보만 받았습니다. (사이트관련 인수인계는 전무합니다.)
- 웹호스팅 업체를 통해 FTP와 DB 접속 정보만 확인했습니다.
- phpMyAdmin을 설치해서 DB 구조를 보고, FTP로 사이트 소스를 다운받아 보니 codeigniter로 만들었더군요.
- phpMyAdmin으로 확인해보니, 로그인 아이디는 admin인데, 비밀번호는 암호화 되어 있네요.


2) 질문

- 비밀번호를 알 수가 없어서, 새로 비밀번호를 만들었으나 로그인이 안되고 있습니다.
- 로그인 페이지의 경로는 http://도메인/admin 입니다.
- 로그인 페이지는 옆의 링크와 동일한 형태입니다. http://lab.devzone.co.in/ark_admin_v2/admin/home
- 그래서, phpMyAdmin에서 아이디와 비밀번호를 새로 생성해서 로그인을 해보려고 했으나, 역시 로그인이 안되고 있습니다. (비밀번호를 잘못 입력하였습니다.  라는 메시지만...)

- 어떤 파일을 확인하거나 수정해야 로그인이 가능할런지요...??

- 파일명이나 경로를 말씀드려야 더 정확한 진단이 가능할텐데 여의치가 않은 점은 양해를 부탁드립니다.
- 그럼, 답변을 기다리겠습니다. 감사합니다.


 
 다음글 특정 vhost의 log_message가 정상작동하지 ... (4)
 이전글 업로드 전 zip으로 만든 다음 blob형식으로 저장하... (2)

댓글

한대승(불의회상) / 2015/05/13 17:24:55 / 추천 0
form 태그의 action 에 있는 URL 부터 점검 해 보세요.
일반적으로 codeigniter의 라우팅 규칙을 따르고 있다면 

도메인/컨트롤러/메소드 입니다.

컨트롤러는 "controllers/컨트롤러.php" 을 열어보면 됩니다.
변종원(웅파) / 2015/05/13 17:37:32 / 추천 0
암호화 함수를 뭘 쓰는지 알아야 답변을 합니다.
tank_auth를 사용한 것인지, 자체 로그인 로직을 사용한 것인지 등등
정보가 너무 없네요.
하늘치 / 2015/05/14 03:32:47 / 추천 0
혹여, 이도 저도 안되면, 로그인 처리하는 소스를 수정해서 비번 상관없이 일단 로그인 처리하는 방법도 있긴 하지요.. ^^;
보다 / 2015/05/14 19:02:24 / 추천 0
친절한 말씀들 감사합니다.
사실 codeigniter는 처음이어서 좀 더 연구를 해봐야겠습니다.

혹, 계속해서 해답을 못얻으면 다시 한번 질문을 올리도록 하겠습니다.
감사합니다.
보다 / 2015/05/14 20:35:39 / 추천 0
 파일 내용을 한번 올려보겠습니다.
확인이 가능하시다면 다시 한번 살펴봐주시길 부탁드립니다.
감사합니다.

1) 경로: /application/controllers/admin/login.php

<?php
class Login extends CI_Controller{

    function  __construct()
    {
        parent::__construct();
        
        $this->load->helper('url');
        $this->load->library('session');
        $this->load->model('admin', '', TRUE);
        $this->load->library('encrypt'); // 암호화
        $this->load->library('form_validation');

    }
    public function index(){

        $data['error'] = "";
        $data['authUrl'] = "";

        $this->load->view('/admin/login', $data);
    }
    
    public function login_check(){
            $this->load->helper('url');
            
            $this->form_validation->set_rules('userid', 'userid', 'trim|required|xss_clean');
            $this->form_validation->set_rules('password', 'password', 'trim|required|xss_clean');
            
            $data=$this->input->post();

            if ($this->form_validation->run())
            {    
                 $mem_data = $this->admin->getDataOfID($data['userid']);
                if ($mem_data->id!='') // 회원이 존재 하면
                {
                    $pass = $this->encrypt->decode($mem_data->password);

                    if($pass==$data['password'] ){
                         $sessiondata = array(
                            'logined'        => true,
                            'userid'        => $mem_data->id,
                            'last_action'        => mktime()
                            
                        );
                        $this->session->set_userdata($sessiondata);
                        redirect('/admin/applicant/');
                    }else{
                        $data['error'] = "비밀번호를 잘못 입력하였습니다.";
                        $this->load->view('/admin/login', $data);  
                    }
                }
                else
                {
                    $data['error'] = "등록되어 있지 않은 아이디 입니다.";
                    $this->load->view('/admin/login', $data);  
                }
            }else {
                $data['error'] = "로그인 정보가 입력되지 않았습니다";
                $this->load->view('/admin/login', $data);  
            }
    }

  public function join_submit(){
      $data = $this->input->get();

    $this->output->enable_profiler(TRUE);
      $data['password'] = $this->encrypt->encode($data['password']);

          if($this->admin->addData($data))
          {
            $sessiondata = array(
          'logined'   => 1,
          'userid'    => $data['userid']
          );
        $this->session->set_userdata($sessiondata);
            redirect('/dashboard');
      }
          else
          {
            $data['error'] = "이미 존재하는 아이디 입니다.";
          }

        $this->load->view('admin/login',$data);
  }

    public function logout(){
        $this->load->helper('url');

        $sessiondata = array(
            'userid'        => '',
            'logined'        => '',
            'last_action'        => ''
        );
         $this->session->unset_userdata($sessiondata);
                session_destroy();

        unset($_SESSION['access_token']);

        redirect('/admin/login');

    }
}
?>


2) 경로: /application/views/admin/login.php

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Login Page</title>
        <meta name="msapplication-TileColor" content="#5bc0de"/>
        <meta name="msapplication-TileImage" content="/assets/img/metis-tile.png"/>
        
    <link rel="stylesheet" href="/assets/lib/bootstrap/css/bootstrap.css">
    <link rel="stylesheet" href="/assets/css/main.css">
    <link rel="stylesheet" href="/assets/lib/magic/magic.css">
 
  </head>
  <body class="login">

          
<div class="container">
    <div class="text-center">
        <img src="/assets/img/main_logo.png">
    </div>
    <div class="tab-content">
        <div id="login" class="tab-pane active">
            <form action="/admin/login/login_check" class="form-signin"  method="post">
                <p class="text-muted text-center">
                    <?php if(isset($error)){ echo $error;} ?>
                </p>
                <input type="text" placeholder="userid" class="form-control" name="userid" >
                <input type="password" placeholder="Password" class="form-control" name="password">
                <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
            </form>
        </div>
        <div id="forgot" class="tab-pane">
            <form action="index.html" class="form-signin">
                <p class="text-muted text-center">Enter your valid e-mail</p>
                <input type="email" placeholder="mail@domain.com" required class="form-control">
                <br>
                <button class="btn btn-lg btn-danger btn-block" type="submit">Recover Password</button>
            </form>
        </div>
        <div id="signup" class="tab-pane">
            <form action="/login/join_submit" class="form-signin" method="post">
                <input type="text" placeholder="username" class="form-control" name="userid">
                <input type="email" placeholder="mail@domain.com" class="form-control" name="email">
                <input type="password" placeholder="password" class="form-control" name="password">
                <button class="btn btn-lg btn-success btn-block" type="submit">Register</button>
            </form>
        </div>
    </div>
     <div class="text-center">
        <ul class="list-inline">
            <li><a class="text-muted" href="#login" data-toggle="tab">Login</a></li>
            <li><a class="text-muted" href="#forgot" data-toggle="tab">Forgot Password</a></li>
            <li><a class="text-muted" href="#signup" data-toggle="tab">Signup</a></li>
        </ul>
    </div>
</div> <!-- /container -->
      
      <script src="/assets/lib/jquery.min.js"></script>
      <script src="/assets/lib/bootstrap/js/bootstrap.js"></script>
      
      <script>
            $('.list-inline li > a').click(function() {
                var activeForm = $(this).attr('href') + ' > form';
                //console.log(activeForm);
                $(activeForm).addClass('magictime swap');
                //set timer to 1 seconds, after that, unload the magic animation
                setTimeout(function() {
                    $(activeForm).removeClass('magictime swap');
                }, 1000);
            });

        </script>
  </body>
</html>
보다 / 2015/05/14 22:02:52 / 추천 0
위의 소스코드가 현재 사용되는 로그인 관련 파일입니다.
여기서 수정하거나 아니면 다른 파일에서 수정 또는 확인해야할 부분은 어디일런지요...?