CI 묻고 답하기

제목 core/config.php 부분에서 에러가 출력되는 문제
카테고리 CI 2, 3
글쓴이 정수리 작성시각 2018/03/23 14:48:48
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 14769   RSS

A PHP Error was encountered

Severity: Warning

Message: strpos(): Empty needle

Filename: core/Config.php

Line Number: 74

 

이 현상이 갑자기 생겨버리네요;;

 

처음에는 phpExcel를 사용해서 엑셀 파일, csv파일에서 데이터를 가져오는 기능을 만들고 나서 

 

테스트를 했을 때 에러메세지가 처음 나타나더라구요;

 

엑셀 파일을 가져올때는 저런 문제가 없었는데 csv에서 파일을 가져오면 저런 문제가 발생하더라구요

 

그래서 다른 방안을 찾고있었습니다.

 

브라우저를 끄고 다시 브라우저를 실행하고 나서 프로젝트에 접속하니

 

로그인 페이지부터 저런 에러메세지가 출력되네요;;

 

파일에서 데이터를 가져 올 때가 문제가 아닌 다른문제 였나보더라구요;;

 

처음부터 프로젝트를 만들 때는 저런 메세지가 출력되지 않았습니다;; 갑자기 출력되니 당황스럽네요

 

에러메세지에서 출력되는 부분의 코드를 살펴보니 

 


function __construct()
	{
		$this->config =& get_config();
		log_message('debug', "Config Class Initialized");

		// Set the base_url automatically if none was provided
		if ($this->config['base_url'] == '')
		{
			if (isset($_SERVER['SERVER_ADDR']))
			{	
				echo $_SERVER['SCRIPT_NAME'];
				echo '<br>';
				echo basename($_SERVER['SCRIPT_FILENAME']);
				$base_url = (empty($_SERVER['HTTPS']) OR strtolower($_SERVER['HTTPS']) === 'off') ? 'http' : 'https';
				$base_url .= '://'.$_SERVER['SERVER_ADDR'];
				$base_url .= substr($_SERVER['SCRIPT_NAME'], 0, strpos($_SERVER['SCRIPT_NAME'], basename($_SERVER['SCRIPT_FILENAME'])));//이부분에서 에러 출력

				
			}

			else
			{
				$base_url = 'http://localhost/';
			}

			$this->set_item('base_url', $base_url);
		}
	}

이게 에러메세지가 계속 출력이 되는것이 아닌 페이지가 새로고침되었을 때 뜰때도 있고 안뜰때도 있더라구요;;

원인이 무엇인지 확인하고자 

echo 문으로 

 

echo $_SERVER['SCRIPT_NAME'];
echo '<br>';
echo basename($_SERVER['SCRIPT_FILENAME']);

새로고침을 계속 해보면

 

echo basename($_SERVER['SCRIPT_FILENAME']); 

이게 출력이 되었다 안되었다 그러네요;

basename($_SERVER['SCRIPT_FILENAME']); 

값을 없을 경우에 에러가 출력이 되어버리네요;

 

딱히 core/config 부분에 손댄게 없는데 저런에러가 출력되는 이유가 무멋일까요???

 다음글 db 삭제 실패시 404페이지 이동 처리를 따로 하고싶... (1)
 이전글 네이티브앱 api를 만들려고합니다. 인증토큰 발생 및 ... (2)

댓글

변종원(웅파) / 2018/03/23 16:07:36 / 추천 0

서버변수는 값이 있을 수도 없을 수도 있어서 생기는 현상 같습니다.

basename($_SERVER['SCRIPT_FILENAME']); <- 이 부분은 현재 실행되는 파일의 디렉토리정보까지 나온 내용에서 파일이름만 분리하는겁니다.

위 부분을 직접 기술하지 마시고 값이 없을 경우엔 해당부분을 사용하지 않도록 분기처리하시면 됩니다. strpos.... 부분.

정수리 / 2018/03/23 16:31:48 / 추천 0

@변종원(웅파)

감사합니다. 올려주신 답변을 참조하여 해결하였습니다.

전에는 이런 문제가 없는데 서버가 이상해서 서버변수가 없을수도 있고 있을수도 있는 문제가 발생하는 것일까요?>