로그인문제 채택완료
디자인럽
8년 전
조회 4,060
로그인을 하면 회원아이디나 비밀번호가 공백이면 안됩니다
이런 창이 뜨는데 이럴땐 어떻게해하나요?
아래는 로그인 소스파일입니다.
login.php
</p><p><?php
include_once('./_common.php');</p><p>$g5['title'] = '로그인';
include_once('./_head.sub.php');</p><p>$url = $_GET['url'];</p><p>$p = parse_url($url);
if ((isset($p['scheme']) && $p['scheme']) || (isset($p['host']) && $p['host'])) {
//print_r2($p);
if ($p['host'].(isset($p['port']) ? ':'.$p['port'] : '') != $_SERVER['HTTP_HOST'])
alert('url에 타 도메인을 지정할 수 없습니다.');
}</p><p>// 이미 로그인 중이라면
if ($is_member) {
if ($url)
goto_url($url);
else
goto_url(G5_URL);
}</p><p>$login_url = login_url($url);
$login_action_url = G5_HTTPS_BBS_URL."/login_check.php";</p><p>// 로그인 스킨이 없는 경우 관리자 페이지 접속이 안되는 것을 막기 위하여 기본 스킨으로 대체
$login_file = $member_skin_path.'/login.skin.php';
if (!file_exists($login_file))
$member_skin_path = G5_SKIN_PATH.'/member/basic';</p><p>include_once($member_skin_path.'/login.skin.php');</p><p>include_once('./_tail.sub.php');
?>
login_check.php
</p><p><?php
include_once('./_common.php');</p><p>$g5['title'] = "로그인 검사";</p><p>$mb_id = trim($_POST['mb_id']);
$mb_password = trim($_POST['mb_password']);</p><p>if (!$mb_id || !$mb_password)
alert('회원아이디나 비밀번호가 공백이면 안됩니다.');</p><p>$mb = get_member($mb_id);</p><p>// 가입된 회원이 아니다. 비밀번호가 틀리다. 라는 메세지를 따로 보여주지 않는 이유는
// 회원아이디를 입력해 보고 맞으면 또 비밀번호를 입력해보는 경우를 방지하기 위해서입니다.
// 불법사용자의 경우 회원아이디가 틀린지, 비밀번호가 틀린지를 알기까지는 많은 시간이 소요되기 때문입니다.
if (!$mb['mb_id'] || (sql_password($mb_password) != $mb['mb_password'])) {
alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.');
}</p><p>// 차단된 아이디인가?
if ($mb['mb_intercept_date'] && $mb['mb_intercept_date'] <= date("Ymd", G5_SERVER_TIME)) {
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "<a href="file://\\1">\\1</a>년 <a href="file://\\2">\\2</a>월 <a href="file://\\3일">\\3일</a>", $mb['mb_intercept_date']);
alert('회원님의 아이디는 접근이 금지되어 있습니다.\n처리일 : '.$date);
}</p><p>// 탈퇴한 아이디인가?
if ($mb['mb_leave_date'] && $mb['mb_leave_date'] <= date("Ymd", G5_SERVER_TIME)) {
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "<a href="file://\\1">\\1</a>년 <a href="file://\\2">\\2</a>월 <a href="file://\\3일">\\3일</a>", $mb['mb_leave_date']);
alert('탈퇴한 아이디이므로 접근하실 수 없습니다.\n탈퇴일 : '.$date);
}</p><p>if ($config['cf_use_email_certify'] && !preg_match("/[1-9]/", $mb['mb_email_certify'])) {
confirm("{$mb['mb_email']} 메일로 메일인증을 받으셔야 로그인 가능합니다. 다른 메일주소로 변경하여 인증하시려면 취소를 클릭하시기 바랍니다.", G5_URL, G5_BBS_URL.'/register_email.php?mb_id='.$mb_id);
}</p><p>@include_once($member_skin_path.'/login_check.skin.php');</p><p>// 회원아이디 세션 생성
set_session('ss_mb_id', $mb['mb_id']);
// FLASH XSS 공격에 대응하기 위하여 회원의 고유키를 생성해 놓는다. 관리자에서 검사함 - 110106
set_session('ss_mb_key', md5($mb['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']));</p><p>// 포인트 체크
if($config['cf_use_point']) {
$sum_point = get_point_sum($mb['mb_id']);</p><p> $sql= " update {$g5['member_table']} set mb_point = '$sum_point' where mb_id = '{$mb['mb_id']}' ";
sql_query($sql);
}</p><p>// 3.26
// 아이디 쿠키에 한달간 저장
if ($auto_login) {
// 3.27
// 자동로그인 ---------------------------
// 쿠키 한달간 저장
$key = md5($_SERVER['SERVER_ADDR'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT'] . $mb['mb_password']);
set_cookie('ck_mb_id', $mb['mb_id'], 86400 * 31);
set_cookie('ck_auto', $key, 86400 * 31);
// 자동로그인 end ---------------------------
} else {
set_cookie('ck_mb_id', '', 0);
set_cookie('ck_auto', '', 0);
}</p><p>if ($url) {
$link = urldecode($url);
// 2003-06-14 추가 (다른 변수들을 넘겨주기 위함)
if (preg_match("/\?/", $link))
$split= "&";
else
$split= "?";</p><p> // $_POST 배열변수에서 아래의 이름을 가지지 않은 것만 넘김
foreach($_POST as $key=>$value) {
if ($key != 'mb_id' && $key != 'mb_password' && $key != 'x' && $key != 'y' && $key != 'url') {
$link .= "$split$key=$value";
$split = "&";
}
}
} else {
$link = G5_URL;
}</p><p>goto_url($link);
?> </p><p>
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
플라이
Expert
8년 전
로그인시 로그인 정보를 기입했는데 그렇게 뜨는건가요?
$mb_id
$mb_password
의 form안에 input값을 이 name명으로 선언이 되어 있는지 확인해 보시고
데이터가 post 값으로 전달되도록 처리 되어 있는지 확인해 보시기 바랍니다.
지금은 로그인스킨 페이지 소스가 없어 확인이 불가능하네요
로그인 후 평가할 수 있습니다
답변에 대한 댓글 4개
�
디자인럽
8년 전
�
디자인럽
8년 전
로그인페이지에서 로그인을하면 저런 문구로 창이 떠요
원래 로그인이 잘됐는데 오늘 보니까 갑자기 저런 현상이 나오네요
원래 로그인이 잘됐는데 오늘 보니까 갑자기 저런 현상이 나오네요
�
플라이
8년 전
혹시 데이터 post값이 전달이 제대로 안되는거 같은데 그 부분에서 post값이 제대로 받아지는지 확인해 보셔야 할듯 싶습니다.
�
디자인럽
8년 전
해결됐네요 감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
[code]
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
?>
<!-- 로그인 시작 { -->
<div id="mb_login" class="mbskin">
<h1><?php echo $g5['title'] ?></h1>
<form name="flogin" action="<?php echo $login_action_url ?>" onsubmit="return flogin_submit(this);" method="post">
<input type="hidden" name="url" value='<?php echo $login_url ?>'>
<fieldset id="login_fs">
<legend>회원로그인</legend>
<label for="login_id" class="login_id">회원아이디<strong class="sound_only"> 필수</strong></label>
<input type="text" name="mb_id" id="login_id" required class="frm_input required" size="20" maxLength="20">
<label for="login_pw" class="login_pw">비밀번호<strong class="sound_only"> 필수</strong></label>
<input type="password" name="mb_password" id="login_pw" required class="frm_input required" size="20" maxLength="20">
<input type="submit" value="로그인" class="btn_submit">
<input type="checkbox" name="auto_login" id="login_auto_login">
<label for="login_auto_login">자동로그인</label>
</fieldset>
<aside id="login_info">
<h2>회원로그인 안내</h2>
<p>
회원아이디 및 비밀번호가 기억 안나실 때는 아이디/비밀번호 찾기를 이용하십시오.<br>
아직 회원이 아니시라면 회원으로 가입 후 이용해 주십시오.
</p>
<div>
<a href="<?php echo G5_BBS_URL ?>/password_lost.php" target="_blank" id="login_password_lost" class="btn02">아이디 비밀번호 찾기</a>
<a href="./register.php" class="btn01">회원 가입</a>
</div>
</aside>
</form>
<?php // 쇼핑몰 사용시 여기부터 ?>
<?php if ($default['de_level_sell'] == 1) { // 상품구입 권한 ?>
<!-- 주문하기, 신청하기 -->
<?php if (preg_match("/orderform.php/", $url)) { ?>
<section id="mb_login_notmb">
<h2>비회원 구매</h2>
<p>
비회원으로 주문하시는 경우 포인트는 지급하지 않습니다.
</p>
<div id="guest_privacy">
<?php echo $default['de_guest_privacy']; ?>
</div>
<label for="agree">개인정보수집에 대한 내용을 읽었으며 이에 동의합니다.</label>
<input type="checkbox" id="agree" value="1">
<div class="btn_confirm">
<a href="javascript:guest_submit(document.flogin);" class="btn02">비회원으로 구매하기</a>
</div>
<script>
function guest_submit(f)
{
if (document.getElementById('agree')) {
if (!document.getElementById('agree').checked) {
alert("개인정보수집에 대한 내용을 읽고 이에 동의하셔야 합니다.");
return;
}
}
f.url.value = "<?php echo $url; ?>";
f.action = "<?php echo $url; ?>";
f.submit();
}
</script>
</section>
<?php } else if (preg_match("/orderinquiry.php$/", $url)) { ?>
<fieldset id="mb_login_od">
<legend>비회원 주문조회</legend>
<form name="forderinquiry" method="post" action="<?php echo urldecode($url); ?>" autocomplete="off">
<label for="od_id" class="od_id">주문서번호<strong class="sound_only"> 필수</strong></label>
<input type="text" name="od_id" value="<?php echo $od_id; ?>" id="od_id" required class="frm_input required" size="20">
<label for="id_pwd" class="od_pwd">비밀번호<strong class="sound_only"> 필수</strong></label>
<input type="password" name="od_pwd" size="20" id="od_pwd" required class="frm_input required">
<input type="submit" value="확인" class="btn_submit">
</form>
</fieldset>
<section id="mb_login_odinfo">
<h2>비회원 주문조회 안내</h2>
<p>메일로 발송해드린 주문서의 <strong>주문번호</strong> 및 주문 시 입력하신 <strong>비밀번호</strong>를 정확히 입력해주십시오.</p>
</section>
<?php } ?>
<?php } ?>
<?php // 쇼핑몰 사용시 여기까지 반드시 복사해 넣으세요 ?>
<div class="btn_confirm">
<a href="<?php echo G5_URL ?>/">메인으로 돌아가기</a>
</div>
</div>
<script>
$(function(){
$("#login_auto_login").click(function(){
if (this.checked) {
this.checked = confirm("자동로그인을 사용하시면 다음부터 회원아이디와 비밀번호를 입력하실 필요가 없습니다.\n\n공공장소에서는 개인정보가 유출될 수 있으니 사용을 자제하여 주십시오.\n\n자동로그인을 사용하시겠습니까?");
}
});
});
function flogin_submit(f)
{
return true;
}
</script>
<!-- } 로그인 끝 -->
[/code]