PHP Notice: Use of undefined constant
·
Development/PHP
PHP Notice: Use of undefined constant PHP 5.3 이후 버전에서 발견되는 문제로 배열인덱스를 문자열로 처리해야 한다. 배열 인덱스가 문자열이니 문자열( ' ' )로 처리해 주어야 한다는 뜻이다. 아래처럼 []안의 값을 ''로 감싸주어야한다. 작성할 때 ''를 사용하는게 가장 좋지만, 수정하기 힘든 경우 php.ini파일을 수정한다. $group[id] = $group; $group['id'] = $group; php.ini 파일에서 display_errors 끄기 display_errors = off
Cannot re-assign auto-global variable _GET 에러
·
Development/PHP
Cannot re-assign auto-global variable _GET PHP 버전업에 따른 문제로, 5.3까지는 사용 가능하며 5.4부터 발생하는 에러이다. php.ini에서 rester_globals 를 On 으로 하면 변수가 get, post, session 변수인지 체크하지 않아도 되는데, 5.4부터 register_globals가 없어졌다고 한다. 파라미터이름을 $_GET 대신 다른걸로 변경하다가, 변경된 사항이 많아서 그냥 다운그레이드 하기로 결정했다(..) [변수] => ['변수'], 정규 표현식 등등.. 기존 라이브러리 함수도 그렇고 변환해야될게 너무 많아서 다운 그레이드하고, 버전업은 다른 서버에서 테스트하려고 한다. php 5.3 설치 wget https://www.php.net/..
mysql_connect(): No such file or directory
·
Development/PHP
*mysql_connect 사용시 No such file or directory 가 발생하는 경우에 대해 정리하였습니다. PHP Warning: mysql_connect(): No such file or directory in 경로/파일명.php on line 16 phpinfo() phpinfo()를 확인하여 mysql.default_socket의 값을 확인한다. mysql.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock mysql status 확인 쉘에서 mysql로 접속하여 status;를 입력한 후 UNIX socket의 값을 확인한다. # mysql -u root -p..
익명 함수(Anonymous functions)
·
Development/PHP
익명함수란? 함수의 이름이 없는 형태의 함수 함수의 이름을 지정하지 않으며, 익명함수를 람다함수라고도 한다. 익명 함수 문법 function (인자1, 인자2, 인자3 ...) { 함수 정의 몸체 ... 소스 코드 내용 } fuction과 인자 사이에 함수명이 생략 되어있다. 그래서 소스상에서 선언과 동시에 바로 실행 호출 된다. 한번만 사용하는 일회성 함수를 모두 정의해서 프로그램에 상주하지 않고 필요할 때마다 간략하게 함수를 사용할 수 있는 특징이 있다. 익명함수를 변수에 바인딩(결합)할 수 있다. 변수 바인딩 $변수명 = function (인자){ } 공식 문서 https://www.php.net/functions.anonymous PHP: Anonymous functions - Manual Whe..
[PHP] 로그파일에 소스코드가 출력되는 경우
·
Development/PHP
rdate -s time.bora.net 서버 이동 후, 테스트 코드를 실행해봤는데 로그 파일에 소스코드가 그대로 출력되었다. php 설치 확인 php -v 5.4 버전이 설치되어있다😅 phpinfo() 확인 먼저 phpinfo를 확인하였다. 쉘에서 php 실행 시 timezone 에러 발생 서버시간 동기화 rdate -s time.bora.net 혹시나해서 실행해봤는데 역시 php.ini를 확인해봐야겠다.. php.ini 수정 date.timezone을 찾아서 주석을 해제하고, Asia/Seoul 추가 date.timezone = Asia/Seoul 오류 없이 phpinfo 출력이 완료되었다. 하지만 여전히 소스코드가 그대로 출력되는 문제가 발생 중임.ㅋ 💀💀💀💀💀 apache와 연동 확인하기 그래....
PHP 로그에 소스코드가 출력될 때
·
Development/PHP
php 실행 로그를 찍었을 때 소스코드가 그대로 출력되는 경우가 있다. 서버에 설치는 되어있는데, 정상적으로 설치되어있는지 확인이 필요하다. phpinfo()실행 phpinfo()를 먼저 실행해본다. 실행해보니 오류가 발생한다. 찾아보니 timezone을 설정하면 된다고 한다. (설정 후 다시 업데이트) http://idchowto.com/php-timezone-%EC%97%90%EB%9F%AC/ php timezone 설정 - 스마일서브 IDCHOWTO닷컴 Warning: phpinfo(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the da..
[PHP] cURL로 자동 로그인하기
·
Development/PHP
cURL이란? client URL cURL은 다양한 통신 프로토콜을 이용하여 데이터를 전송하기 위한 라이브러리와 명령을 제공하는 컴퓨터 소프트웨어 프로젝트이다. cURL을 통해 웹 페이지의 소스를 가져오거나 로그인, 쿠키값을 가져오는 등의 다양한 기능을 사용할 수 있다. 커맨드에서도 cURL을 사용할 수 있는데, php에서 cURL을 사용해서 자동 로그인을 해보았다. cURL로 로그인하기 로그인 아이디와 패스워드, 로그인할 페이지 URL, user-agent, 로그인 후 접속할 페이지 URL을 각각 입력한다. $submit['ID'] = "아이디"; $submit['PW' ] = "패스워드"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL,"로그인 페이지 U..
php timestamp 13자리 변환하기
·
Development/PHP
원래 10자리 숫자만 변환 가능하므로, 13자리일 경우 1000으로 나눠주고 date() 함수를 통해 변환하면 된다. 10자리 timestamp : 밀리세컨즈 포함 x 13자리 timestamp는 밀리세컨즈 포함 o $date = 1645064913543 $date = ceil($date/1000); $date = date("Y-m-d H:i:s",$date); 날짜 환산할 때 밀리세컨즈가 필요 없을 경우, 끝 3자리를 제거해도 된다. substr(str, 0, -3)