|
|
|
สอบถามการ แก้ไข Code ใน Joomla ครับ จะเป็นในส่วนของระบบLogin |
|
|
|
|
|
|
|
คือมีคําถามก่อนครับ Joomla หลักการเขียนมันเป็นแบบใด ใช่ MVC หรือป่าวครับ
คือมีอยู่ว่าเว็บไซต์ตอนนี้มันไม่สามารถล๊อคอินได้เลยครับ เวลาผมทําการกรอกUser Passwordแล้วมันจะวิ่งกลับมาที่หน้าIndexเลยงง
จากโค๊ดในไฟล์ Modules/member/login.php
(ต้องการดูไฟล์อื่นบอกได้ครับ)
Code (PHP)
<?php
// gcms5/modules/member/login.php
if (defined('MAIN_INIT')) {
$login_remember = intval(isset($_POST['login_remember']) ? $_POST['login_remember'] : $_COOKIE[PREFIX.'_login_remember']);
if (isset($_REQUEST['login_user']) && isset($_REQUEST['login_password'])) {
// login
$login_user = $db->sql_trim_str($_POST['login_user']);
$login_password = $db->sql_trim_str($_POST['login_password']);
// ตรวจสอบการกรอก
if ($login_user == '') {
$error = $lng['LNG_USERNAME_EMPTY'];
$input = 'login_user';
} elseif ($login_password == '') {
$error = $lng['LNG_PASSWORD_EMPTY'];
$input = 'login_password';
}
} elseif ($_REQUEST['action'] == 'logout') {
// logout เคลีร์ย cookie, session และ ตัวแปร
setCookie(PREFIX.'_login_user', '', time(), '/');
setCookie(PREFIX.'_login_password', '', time(), '/');
setCookie(PREFIX.'_login_remember', '', time(), '/');
$login_user = '';
$login_password = '';
$login_remember = 0;
unset($_SESSION[PREFIX]['login']);
} elseif (isset($_SESSION[PREFIX]['login'])) {
// มาจากการ เปิดหน้าเพจปกติ หรือจาก refresh อ่านจาก SESSION
$login_user = $_SESSION[PREFIX]['login']['username'];
$login_password = $_SESSION[PREFIX]['login']['password'];
} else {
// เข้าระบบครั้งแรก ตรวจสอบ cookie
$login_user = gcms::decode($_COOKIE[PREFIX.'_login_user']);
$login_password = gcms::decode($_COOKIE[PREFIX.'_login_password']);
}
$isMember = false;
$isAdmin = false;
if (gcms::isSpider()) {
// มาจาก spider
$login_user = 'spider';
$login_password = 'spider';
$login_result['username'] = 'spider';
$login_result['displayname'] = 'mr. Spider';
$login_result['status'] = 0;
$login_result['point'] = 0;
$login_result['id'] = 0;
// spider login
$_SESSION[PREFIX]['login'] = $login_result;
$isMember = true;
} elseif ($login_user != '' && $login_password != '') {
// ตรวจสอบการ login
$login_result = gcms::CheckLogin($login_user, $login_password);
if (is_array($login_result)) {
// login สำเร็จ
$_SESSION[PREFIX]['login'] = $login_result;
$_SESSION[PREFIX]['login']['password'] = $login_password;
// login
$isMember = true;
// admin
$isAdmin = $isMember && gcms::isAdmin();
// ตรวจสอบการปันทึกการ login
if ($login_remember) {
// บันทึก user, password
setCookie(PREFIX.'_login_user', gcms::encode($login_result['username']), time() + 3600 * 24 * 365, '/');
setCookie(PREFIX.'_login_password', gcms::encode($login_password), time() + 3600 * 24 * 365, '/');
}
setCookie(PREFIX.'_login_remember', $login_remember, time() + 3600 * 24 * 365, '/');
} else {
// ข้อความผิดพลาด
$error = array();
$error[] = $lng['MEMBER_NOT_FOUND'];
$error[] = $lng['MEMBER_NO_ACTIVATE'];
$error[] = $lng['MEMBER_BAN'];
$error[] = $lng['PASSWORD_INCORRECT'];
$error[] = $lng['LNG_MEMBER_LOGIN_EXISTS'];
$input = $login_result == 3 ? 'login_password' : 'login_user';
$error = strip_tags($error[$login_result]);
$login_user = '';
$login_password = '';
}
}
if (MAIN_INIT == 'chklogin') {
// โหลดภาษา,config,ไฟล์ inint ของโมดูลที่ติดตั้ง
$dir = ROOT_PATH.'modules/';
$f = opendir($dir);
while ($text = readdir($f)) {
if ($text != '.' && $text != '..' && $text != 'index' && $text != 'member') {
if (is_file(ROOT_PATH."modules/$text/config.php")) {
include_once (ROOT_PATH."modules/$text/config.php");
}
if (is_file(ROOT_PATH."modules/$text/inint.php")) {
include_once (ROOT_PATH."modules/$text/inint.php");
}
}
}
closedir($f);
}
if ($login_user == '' || $login_password == '') {
if ($config['custom_login'] != '' && is_file(ROOT_PATH.$config['custom_login'])) {
// custom login form
include_once (ROOT_PATH.$config['custom_login']);
} else {
// ฟอร์ม login
$patt = array('/{(LNG_[A-Z0-9_]+)}/e', '/{WEBTITLE}/', '/{SUBTITLE}/', '/{USERNAME}/', '/{PASSWORD}/',
'/{REMEMBER}/', '/{WEBURL}/');
$replace = array();
$replace[] = '$lng[$1]';
$replace[] = $config['web_title'];
$replace[] = $error == '' ? $config['web_description'] : '<span class=error>'.$error.'</span>';
$replace[] = $login_user;
$replace[] = $login_password;
$replace[] = $login_remember == 1 ? 'checked' : '';
$replace[] = WEB_URL;
$content = preg_replace($patt, $replace, gcms::loadfile(ROOT_PATH.SKIN.$config['skin'].'/member/loginfrm.html'));
}
} elseif ($config['custom_member'] != '' && is_file(ROOT_PATH.$config['custom_member'])) {
// custom member form
include_once (ROOT_PATH.$config['custom_member']);
} else {
// กรอบข้อมูลสมาชิก
$patt = array('/{WEBTITLE}/', '/{SUBTITLE}/', '/{WEBURL}/', '/{DISPLAYNAME}/', '/{ID}/', '/{USERICON}/',
'/{POINT}/', '/{STATUS}/', '/{ADMIN}/', '/{(LNG_[A-Z0-9_]+)}/e');
$replace = array();
$replace[] = $config['web_title'];
$replace[] = $error == '' ? $config['web_description'] : '<span class=error>'.$error.'</span>';
$replace[] = WEB_URL;
$replace[] = $login_result['displayname'] == '' ? $login_result['username'] : $login_result['displayname'];
$replace[] = $login_result['id'];
$replace[] = $login_result['usericon'];
$replace[] = $login_result['point'];
$replace[] = $login_result['status'];
$replace[] = in_array($login_result['status'], $config['admin_access']) ? '' : ' hidden';
$replace[] = '$lng[$1]';
$content = preg_replace($patt, $replace, gcms::loadfile(ROOT_PATH.SKIN.$config['skin'].'/member/memberfrm.html'));
}
}
Tag : PHP
|
|
|
|
|
|
Date :
2012-12-18 13:39:50 |
By :
kenghockey |
View :
2724 |
Reply :
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Joomla นี่ต้องเก่งจริงน่ะครับ ถึงจะก้ไข Source มันได้ครับ
|
|
|
|
|
Date :
2012-12-19 06:41:16 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|