2017-12-08 32 views
0

CodeIgniter에서 redirect() 함수를 사용하려고 할 때 문제가 있습니다.

오류PHP | Codeigniter Redirect | 헤더 정보를 수정할 수 없습니다.

A PHP Error was encountered 
Severity: Warning 
Message: Cannot modify header information - headers already sent by (output started at /a_directory/CabUser.php:46) 
Filename: helpers/url_helper.php 
Line Number: 561 
Backtrace: 
File: /a_directory/CabUser.php> 
Line: 48 
Function: redirect 
File: /a_directory/index.php 
Line: 315 
Function: require_once 

내 파일 "CabUser.php"


<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class CabUser extends CI_Controller { 

    function __construct() { 
    parent::__construct(); 
    $this->load->database(); 
    } 

    public function index() { 
    if ($this->session->has_userdata('for_login')) { 
     $userPrivelegies = $this->session->userdata['for_login']['privelegies']; 
     if($userPrivelegies) { 
      redirect('CabMed', 'refresh'); 
     } 
     else { 
      $this->load->model('Cab_model'); 
       $this->Cab_model->getUserData(); 
     } 
    } 
    else { 
     redirect('login'); 
    } 
    } 

    function logout() { 
    if ($this->session->has_userdata('for_login')) { 
     $this->session->sess_destroy('for_login'); 
    } 
    redirect('home', 'refresh'); 
    } 

    function addMed() { 
    $data['numePrenumeMedic'] = $this->input->post('medic'); 
    $username = $this->session->userdata['for_login']['username']; 
    $this->db->where('username', $username); 
    $query = $this->db->get('Users'); 
    $ID = $query->row()->ID; 

    $this->db->where('ID', $ID); 
    $this->db->update('UserData', $data); 

    echo "<script> 
      alert('Succes!!!'); 
      </script>"; 

    redirect('CabUser', 'refresh'); //here's the problem 
    } 

    function upload() { 
    if ($this->input->post('update')) { 
     $data['numePrenume'] = $this->input->post('name'); 
     $data['numePrenume'] = $this->input->post('name'); 
     $data['facebook'] = $this->input->post('facebook'); 
     $data['ok'] = $this->input->post('ok'); 
     $data['instagram'] = $this->input->post('instagram'); 
     $data['datanasterii'] = $this->input->post('year') . '-' . $this->input->post('month') .'-' . $this->input->post('day'); 
     $data['telefon'] = $this->input->post('telefon'); 
     $data['adresa'] = $this->input->post('address'); 
     $data['sex'] = $this->input->post('sex'); 

     $sess = $this->session->userdata('for_login', 'username'); 

     $this->db->where('username',$sess['username']); 
     $query = $this->db->get('Users'); 

     $ID = $query->row()->ID; 

     $this->db->where('ID', $ID); 
     $this->db->update('Users', $data); 

     $this->db->where('ID', $ID); 
     $this->db->set('numePrenumePacient', $data['numePrenume']); 
     $this->db->update('Pacienti');  

     echo "<script> 
      alert('Succes!!!'); 
      </script>"; 
     redirect('CabUser', 'refresh'); 
    } 
    else { 
     echo "<script> 
      alert('Error to update. \n Try later please...); 
      </script>"; 
     redirect('CabUser', 'refresh'); 
    } 


    } 

} 
?> 
+0

에코 처리 후 리디렉션 할 수 없습니다. PHP 문서에서 헤더 함수 살펴보기 – Zyigh

답변

0

귀하의 솔루션입니다,

(내가 addMed() 함수를 호출 할 때)입니다

삭제 코드는 어디에서나 사용하고 있습니다. redirect() 기능. 리디렉션 함수는 PHP의 header 함수를 사용하기 때문에 어떤 헤더보다 먼저 브라우저에 아무 것도 보내거나 보내면 안됩니다.

그리고 그게 오류라고합니다.