생각하는섬 http://reedyfox.com ko 팀블로그 생각하는섬, 아웃사이더 크리스찬들의 바닷가 김동호 목사의 언행일치 http://reedyfox.com/island.php/fox/1945 요즘엔 저녁에 설거지 하면서 김동호 목사님의 '날마다 기막힌 새벽'을 듣는다.

며칠동안 어떤 문제를 처리하는 방법을 여러가지로 고민하고 있었고, 나름 똑똑하고 교묘하게 계획을 수립했다고 생각하고 있었는데, 김동호 목사님 말씀을 듣고 마음이 찔렸다. 그 모든 계획은 하나님의 계획이 아니라 사람의 계획이라는 생각이 들었다. 내가 하나님을 의지하는 게 아니라 돈과 사람을 의지하고 있구나 하는 생각이 들었다. 그래서 모두 포기하기로 했다. 불이익과 손해를 감수하기로 했다. 그래야 찔림이 없을 것 같았기 때문이다.

김동호 목사님은 참 대단한 분이다. 이 분을 한 마디로 요약할 말을 찾아보니까 '언행일치' 같다. 내가 20대 때 이 분이 하시던 말씀이나 내가 40대 넘어서 이 분이 하시는 말씀이나 똑같다. 내가 20대 때 이 분이 하셨던 행동이나 지금 이 분이 하시는 행동이 전혀 차이가 없다.

그래서 이 분의 설교 말씀에 하나님께서 주시는 감동과 역사가 있는 것 같다. 어리석은 나를 깨우쳐 주심에 감사....

#김동호목사 #날마다기막힌새벽

https://youtu.be/Z3W9o0obtdo
]]>
헤드라인 리디 2020-10-18T06:55:49+09:00
재난 스릴러 추천 영화 - 콰이어트 플레이스, 버드 박스 http://reedyfox.com/island.php/fox/1944 재난 스릴러 영화를 좋아하는 분께 영화 두 편을 추천해 드립니다.

이 두편의 영화는 컨셉이 비슷합니다.

ㅇ전 지구적/궤멸적 재난
ㅇ일상적이면서 기본적인 것들이 생명을 위협하는 원인이 됨(보면 죽음 / 말하면 죽음)
ㅇ생명 유지를 위한 규칙 준수가 어려운 어린이/유아라는 존재
ㅇ모성애/부성애

재난 블록버스터 아니고 스릴러입니다. 주의하세요. ^^;;;

ㅇ콰이어트 플레이스
https://www.netflix.com/title/80213226?s=a&trkid=13747225&t=cp

ㅇ버드 박스
https://www.netflix.com/title/80196789?s=a&trkid=13747225&t=cp ]]>
헤드라인 리디 2020-07-16T07:22:34+09:00
[영화] 엑시트(2019) http://reedyfox.com/island.php/fox/1943 1. 군더더기 없고 깔끔한 웰메이드 영화
2. 재난영화에 클리셰처럼 등장하는 발암상황이나 캐릭터가 없음
3. 윤아가 언제부터 이렇게 연기를 잘 했던가!?! ]]>
헤드라인 리디 2019-08-14T06:50:26+09:00
PHP 5 이상으로 이전시 로그인 안되는 문제 http://reedyfox.com/island.php/building/89 Mysql 4.1 버전에서 제로보드 호환에 문제가 되는 이유

1. PASSWORD 함수의 사용바이트 수 증가
기존 4.0 까지의 password() 함수는 함호화를 위해 16 바이트를
사용했는데 4.1 부터는 41 바이트를 사용합니다.
그리고 4.1 에서 4.0 이전의 16 바이트 함수는 old_password() 라는
이름으로 바뀌었습니다.

아래는 4.1 에서의 간단한 예입니다.

mysql> select password('aabbcc');
+-------------------------------------------+
| password('aabbcc') |
+-------------------------------------------+
| *2413A83E64BC8C0B97D3072004D15A19E48A1C00 |
+-------------------------------------------+
1 row in set (0.00 sec)

