제목 | 300페이지 sns프로젝트 질문입니다. | ||
---|---|---|---|
글쓴이 | 책상다리 | 작성시각 | 2013/11/06 11:15:51 |
|
|||
게시판 만들기 끝내고, sns프로젝트로 넘어왔는데요. 업로드 기능 만들기에서, controlls.php 와 sns_m.php, upload_photo_v.php만들어서 사진 업로드하고 쓰기 부분 만들어 주려고 하고 있습니다. 그런데 책 313페이지에서 보면 localhost/sns/controlls 로 접속해서 로그인 후에 쓰기화면 접속이라고 나와있는데요. controlls.php쪽 소스를 보면 로그인 되있지 않을경우 document.location = '/sns/auth/login/' 이쪽으로 넘어가게 되어있는데요. 위의 주소를 치면 로그인 후 작성하세요 애러 메세지 발생 후 404 page not found 가 뜹니다;;; localhost/sns/auth/login/ 주소는 이렇구요.. C:\xampp\htdocs\sns\application\views\ 이 경로 안에 헤더와 풋터 넣어놨구요. C:\xampp\htdocs\sns\application\views\auth 이 경로 안에 login_v.php 파일 있습니다. 아래에 controlls.php 첨부하겠습니다. 어제부터 이것저것 바꿔보고 하는데도 해결이 안되네요 ㅠ 부탁드립니다 ㅠ 아 index.php 는 .htaccess 와 컨피그 파일 수정으로 정상적으로 생략가능하게 되있습니다. <?php if ( ! defined('BASEPATH')) exit ('No direct script access allowed'); class Controlls extends CI_Controller { function __construct() { parent::__construct(); $this->load->model('sns_m'); $this->load->helper(array('form','date','url')); $this->load->database(); $this->load->library('session'); echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'; } public function _remap($method) { $this->load->view('header_V'); if( method_exists($this, $method) ) { $this->{"{$method}"}(); } $this->load->view('footer_v'); } public function index() { $this->upload_photo(); } function upload_photo() { if(@$this->session->userdata['logged_in'] == TRUE ) { //폼 검증 라이브러리 로드 $this->load->library('form_validation'); //폼 검증할 필드와 규칙 사전 정의 $this->form_validation->set_rules('subject','제목','required'); $this->form_validation->set_rules('contents','내용','required'); if( $this->form_validation->run() == FALSE ) { $this->load->view('upload_photo_v'); } else { $config = array( 'upload_path' => 'uploads/', 'allowed_types' => 'gif|jpg|png', 'encrypt_name' => TRUE, 'max_size' => '1000' ); $this->load->library('upload',$config); if(!$this->upload->do_upload()) { $data['error'] = $this->upload->display_errors(); $this->load->view('upload_photo_v',$data); } else { $upload_data = $this->upload->data(); $upload_data['subject'] = $this->input->post('subject',true); $upload_data['contents'] = $this->input->post('contents',true); $upload_data['user_id'] = $this->session->userdata[('username')]; $result = $this->sns_m->insert_sns($upload_data); redirect('/controlls/lists'); exit; //페이스북 전송 if($result) { //sns 라이브러리 로드 $this->load->library('sns'); $this->facebook = $this->sns->facebook(); $this->facebook->setCallback(site_url('upload_photo/facebook_upload/'.$result)); if(!$this->facebook->isLoggedIn()) { $this->facebook->login(); } } else { echo "<script> alert('입력실패했습니다.');</script>"; redirect('/controlls/upload_photo'); } } } } else { echo "<script>alert('로그인 후 작성하세요'); document.location = '/sns/auth/login/'; </script>"; exit; } } function facebook_upload() { //글 정보 가져오기 $id = $this->uri->segment(3); $result = $this->sns_m->get_sns($id); //앨범 업로드 $this->facebook->uploadPhoto($result['contents'], $result['file_path'].$result['file_name'],''); redirect('/cotrolls/lists'); } function lists() { //검색어 초기화 $search_word = ''; //주소중에서 q(검색어) 세그먼트가 있는지 검사하기 위해 주소를 배열로 변환 $uri_array = array_values($this->uri->segment_array()); if( in_array('q', $uri_array) ) { //주소에 검색어가 있을 경우의 처리. 즉 검색시 $search_word = urldecode($this->url_explode($uri_array, 'q')); } $data['list'] = $this->sns_m->get_sns_list('sns_files', '', 0, 6, $search_word); if( BROWSER_TYPE == 'M' ) { $this->load->view('mobile_lists_v', $data); } else { $this->load->view('lists_v', $data); } } /** * sns 보기 */ function view() { $id = $this->uri->segment(3); //게시물 가져오기 $data['views'] = $this->sns_m->get_view($id); //댓글 리스트 가져오기 $data['comment_list'] = $this->sns_m->get_comment($id); //view 호출 if( BROWSER_TYPE == 'M' ) { $this->load->view('mobile_view_v', $data); } else { $this->load->view('view_v', $data); } } /** * 게시물 삭제 */ function delete() { //경고창 헬퍼 로딩 $this->load->helper('alert'); if( @$this->session->userdata('logged_in') == TRUE ) { //삭제하려는 글의 작성자가 본인인지 검증 $board_id = $this->uri->segment(3); $writer_id = $this->sns_m->writer_check($board_id); if( $writer_id->user_id != $this->session->userdata('username') ) { alert('본인이 작성한 글이 아닙니다.', '/sns/controlls/view/'.$this->uri->segment(3).'/page/'.$this->uri->segment(5)); exit; } //게시물 번호에 해당하는 게시물 삭제 $return = $this->sns_m->delete_content($this->uri->segment(3)); //게시물 목록으로 돌아가기 if ( $return ) { //삭제가 성공한 경우 alert('삭제되었습니다.', '/sns/controlls/lists/page/'.$this->uri->segment(5)); exit; } else { //삭제가 실패한 경우 alert('삭제 실패하였습니다.', '/sns/controlls/view/'.$this->uri->segment(3).'/page/'.$this->uri->segment(5)); exit; } } else { alert('로그인후 삭제하세요', '/sns/auth/login/'); exit; } } function modify_photo() { //경고창 헬퍼 로딩 $this->load->helper('alert'); //주소 중에서 page 세그먼트가 있는지 검사하기 위해 주소를 배열로 변환 $uri_array = array_values($this->uri->segment_array()); if( in_array('page',$uri_array) ) { $pages = urldecode($this->url_explode($uri_array, 'page')); } else { $pages = 1; } if( @$this->session->userdata('logged_in') == TRUE ) { $id = $this->uri->segment(3); //수정하려는 글의 작성자가 본인인지 검증 $writer_id = $this->sns_m->writer_check($id); if( $writer_id->user_id != $this->session->userdata('username') ) { alert('본인이 작성한 글이 아닙니다.','/sns/controlls/view/'.$id.'/page/'.$pages); exit; } //폼 검증 라이브러리 로드 $this->load->library('form_validation'); //폼 검증할 필드와 규칙 사전 정의 $this->form_validation->set_rules('subject','제목','required'); $this->form_validation->set_rules('contents','내용','required'); if ( $this->form_validation->run() == TRUE ) { if ( !$this->input->post('subject',TRUE) AND !$this->input->post('contents',TRUE) ) { //글 내용이 없을 경우, 프로그램 단에서 한번 더 체크 alert('비정상적인 접근입니다.','/sns/controlls/lists/page/'.$pages); exit; } if($_FILES) //수정할 파일이 있다면 { //upload 실행 $config = array( 'upload_path' => 'uploads/', 'allowed_types' => 'gif|jpg|png', 'encrypt_name' => TRUE, 'max_size' => '1000' ); $this->load->library('upload',$config); if(!$this->upload->do_upload()) { $data['error'] = $this->upload->display_errors(); $this->load->view('modify_photo_v',$data); } else { $upload_data = $this->upload->data(); if($upload_data['image_width'] > 300) { //이미지 리사이즈, 파일명_thumb.확장자 형태로 섬네일 생성 $config['image_library'] = 'gd2'; $config['source_image'] = $upload_data['full_path']; $config['create_thumb'] = TRUE; $config['maintain_ratio'] = TRUE; $config['width'] = 300; $config['hight'] = 300; $this->load->library('image_lib',$config); $this->image_lib->resize(); } } } else { $upload_data = array(); } //수정할 데이터 정리 $upload_data['subject'] = $this->input->post('subject',true); $upload_data['contents'] = $this->input->post('contents',true); $upload_data['user_id'] = $this->session->userdata('username'); $upload_data['id'] = $id; $result = $this->sns_m->update_sns($upload_data); redirect('/controlls/lists'); exit; //페이스북 전송 if($result) { //sns 라이브러리 로드 $this->load->library('sns'); $this->facebook = $this->sns->facebook(); $this->facebook->setCallback(site_url('upload_photo/facebook_upload/'.$result)); if(!$this->facebook->isLoggedIn()) { $this->facebook->login(); } } else { echo "<script> alert('입력 실패했습니다.'); </script>"; redirect('/controlls/upload_photo'); } if ($result) { //글 작성 성공 시 게시판 목록으로 alert('수정되었습니다.','/sns/controlls/lists/page/'.$pages); exit; } else { //글 수정 실패 시 글 내용으로 alert('다시 수정해 주세요.','/sns/controlls/view/'.$id.'/page/'.$this->uri->segment(5)); exit; } } else { //게시물 내용 가져오기 $data['views'] = $this->sns_m->get_view($id); //쓰기 폼 뷰 호출 $this->load->view('modify_photo_v',$data); } } else { alert('로그인 후 수정하세요','/sns/auth/login/'); exit; } } function url_explode($url, $key) { $cnt = count($url); for($i=0; $cnt>$i; $i++ ) { if($url[$i] ==$key) { $k = $i+1; return $url[$k]; } } } } |
|||
다음글 | 세션관련 질문입니다. (4) | ||
이전글 | p203 세션 로드 후 게시판에서 보안키를 요구하네요 (4) | ||
책상다리
/
2013/11/06 13:14:26 /
추천
0
|
변종원(웅파)
/
2013/11/06 14:14:42 /
추천
0
네. 답변 올리러 들어왔는데 자답이 있네요.
404는 파일이 없다는 에러입니다. not found ci에서 주소가 컨트롤러와 메소드(함수)와 연결되는 걸 아실테니 다음부터는 해당 파일이 있는지 살펴보세요. |
이상하네요..ㅠㅠ bbs에서 통째로 가져왔는데..ㅠㅠ