Update gnuboard.dbt.php

This commit is contained in:
Namhyeon Go 2018-05-27 18:37:06 +09:00 committed by GitHub
parent 57bb6a340f
commit e9bc80fdec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,16 +1,16 @@
<?php <?php
/** /**
* @file gnuboard.php * @file gnuboard.php
* @date 2018-04-11 * @date 2018-05-27
* @author Go Namhyeon <gnh1201@gmail.com> * @author Go Namhyeon <gnh1201@gmail.com>
* @brief Database Helper for Gnuboard 4, Gnuboard 5 * @brief Database Helper for Gnuboard 4, Gnuboard 5
*/ */
// get database prefix // get database prefix
if(!function_exists("gnb_get_db_prefix")) { if(!function_exists("gnb_get_db_prefix")) {
function gnb_get_db_prefix($version=4) { function gnb_get_db_prefix($version=4) {
return ($version > 4) ? "g5_" : "g4_"; return ($version > 4) ? "g5_" : "g4_";
} }
} }
// get table // get table
@ -22,238 +22,252 @@ if(!function_exists("gnb_get_db_table")) {
// get write table // get write table
if(!function_exists("gnb_get_write_table")) { if(!function_exists("gnb_get_write_table")) {
function gnb_get_write_table($tablename, $version=4) { function gnb_get_write_table($tablename, $version=4) {
$write_prefix = gnb_get_db_prefix() . "write_"; $write_prefix = gnb_get_db_prefix() . "write_";
$write_table = $write_prefix . $tablename; $write_table = $write_prefix . $tablename;
return $write_table; return $write_table;
} }
} }
// get write next // get write next
if(!function_exists("gnb_get_write_next")) { if(!function_exists("gnb_get_write_next")) {
function gnb_get_write_next($tablename) { function gnb_get_write_next($tablename) {
$row = exec_db_fetch("select min(wr_num) as min_wr_num from " . gnb_get_write_table($tablename)); $row = exec_db_fetch("select min(wr_num) as min_wr_num from " . gnb_get_write_table($tablename));
return (intval(get_value_in_array("min_wr_num", $row, 0)) - 1); return (intval(get_value_in_array("min_wr_num", $row, 0)) - 1);
} }
} }
// write post // write post
if(!function_exists("gnb_write_post")) { if(!function_exists("gnb_write_post")) {
function gnb_write_post($tablename, $data=array(), $version=4) { function gnb_write_post($tablename, $data=array(), $version=4) {
$result = false; $result = 0;
$write_table = gnb_get_write_table($tablename); $write_table = gnb_get_write_table($tablename);
$mb_id = get_current_user_name(); $mb_id = get_current_user_name();
// load helpers // load helpers
loadHelper("networktool"); loadHelper("networktool");
loadHelper("naturename.kr"); loadHelper("naturename.kr");
$write_fields = array(); $write_fields = array();
$write_default_fields = array( $write_default_fields = array(
"mb_id" => $mb_id, "mb_id" => $mb_id,
"wr_num" => gnb_get_write_next($tablename), "wr_num" => gnb_get_write_next($tablename),
"wr_reply" => "", "wr_reply" => "",
"wr_parent" => "", "wr_parent" => "",
"wr_comment_reply" => "", "wr_comment_reply" => "",
"ca_name" => "", "ca_name" => "",
"wr_option" => "", "wr_option" => "",
"wr_subject" => make_random_id(), "wr_subject" => make_random_id(),
"wr_content" => make_random_id(), "wr_content" => make_random_id(),
"wr_link1" => "", "wr_link1" => "",
"wr_link2" => "", "wr_link2" => "",
"wr_link1_hit" => 0, "wr_link1_hit" => 0,
"wr_link2_hit" => 0, "wr_link2_hit" => 0,
"wr_trackback" => "", "wr_trackback" => "",
"wr_hit" => 0, "wr_hit" => 0,
"wr_good" => 0, "wr_good" => 0,
"wr_nogood" => 0, "wr_nogood" => 0,
"wr_password" => gnb_get_password(make_random_id()), "wr_password" => gnb_get_password(make_random_id()),
"wr_name" => naturename_kr_get_generated_name(), "wr_name" => naturename_kr_get_generated_name(),
"wr_email" => "", "wr_email" => "",
"wr_homepage" => "", "wr_homepage" => "",
"wr_datetime" => get_current_datetime(), "wr_datetime" => get_current_datetime(),
"wr_last" => get_current_datetime(), "wr_last" => get_current_datetime(),
"wr_ip" => get_network_client_addr(), "wr_ip" => get_network_client_addr(),
"wr_1" => "", "wr_1" => "",
"wr_2" => "", "wr_2" => "",
"wr_3" => "", "wr_3" => "",
"wr_4" => "", "wr_4" => "",
"wr_5" => "", "wr_5" => "",
"wr_6" => "", "wr_6" => "",
"wr_7" => "", "wr_7" => "",
"wr_8" => "", "wr_8" => "",
"wr_9" => "", "wr_9" => "",
"wr_10" => "", "wr_10" => "",
); );
foreach($write_default_fields as $k=>$v) { foreach($write_default_fields as $k=>$v) {
if(in_array($k, array("mb_id", "wr_num"))) { if(in_array($k, array("mb_id", "wr_num"))) {
$write_fields[$k] = $v; $write_fields[$k] = $v;
} else { } else {
$write_fields[$k] = array_key_empty($k, $data) ? $v : $data[$k]; $write_fields[$k] = array_key_empty($k, $data) ? $v : $data[$k];
} }
} }
if(count($write_fields) > 0) { foreach($data as $k=>$v) {
$sql = get_bind_to_sql_insert($write_table, $write_fields); if(!in_array($k, $write_default_fields)) {
$result = exec_db_query($sql, $write_fields); $write_fields[$k] = $v;
} }
}
return $result; if(count($write_fields) > 0) {
} $sql = get_bind_to_sql_insert($write_table, $write_fields);
if(exec_db_query($sql, $write_fields)) {
$result = get_db_last_id();
}
}
return $result;
}
} }
if(!function_exists("gnb_set_post_parameters")) { if(!function_exists("gnb_set_post_parameters")) {
function gnb_set_post_parameters($tablename, $wr_id, $bind=array()) { function gnb_set_post_parameters($tablename, $wr_id, $bind=array()) {
$flag = false; $flag = false;
$excludes = array("wr_id"); $excludes = array("wr_id");
$write_table = gnb_get_write_table($tablename); $write_table = gnb_get_write_table($tablename);
$bind['wr_id'] = get_value_in_array("wr_id", $bind, $wr_id); $bind['wr_id'] = get_value_in_array("wr_id", $bind, $wr_id);
$sql = "update " . $write_table . " set " . get_bind_to_sql_update_set($bind, $excludes) . " where wr_id = :wr_id"; $sql = "update " . $write_table . " set " . get_bind_to_sql_update_set($bind, $excludes) . " where wr_id = :wr_id";
$flag = exec_db_query($sql, $bind); $flag = exec_db_query($sql, $bind);
return $flag; return $flag;
} }
} }
// get member data // get member data
if(!function_exists("gnb_get_member")) { if(!function_exists("gnb_get_member")) {
function gnb_get_member($user_name, $tablename="member") { function gnb_get_member($user_name, $tablename="member") {
$result = array(); $result = array();
$bind = array( $bind = array(
"mb_id" => $user_name, "mb_id" => $user_name,
); );
$member_table = gnb_get_db_table($tablename); $member_table = gnb_get_db_table($tablename);
$result = exec_db_fetch("select * from " . $member_table . " where mb_id = :mb_id", $bind); $result = exec_db_fetch("select * from " . $member_table . " where mb_id = :mb_id", $bind);
return $result; return $result;
} }
} }
// get password // get password
if(!function_exists("gnb_get_password")) { if(!function_exists("gnb_get_password")) {
function gnb_get_password($password) { function gnb_get_password($password) {
$bind = array( $bind = array(
"password" => $password, "password" => $password,
); );
$row = exec_db_fetch("select password(:password) as pass", $bind); $row = exec_db_fetch("select password(:password) as pass", $bind);
return get_value_in_array("pass", $row, ""); return get_value_in_array("pass", $row, "");
} }
} }
// get config // get config
if(!function_exists("gnb_get_config")) { if(!function_exists("gnb_get_config")) {
function gnb_get_config($tablename="config") { function gnb_get_config($tablename="config") {
$result = array(); $result = array();
$config_table = gnb_get_db_table($tablename); $config_table = gnb_get_db_table($tablename);
$result = exec_db_fetch("select * from " . $config_table); $result = exec_db_fetch("select * from " . $config_table);
return $result; return $result;
} }
} }
// run login process // run login process
if(!function_exists("gnb_process_safe_login")) { if(!function_exists("gnb_process_safe_login")) {
function gnb_process_safe_login($user_name, $user_password) { function gnb_process_safe_login($user_name, $user_password) {
$result = false; $result = false;
$mb = gnb_get_member($user_name); $mb = gnb_get_member($user_name);
if(!array_key_empty("mb_id", $mb)) { if(!array_key_empty("mb_id", $mb)) {
$user_profile = array( $user_profile = array(
"user_id" => $mb['mb_no'], "user_id" => $mb['mb_no'],
"user_password" => get_password(gnb_get_password($mb['mb_password'])), "user_password" => get_password(gnb_get_password($mb['mb_password'])),
); );
$result = process_safe_login($mb['mb_id'], gnb_get_password($mb['mb_password']), $user_profile); $result = process_safe_login($mb['mb_id'], gnb_get_password($mb['mb_password']), $user_profile);
} }
return $result; return $result;
} }
} }
// run join member // run join member
if(!function_exists("gnb_join_member")) { if(!function_exists("gnb_join_member")) {
function gnb_join_member($user_name, $user_password, $data=array(), $tablename="member") { function gnb_join_member($user_name, $user_password, $data=array(), $tablename="member") {
$result = false; $result = false;
$member_table = gnb_get_db_table($tablename); $member_table = gnb_get_db_table($tablename);
$gnb_config = gnb_get_config(); $gnb_config = gnb_get_config();
// load helpers // load helpers
loadHelper("networktool"); loadHelper("networktool");
loadHelper("naturename.kr"); loadHelper("naturename.kr");
// get member info // get member info
$mb = gnb_get_member($user_name); $mb = gnb_get_member($user_name);
// allow join if not exists duplicated members // allow join if not exists duplicated members
if(array_key_empty("mb_id", $mb)) { if(array_key_empty("mb_id", $mb)) {
$member_fields = array(); $member_fields = array();
$member_default_fields = array( $member_default_fields = array(
"mb_id" => $user_name, "mb_id" => $user_name,
"ug_id" => "", "ug_id" => "",
"mb_password" => gnb_get_password($user_password), "mb_password" => gnb_get_password($user_password),
"mb_name" => naturename_kr_get_generated_name(), "mb_name" => naturename_kr_get_generated_name(),
"mb_jumin" => "", "mb_jumin" => "",
"mb_sex" => "", "mb_sex" => "",
"mb_birth" => "", "mb_birth" => "",
"mb_nick" => get_generated_name(), "mb_nick" => get_generated_name(),
"mb_nick_date" => "", "mb_nick_date" => "",
"mb_password_q" => "", "mb_password_q" => "",
"mb_password_a" => "", "mb_password_a" => "",
"mb_email" => "", "mb_email" => "",
"mb_homepage" => "", "mb_homepage" => "",
"mb_tel" => "", "mb_tel" => "",
"mb_hp" => "", "mb_hp" => "",
"mb_zip1" => "", "mb_zip1" => "",
"mb_zip2" => "", "mb_zip2" => "",
"mb_addr1" => "", "mb_addr1" => "",
"mb_addr2" => "", "mb_addr2" => "",
"mb_addr3" => "", "mb_addr3" => "",
"mb_addr_jibeon" => "", "mb_addr_jibeon" => "",
"mb_signature" => "", "mb_signature" => "",
"mb_profile" => "", "mb_profile" => "",
"mb_today_login" => get_current_datetime(), "mb_today_login" => get_current_datetime(),
"mb_datetime" => get_current_datetime(), "mb_datetime" => get_current_datetime(),
"mb_ip" => get_network_client_addr(), "mb_ip" => get_network_client_addr(),
"mb_level" => get_value_in_array("cf_register_level", $gnb_config), "mb_level" => get_value_in_array("cf_register_level", $gnb_config),
"mb_recommend" => "", "mb_recommend" => "",
"mb_login_ip" => get_network_client_addr(), "mb_login_ip" => get_network_client_addr(),
"mb_mailling" => "", "mb_mailling" => "",
"mb_sms" => "", "mb_sms" => "",
"mb_open" => "", "mb_open" => "",
"mb_open_date" => get_current_datetime(), "mb_open_date" => get_current_datetime(),
"mb_1" => "", "mb_1" => "",
"mb_2" => "", "mb_2" => "",
"mb_3" => "", "mb_3" => "",
"mb_4" => "", "mb_4" => "",
"mb_5" => "", "mb_5" => "",
"mb_6" => "", "mb_6" => "",
"mb_7" => "", "mb_7" => "",
"mb_8" => "", "mb_8" => "",
"mb_9" => "", "mb_9" => "",
"mb_10" => "", "mb_10" => "",
); );
foreach($member_default_fields as $k=>$v) { foreach($member_default_fields as $k=>$v) {
if(in_array($k, array("mb_id", "mb_password"))) { if(in_array($k, array("mb_id", "mb_password"))) {
$member_fields[$k] = $v; $member_fields[$k] = $v;
} else { } else {
$member_fields[$k] = array_key_empty($k, $data) ? $v : $data[$k]; $member_fields[$k] = array_key_empty($k, $data) ? $v : $data[$k];
} }
} }
foreach($data as $k=>$v) {
if(!in_array($k, $member_default_fields)) {
$member_fields[$k] = $v;
}
}
if(count($member_fields) > 0) { if(count($member_fields) > 0) {
$sql = get_bind_to_sql_insert($member_table, $member_fields); $sql = get_bind_to_sql_insert($member_table, $member_fields);
$result = exec_db_query($sql, $member_fields); $result = exec_db_query($sql, $member_fields);
} }
} }
return $result; return $result;
} }
} }