주제: 불특정하게 로그인이 안되네여???
OS : Windows2000 Server SP4
APM6 (Apache2.2.8 + PHP5.2.5 + MySQL5.0.51a) <- Apache + PHP만 사용.
DB : MySQL4.1.22
Textcube : 1.6.3 확장판
위 환경에서 비공개 다중 블로그로 세팅하여 사용중입니다.
그런데, 로그인 정보 입력후 엔터키를 누르면
불특정하게 "[3] 권한이 없습니다." 라는 문구와 함께 로그인이 안됩니다.
(소스 맨 아래에서 세팅하는 $message 가 출력됨.)
로그인 버튼을 마우스 클릭하면 현재까지는 위의 문제는 없었지만,
엔터키를 누를때면 불특정하게 발생합니다.
소스 맨 아래에 있는 "$message = _text('[3] 권한이 없습니다.');" 구문을 주석으로 제거하니,
중간 좀 아래에서 세팅하는 "[2-$isLogin] 권한이 없습니다." 문구가 출력 되더라구요.
분명 동일한 id/pw인데 불특정하게 로그인이 안되네여.
php를 처음 첩하다 보니 소스 분석하기가 힘드네여^^;;;;
아래는 현재 운영중인 소스입니다.
--------------------------------------------------------------------------------------------------------------------
<?php
/// Copyright (c) 2004-2008, Needlworks / Tatter Network Foundation
/// All rights reserved. Licensed under the GPL.
/// See the GNU General Public License for more details. (/doc/LICENSE, /doc/COPYRIGHT)
$IV = array(
'GET' => array(
'loginid' => array('string', 'mandatory' => false ),
'password' => array('string', 'default' => null),
'requestURI' => array('string', 'default' => null ),
'refererURI' => array('string', 'default' => null ),
'session' => array('string' , 32, 32, 'default' => null),
'try' => array(array(1,2,3), 'default' => null),
),
'POST' => array(
'loginid' => array('string', 'default' => null),
'password' => array('string', 'default' => null),
'requestURI' => array('string', 'default' => null),
'refererURI' => array('string', 'default' => null),
'reset' => array(array('on') ,'default' => null),
'save' => array('any', 'default' => null),
'teamblogPatch' => array('string', 'default' => null)
)
);
define('__TEXTCUBE_LOGIN__',true);
require ROOT . '/lib/includeForBlog.php';
$blogURL = getBlogURL();
if (isset($_GET['loginid']))
$_POST['loginid'] = $_GET['loginid'];
if (isset($_GET['password']))
$_POST['password'] = $_GET['password'];
if (!empty($_GET['requestURI']))
$_POST['requestURI'] = $_GET['requestURI'];
else if (empty($_POST['requestURI']) && !empty($_SERVER['HTTP_REFERER']) )
$_POST['requestURI'] = $_SERVER['HTTP_REFERER'];
else
$_POST['requestURI'] = $blogURL;
if (!empty($_GET['refererURI'])) $_POST['refererURI'] = $_GET['refererURI'];
else $_POST['refererURI'] = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
$message = '';
$showPasswordReset = false;
if (isset($_GET['session']) && isset($_GET['requestURI'])) {
header('Set-Cookie: TSSESSION=' . $_GET['session'] . '; path=/; domain=' . $_SERVER['HTTP_HOST']);
header('Location: ' . $_GET['requestURI']);
exit;
} else if (!empty($_POST['loginid']) && !empty($_POST['reset'])) {
if (resetPassword($blogid, $_POST['loginid']))
$message = _text('지정된 이메일로 로그인 정보가 전달되었습니다.');
else
$message = _text('[1] 권한이 없습니다.');
} else if (!empty($_POST['loginid']) && !empty($_POST['password'])) {
$isLogin = login($_POST['loginid'],$_POST['password']);
if (!$isLogin) {
$message = _text('E-MAIL 또는 비밀번호가 틀렸습니다.');
if (!doesHaveMembership() && isLoginId(getBlogId(), $_POST['loginid'])){
$showPasswordReset = true;
}
} else if($isLogin == 2) {
$message=_t('[2-$isLogin] 권한이 없습니다.');
}
}
$authResult = fireEvent('LOGIN_try_auth', false);
if (doesHaveOwnership() || doesHaveMembership()) {
if (doesHaveOwnership() && !empty($_POST['requestURI'])) {
$url = parse_url($_POST['requestURI']);
if ($url && isset($url['host']) && !String::endsWith( '.' . $url['host'], '.' . $service['domain']))
$redirect = "{$blogURL}/login?requestURI=" . rawurlencode($_POST['requestURI']) . '&session=' . rawurlencode(session_id());
else
$redirect = $_POST['requestURI'];
} else if (doesHaveMembership()) {
global $blogURL;
$redirect = $_POST['requestURI'];
// $redirect = $_POST['refererURI'];
// $redirect = $blogURL;
// } else {
// global $blogURL;
// $redirect = $_POST['requestURI'];
// $redirect = $blogURL;
}
if (empty($_SESSION['lastLoginRedirected']) || $_SESSION['lastLoginRedirected'] != $redirect) {
header('Location: '.($_SESSION['lastLoginRedirected'] = $redirect));
exit;
} else {
unset($_SESSION['lastLoginRedirected']);
}
$message = _text('[3] 권한이 없습니다.');
}
?>
--------------------------------------------------------------------------------------------------------------------