mysql> select old_password('aabbcc');
+------------------------+
| old_password('aabbcc') |
+------------------------+
| 2cbf598202278785 |
+------------------------+
1 row in set (0.00 sec)

mysql> select length(password('aabbcc'));
+----------------------------+
| length(password('aabbcc')) |
+----------------------------+
| 41 |
+----------------------------+
1 row in set (0.00 sec)

mysql> select length(old_password('aabbcc'));
+--------------------------------+
| length(old_password('aabbcc')) |
+--------------------------------+
| 16 |
+--------------------------------+
1 row in set (0.00 sec)



2. 테이블 생성 스키마 제한

제로보드에서 새 테이블을 생성할때 소스 디렉토리의 schema.sql 이라는 파일을
통해서 생성합니다.
Mysql 4.1 에서는 create table 에서

create table $admin_table (
no int(11) default '0' not null auto_increment primary key,
group_no int(20) unsigned not null,
....

와 같이 auto_increment 옵션을 준 칼럼에 default '0' 과 같은
디폴트 값을 같이 사용할 수가 없습니다.

그렇게 사용하면 아래 처럼 에러가 납니다. 당연히 제로보드에서
테이블 생성이 안됩니다.


mysql> create table aaaa ( id int default '0' not null auto_increment primary key );
ERROR 1067 (42000): Invalid default value for 'id'

mysql> create table aaaa ( id int not null auto_increment primary key );
Query OK, 0 rows affected (0.01 sec)




위 두가지만 잘 이해하면 Mysql 4.1 에서 제로보드 사용시 발생하는 에러들의 원인을
찾을 수가 있습니다.
좀더 구체적으로 보면..


[무조건 해야하는 작업]

제로보드를 처음으로 설치해서 사용하든 이전 제로보드데이타와 소스를 옮기든지
반드시 무조건 해야하는 작업은 schema.sql 이라는 파일에서
default '0' not null auto_increment 이부분에서 default '0' 을 삭제합니다.
모든 default '0'을 삭제하는 것이 아니라 반드시 auto_increment 와 같이 사용되는
칼럼의 default '0' 을 삭제합니다.

그리고 패스워드 저장하는 칼럼의 크기도 이전 20 에서 41 로 늘려주는 것이
좋습니다. 아래에서 다시..










[ 4.1 버전의 새 password() 함수를 사용할 경우]

최초로 제로보드를 깔아서 사용하려는 사람들에게 적용될 듯합니다.
좀더 보안이 강화된 4.1 버전의 password 함수를 사용하려면 php 소스는
그대로 두고 schema.sql 파일을 추가 수정해야 합니다.

위에서는 schema.sql 의 default '0' 부분만 수정했는데
이번에는 password 를 저장하는 칼럼의 크기를 늘려야 합니다.

기존의 password 칼럼은 20 혹은 18 등의 크기로 되어 있는데

password char(20)

이부분을 41 로 수정해 줍니다.
schema.sql 에서

29 라인의 password char(20) not null,
38 라인의 jumin char(18),
234 라인의 password char(20),
288 라인의 password char(20),


모두 4 곳을 41 로 크기를 수정해 줍니다.
제로보드에서는 주민등록번호도 암호화를 하므로 jumin 칼럼도
수정해 줘야 합니다. 이 외에도 빠진부분이 있는지는 각자 알아서
체크해보시길.

이와 같은 작업은 실제 설치를 시작하게 전에 해줘야 합니다.
수정하지 않고 설치후 에러가 났을 경우에는 생성된 DB 를
삭제해주고 config.php 파일을 삭제한후 다시 install.php 를
실행해서 첨부터 다시 설치를 하시면 됩니다.




[이전 4.0 이하 버전의 password() 함수를 그대로 사용할 경우]

4.0 이전의 password()함수는 mysql 4.1x 에서는 old_password() 라는
함수로 사용할 수 있습니다.
이미 mysql 4.0 이하버전에 제로보드로 많은 회원과 게시판들을 운영하고
있었던 경우 그 데이타를 그대로 살리면서 4.1로 옮길때 적용할 수 있습니다.

우선 제로보드의 php 소스에서 사용된 모든 password() 함수를 old_password() 함수로
고치면 됩니다. 말이 쉽지 작업하기 장난 아닙니다.
일단 어떤 소스에서 password() 함수를 쓰는지 보려면..

[root@haansoft bbs]# pwd
/var/www/html/bbs
[root@haansoft bbs]# grep -R -i -l "password(" ./*
./admin/admin_exec_member.php
./admin/admin_view_member.php
./comment_ok.php
./del_comment_ok.php
./delete_ok.php
./install2_ok.php
./login_check.php
./lostid_search.php
./member_join_ok.php
./member_modify_ok.php
./member_out.php
./view.php
./write_ok.php
[root@haansoft bbs]#

와 같은 파일들이 password() 함수를 씁니다. 구체적인 라인의 내용을 보려면
grep -R -i "password(" ./* 와 같이 -l 옵션을 빼고 grep 명령을
내려보면 됩니다.
위 13 개 파일을 열어서 password("$password") 와 같은 부분을
old_password("$password") 와 같이 수정해 주면 됩니다.

출처 : http://kasua.namoweb.net/zb41pl4/bbs/skin/ggambo7002_board/print.php?id=home&no=102  [새창에서 열기]




오늘 우연하게(?) 봄이 받고 있는 호스팅 업체에 제로보드를 설치해 주다가 수정한 것입니다.

환경은
PHP : 5.x
MySQL : 5.x
이렇습니다.

현상은 다음과 같습니다
admin.php 페이지에서 로그인 id/pw 정상적으로 입력을 했음에도 불구하고 admin-setup.php로 넘어가지 않는 것입니다.

먼저 login_check.php 파일을 열어 봅니다.

session_register("zb_logged_no");
session_register("zb_logged_time");
session_register("zb_logged_ip");
session_register("zb_last_connect_check");
이런 게 있습니다.

혹시나 해서
print_r($_SESSION);
을 했더니 빈값입니다.

우선은 login_check.php 파일부터 손을 잠깐 보겠습니다.
위에 저 부분을

$_SESSION["zb_logged_no"] = $zb_logged_no;
$_SESSION["zb_logged_time"] = $zb_logged_time;
$_SESSION["zb_logged_ip"] = $zb_logged_ip;
$_SESSION["zb_last_connect_check"]= $zb_last_connect_check;
이렇게 바꿉니다.
print_r($_SESSION);
을 하게 되면

Array
(
[zb_last_connect_check] => 0
[zb_logged_no] => 1
[zb_logged_time] => 1229406938
[zb_logged_ip] => xxx.xxx.xxx.xxx <- 이거는 자체 필터링;; 쿨럭
)

이렇게 나오네요.

php.ini에 보면 register_globals라는 항목이 있는데 Off로 되어 있기 때문에 그렇습니다.
우리나라의 경우는 어지간한 호스팅 업체는 On입니다.
보안이나 이런 것들을 위해서도 Off로 사용하시는 게 좋습니다.
자 이제 됐으니 다시 로그인을 해 봅니다.
또 아까와 같은 상황입니다.

세션은 정상적으로 생성이 되었습니다.

혹시나 해서 admin.php 소스를 보면 admin_setup.php 페이지로 넘기는 부분이 보이고
<?
include "lib.php";
$connect=dbConn();
$member=member_info();
if(($member[no]&&$member[is_admin]<3&&$member[is_admin]>=1)||($member[no]&&$member[board_name])) move page("admin_setup.php");
이렇게 되어 있습니다.
if문에 있는 조건에 부합하지 않다는 거겠죠.

이번엔 lib.php를 열어 봅니다.
$member=member_info();
얘를 먼저 봅니다.
member_info()라는 함수를 검색해 보겠습니다.

function member_info() {
global $HTTP_SESSION_VARS, $member_table, $member, $connect;
if(defined("_member_info_included")&&$member[no]) return $member;
define("_member_info_included", true);
if($member[no]) return $member;
if($HTTP_SESSION_VARS["zb_logged_no"]) {
$member=mysql_fetch_array(mysql_query("select * from $member_table where no ='".$HTTP_SESSION_VARS["zb_logged_no"]."'"));
if(!$member[no]) {
unset($member);
$member[level] = 10;
}
} else $member[level] = 10;
return $member;
}
저렇게 나오네요.
위에 또 이상한 게 보입니다.

$HTTP_SESSION_VARS;
$HTTP_SESSION_VARS["zb_logged_no"];

php.ini에서 register_long_arrays가 Off로 되어 있으면 저렇게 긴 녀석도 사용을 할 수가 없습니다.
참고로 PHP6에선 아예 삭제한다고 합니다.
그러니 아예 지금부터 사용을 않는 게 좋겠죠.
http://kr2.php.net/manual/kr/function.session-register.php  [새창에서 열기]
$_SESSION;
$_SESSION["zb_logged_no"];

이렇게 바꿔 주시면 됩니다.
이제 정상적으로 잘 되는지 테스트 해 보시기 바랍니다.



출처: http://www.nyaongnyaong.com/636 [새창에서 열기] [zzin]
]]>
일반 리디 2018-06-10T00:36:23+09:00
구글 주소록 동기화 오류 해결방법 http://reedyfox.com/island.php/fox/1942 구글 주소록 계정과 스마트폰 단말간 동기화가 갑자기 안될 때

스마트폰 환경 설정 > 앱 > 주소록 저장소(또는 연락처 저장소)

위로 들어가셔서 앱을 강제종료 해주시면 됩니다.

"주소록" 앱이 아니라 "주소록 저장소" 라는 앱이 따로 있습니다.
만약 주소록 저장소가 안 보이면 오른쪽 상단 메뉴에서 "시스템 표시"를 선택해주시면 됩니다. ]]>
헤드라인 리디 2018-06-07T15:10:16+09:00
스타벅스 WiFi 접속이 잘 안되는 경우 해결방법 http://reedyfox.com/island.php/fox/1941 스타벅스에서 인터넷 브라우저 열면 스타벅스 와이파이 로그인(KT) 창이 떠야 되는데

1) 이게 아예 안 떠서 접속을 못하거나
2) 안 떴지만 접속은 된 걸로 나오는데 실제로 인터넷 연결은 안되는 경우

인터넷 브라우저 주소창에 www.olleh.com 를 입력하고 접속해보세요.
로그인 창이 뜹니다.

이런 일이 자주 발생하는 경우, 아예 즐겨찾기에 저 URL을 저장해두시면 편리합니다. ]]>
헤드라인 리디 2018-06-07T11:22:58+09:00
눈보라를 뚫고 00 - 표지 http://reedyfox.com/island.php/later/93 (추가 중) ]]> 일반 리디 2016-01-05T07:24:27+09:00 신학교에서의 10년 -1- http://reedyfox.com/island.php/inny/135 재수생활은 겨울과 같았다. 난 새벽 6시부터 저녁 10시까지 주안도서관에 쳐박혀 있으면서
나무칸막이를 바라보며 여러가지 미래를 상상해보았다.
10년이 지난후에 정말 한가지도 그대로 이루어진것이 없다.
난 어느 명문대학에 가서 심리학을 전공하고, 미국 유학을 가서 인텔리가 되어서,
영어를 섞어서 쓰며 재미있는 글을 쓰는 사람으로 한국에 멋지게
금의환향을 해야 했고 아마도 지금쯤이면 어디서든 여자들에게 인기있고, 유명하고, 영향력 있는 사람이 되어
있었어야 하는데,

지금 난 전도사다. 내년이면 어디를 가야할찌 모르는 교육전도사, 신대원 3학년에 올라가는데
우리 장인어른은 신대원이 무언지 도무지 설명해도 모르시는것 같고, 자꾸 월급은 얼마 받냐고 물어보시고
난 여전히 가난하고, 시간이 지나도 여전히 가난할것이다.
인기라고는 우리 고등부 몇 남자애들이 나를 숭배한다.
유학은 커녕 텝스 점수 모잘라서 신대원에 못올뻔 했다.
우리 아버지는 내가 서울에서 전도사 생활한다니까 출세한줄 알고 갑자기 용돈을 한달에 50만원 달라신다. 헉

하지만 굳이 그동안 좋았던 것을 꼽으라면
난 이 신학교에서 10년동안 보석과도 같은 소중한 친구들 동지들을 만났고,
일본에 견습선교사랍시고 다녀와 외국물 이상하게 먹어서 돌아온지 1년이 넘도록 낮에는 못하는 일본어를 잠꼬대로 하고
내가 자란 교회 처럼 따뜻한 교회를 만나 할줄아는게 하나도 없는 나 같은 사람이 고등부 전도사라고
사례비를 받고, '싸랑하는 전도사님께'라고 남자애가 쓴 성탄절 카드도 받고
무엇보다 왜 나같은 사람을 사랑해주었는지 알수 없는 아내를 만나
사랑받고 사랑하고 함께 살게 되었고
결혼한지 일년도 못되어
내 목숨을 주어도 아깝지 않을 사랑하는 딸 '주은이'를 얻게 된것이다.

'주은이'를 낳고서야 신학교 10년동안 고민하던 물음 하나가 풀렸다.
'왜 하나님은 우리를 사랑하시는가?'
이유가 필요없는것이다.
내가 그분 새끼인거다. 사랑하는 아들인거다.
내가 우리 주은이를 안고 입을 쫘악 벌리고 아아얼굴에 내 얼굴을 붙이어 얼굴 비비며 사랑하듯이
하나님도 우리에게, 나에게 미쳐있는것이다.

그렇지 않으면 이렇게 멋진 10년을 나에게 선물할리가 있겠는가
날마다 겨울같았던 재수생활때, 나무칸막이를 보며
'좀 날 사랑해주세요! 날 버리지 말아주세요!'라고 하늘을 향해 호소하던
그때의 나의 기도를 그분은 지금도 10년이 아니라 100년이 지나도록 잊지 않고 계신거다.

-계속-
]]>
헤드라인 최인규 2008-12-22T13:14:06+09:00
사랑한다는 것은 결국 약해진다는 것이다. http://reedyfox.com/island.php/onlyjesus/42 【mor】사랑한다는 것은 결국 약해진다는 것이다.
마음을 절대 다치지 않으려거든 아무에게도 마음을 주지 않으면 된다. 동물한테도 마음을 주면 안된다.

취미와 소소한 사치로 마음을 꼭꼭 동여매라.
모든 연줄을 피하라.
이기심이라는 관속에 마음을 안전히 가둬두라.
러면 안전하고 어둡고 공기가 통하지 않은 그 부동의 관 속에서 마음은 변질될 것이다.

물론 상처를 모를것이다.
그러나 깨질 수도 없고,
뚫고 들어갈 수도 없고,
구원받을 수도 없는 마음이 되고 말 것이다.

천국을 제외하고 사랑의 위험에서 완전히 안전하게 피할 수 있는 유일한 곳은 지옥이다.

- C.S. 루이스 <네가지 사랑 中> -


]]>
헤드라인 양두선 2008-11-18T20:09:12+09:00
채워지지 않는 마음속 공간의 주인 http://reedyfox.com/island.php/onlyjesus/41
【mor】세상에서 가장 큰 공간은 우리의 마음속의 채워지지 않는 사랑의 공간이다.

이것은 사랑의 근원이신 하나님 말고는 아무도 채울수 없다.

그 공간의 주인은 유일하신 하나님이시다.

- 양두선 -


]]>
헤드라인 양두선 2008-11-18T20:04:25+09:00