기준시간 이후에 해당 회원의 접근일시와 IP 를 저장할려면 어떻게 해요 ? 정보
기준시간 이후에 해당 회원의 접근일시와 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);
}
오류 주소 :
// 기준시간 이후에 해당 회원의 접근일시와 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);
}
댓글 전체
아래에 응용될만한 자문자답이 있던데요,,
저라면 그냥 현제 시간만 구해서요 즉 date(H) 만 구하는거지요
해서 H 가 6보다 크고 22 보다 작으면 쿼리문 실행해라,,,
라고 하면 되지 않을까요?
$t = date('H');
if ($t < 6 && $t > 22 ) {
//인서트 쿼리문
}
저라면 그냥 현제 시간만 구해서요 즉 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);
//인서트 쿼리문 끝
}
이렇게 하면 되겠군요 ?
그런데 날짜가 바뀌거나 달이 바뀌어도 상관이 없을까요 ?
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시보다 작거나 같을때
if ($t >= 6 && $t <= 22 ) { // 이렇게 수정하세요,,^^ 6시보다 크거나 같고 22시보다 작거나 같을때
아길이님 감사합니다.
적용은 해 놓았습니다만... 6시 이후에 체크 한번 해 보겠습니다.
적용은 해 놓았습니다만... 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);
}
원 소스는 곰순이푸님의 출석부 소스이나.. 시간 적용이 되질 않아 밤을 새우고 있습니다.
먼가 아래 소스의 상단에 넣어야 될 것 같은 예감도 있고... 그누에서는 로그인 체크를 하루에 한번만 하니... 기준 시간 이전에 로그인 한 사람은 제외될 가능성이 있습니다.
하루에 한번씩만 체크하니 꼭 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 변수만 적절하게 바꿔서 바로 테스트 해보세요,,
해서 이코드와 별도로 위나 아래에 해야 될듯 합니다.
위 코드를 응용해서 기준시간중에 한번 채크한 아이피가 있다면 패스해서 새로이 추가 하지 않는것도 좋을듯 하구요..
그리고 H 는 24시간을 출력 해주구요
i 는 60분 s 는 60초 ,,, 를 출력 함으로 t 변수만 적절하게 바꿔서 바로 테스트 해보세요,,
아 됩니다. 감사합니다... 아길이 님...
단// 첫로그인 포인트는 common.php 로 원상복구하고... 주석처리 // 하였습니다.
단// 첫로그인 포인트는 common.php 로 원상복구하고... 주석처리 // 하였습니다.