기준시간 이후에 해당 회원의 접근일시와 IP 를 저장할려면 어떻게 해요 ?

오류가 나는곳의 주소를 알려주시면 더 빠르고 정확하게 답변 받을 수 있습니다.

오류 주소 :

// 기준시간 이후에 해당 회원의 접근일시와 IP 를 저장
// 시간 체크
// Y-m-d 06:00:00 : 시작시간
// Y-m-d 22:00:00 : 종료시간
// Y-m-d H:i:s : 현재시간
// 아래 적용 될 곳


$sql4 = " insert into $g4[mem_table]
set mb_id = '$mb_id',
mb_login_ip = '$_SERVER[REMOTE_ADDR]',
mb_today = '$g4[time_ymd]',
mb_today_login = '$g4[time_ymdhis]',
mb_point = '$row2[mb_point]' ";
sql_query($sql4);
}
|

댓글 8개

아래에 응용될만한 자문자답이 있던데요,,

저라면 그냥 현제 시간만 구해서요 즉 date(H) 만 구하는거지요

해서 H 가 6보다 크고 22 보다 작으면 쿼리문 실행해라,,,
라고 하면 되지 않을까요?


$t = date('H');

if ($t < 6 && $t > 22 ) {

//인서트 쿼리문

}
$t = date('H');

if ($t < 6 && $t > 22 ) {

//인서트 쿼리문

$sql4 = " insert into $g4[mem_table]
set mb_id = '$mb_id',
mb_login_ip = '$_SERVER[REMOTE_ADDR]',
mb_today = '$g4[time_ymd]',
mb_today_login = '$g4[time_ymdhis]',
mb_point = '$row2[mb_point]' ";
sql_query($sql4);

//인서트 쿼리문 끝

}

이렇게 하면 되겠군요 ?

그런데 날짜가 바뀌거나 달이 바뀌어도 상관이 없을까요 ?
감사합니다. 시도해 보겠습니다. 밤새우니... 비몽사몽입니다... 눈이 뻘게 가지고....
$t = date('H'); 이것이 하루를 기준으로 시간을 표시 함으로 년 달과는 상관 없습니다

if ($t >= 6 && $t <= 22 ) { // 이렇게 수정하세요,,^^ 6시보다 크거나 같고 22시보다 작거나 같을때
아길이님 감사합니다.
적용은 해 놓았습니다만... 6시 이후에 체크 한번 해 보겠습니다.
아길이 님 어째? 적용이 안될 것 같은 예감이 듭니다.

원 소스는 곰순이푸님의 출석부 소스이나.. 시간 적용이 되질 않아 밤을 새우고 있습니다.

먼가 아래 소스의 상단에 넣어야 될 것 같은 예감도 있고... 그누에서는 로그인 체크를 하루에 한번만 하니... 기준 시간 이전에 로그인 한 사람은 제외될 가능성이 있습니다.

하루에 한번씩만 체크하니 꼭 6시 이후에 들어와서 로그인 해야만 하는 부담도 있고... 여러 문제가 있는 것 같습니다.

// 오늘 처음 로그인 이라면
$sql0 = " select count(*) as cnt from $g4[mem_table] where mb_id = '$mb_id' and mb_today = '$g4[time_ymd]' ";
$row0 = sql_fetch($sql0);

if ($row0['cnt']) {
// 체크 되었으면 패스.
} else {

// 첫 로그인 포인트 지급은 맞고...
insert_point($mb_id, $config['cf_login_point'], "{$g4['time_ymd']} 첫로그인", "@login", $mb_id, $g4['time_ymd']);

$sql2 = " select * from $g4[member_table] where mb_id = '$mb_id' ";
$row2 = sql_fetch($sql2);

// 기준시간 이후에 해당 회원의 접근일시와 IP 를 저장할려면 ?

$sql4 = " insert into $g4[mem_table]
set mb_id = '$mb_id',
mb_login_ip = '$_SERVER[REMOTE_ADDR]',
mb_today = '$g4[time_ymd]',
mb_today_login = '$g4[time_ymdhis]',
mb_point = '$row2[mb_point]' ";
sql_query($sql4);
}
위 코드처럼 하면 하루중 기준시간 아닐때 로그인을 이미 해버렸다면 기준시간에 포함 되더라도 더이상 인서트를 해주지 못하겠지요,,,

해서 이코드와 별도로 위나 아래에 해야 될듯 합니다.
위 코드를 응용해서 기준시간중에 한번 채크한 아이피가 있다면 패스해서 새로이 추가 하지 않는것도 좋을듯 하구요..

그리고 H 는 24시간을 출력 해주구요
i 는 60분 s 는 60초 ,,, 를 출력 함으로 t 변수만 적절하게 바꿔서 바로 테스트 해보세요,,
아 됩니다. 감사합니다... 아길이 님...
단// 첫로그인 포인트는 common.php 로 원상복구하고... 주석처리 // 하였습니다.
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
16년 전 조회 1,564
16년 전 조회 785
16년 전 조회 1,024
16년 전 조회 811
16년 전 조회 810
16년 전 조회 976
16년 전 조회 1,544
16년 전 조회 834
16년 전 조회 6,312
16년 전 조회 979
16년 전 조회 805
16년 전 조회 859
16년 전 조회 1,542
16년 전 조회 998
16년 전 조회 1,025
16년 전 조회 1,052
16년 전 조회 1,616
16년 전 조회 951
16년 전 조회 1,075
16년 전 조회 980