테스트 사이트 - 개발 중인 베타 버전입니다

그누보드5 $sql 채택완료

질문맨 10년 전 조회 3,911

그누보드보면 다

 

$sql = "select * from ~~~~";

$result = sql_query($sql);

$row = sql_fetch($result);

 

막 이렇게 사용하던데

 

저렇게 사용하려면 따로 함수를 만들어서 사용해야할거같은데

 

저렇게 사용할때 그 함수들은 도대체 어디있나요?

 

초기폴더 common.php 에도 없고 config.php 에도 없고

 

lib/common.lib.php 에도 없고요

 

저 함수를 그대로 가져와서 사용하고싶은데 도대체 어디있는거죠?

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
10년 전

커다란 상자라고 생각 하세요

 

이해안가시나?흠,,

 

global $g5;

$g5=1;

 

echo $g5[0];

결과값 1

-----------------------------------------------------------

global $g5;

$g5[0]=1;

 

echo $g5[0];

결과값 1

-----------------------------------------------------------

이해 안되나요?

흠,,,,,

 

$sql = "select * from ~~~~";

질문할때 아까쓰신거죠?

여기보면 * from table이름이 들어가자나요

여기서 table 이름을

 

$g5['point_table'] 으로 넣어서 사용할수잇어요

그래서 아래에   global $g5 정의해서  sql_connect 박에 있는 $g5 정보를 가져올수있는거죠

이해 안가시면 어쩌나 ,,

function sql_connect($host, $user, $pass) {     global $g5;

    return @mysql_connect($host, $user, $pass); }

 

 

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

슈퍼노비스
$g5 는 그누보드 설치경로의 루트에 common.php 에 정의 되어있을것이며 이 변수는 그누보드에 관련된 대부분의 정보값을 가지고 있는 배열변수입니다.



이걸 가지고 여러가지 연동 프로그램이 개발 가능한거죠
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

10년 전

/************************************************************************* ** **  SQL 관련 함수 모음 ** *************************************************************************/

// DB 연결 function sql_connect($host, $user, $pass) {     global $g5;

    return @mysql_connect($host, $user, $pass); }

// DB 선택 function sql_select_db($db, $connect) {     global $g5;

    return @mysql_select_db($db, $connect); }

// mysql_query 와 mysql_error 를 한꺼번에 처리 // mysql connect resource 지정 - 명랑폐인님 제안 function sql_query($sql, $error=G5_DISPLAY_SQL_ERROR) {     global $g5;

    // Blind SQL Injection 취약점 해결     $sql = trim($sql);     // union의 사용을 허락하지 않습니다.     //$sql = preg_replace("#^select.*from.*union.*#i", "select 1", $sql);     $sql = preg_replace("#^select.*from.*[\s\(]+union[\s\)]+.*#i ", "select 1", $sql);     // `information_schema` DB로의 접근을 허락하지 않습니다.     $sql = preg_replace("#^select.*from.*where.*`?information_schema`?.*#i", "select 1", $sql);

    if ($error)         $result = @mysql_query($sql, $g5['connect_db']) or die("

$sql

" . mysql_errno() . " : " .  mysql_error() . "

error file : {$_SERVER['SCRIPT_NAME']}");     else         $result = @mysql_query($sql, $g5['connect_db']);

    return $result; }

// 쿼리를 실행한 후 결과값에서 한행을 얻는다. function sql_fetch($sql, $error=G5_DISPLAY_SQL_ERROR) {     $result = sql_query($sql, $error);     //$row = @sql_fetch_array($result) or die("

$sql

" . mysql_errno() . " : " .  mysql_error() . "

error file : $_SERVER['SCRIPT_NAME']");     $row = sql_fetch_array($result);     return $row; }

// 결과값에서 한행 연관배열(이름으로)로 얻는다. function sql_fetch_array($result) {     $row = @mysql_fetch_assoc($result);     return $row; }

// $result에 대한 메모리(memory)에 있는 내용을 모두 제거한다. // sql_free_result()는 결과로부터 얻은 질의 값이 커서 많은 메모리를 사용할 염려가 있을 때 사용된다. // 단, 결과 값은 스크립트(script) 실행부가 종료되면서 메모리에서 자동적으로 지워진다. function sql_free_result($result) {     return mysql_free_result($result); }

function sql_password($value) {     // mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes     // mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes     $row = sql_fetch(" select password('$value') as pass ");

    return $row['pass']; }

// PHPMyAdmin 참고 function get_table_define($table, $crlf="\n") {     global $g5;

    // For MySQL < 3.23.20     $schema_create .= 'CREATE TABLE ' . $table . ' (' . $crlf;

    $sql = 'SHOW FIELDS FROM ' . $table;     $result = sql_query($sql);     while ($row = sql_fetch_array($result))     {         $schema_create .= '    ' . $row['Field'] . ' ' . $row['Type'];         if (isset($row['Default']) && $row['Default'] != '')         {             $schema_create .= ' DEFAULT \'' . $row['Default'] . '\'';         }         if ($row['Null'] != 'YES')         {             $schema_create .= ' NOT NULL';         }         if ($row['Extra'] != '')         {             $schema_create .= ' ' . $row['Extra'];         }         $schema_create     .= ',' . $crlf;     } // end while     sql_free_result($result);

    $schema_create = preg_replace('/,' . $crlf . '$/', '', $schema_create);

    $sql = 'SHOW KEYS FROM ' . $table;     $result = sql_query($sql);     while ($row = sql_fetch_array($result))     {         $kname    = $row['Key_name'];         $comment  = (isset($row['Comment'])) ? $row['Comment'] : '';         $sub_part = (isset($row['Sub_part'])) ? $row['Sub_part'] : '';

        if ($kname != 'PRIMARY' && $row['Non_unique'] == 0) {             $kname = "UNIQUE|$kname";         }         if ($comment == 'FULLTEXT') {             $kname = 'FULLTEXT|$kname';         }         if (!isset($index[$kname])) {             $index[$kname] = array();         }         if ($sub_part > 1) {             $index[$kname][] = $row['Column_name'] . '(' . $sub_part . ')';         } else {             $index[$kname][] = $row['Column_name'];         }     } // end while     sql_free_result($result);

    while (list($x, $columns) = @each($index)) {         $schema_create     .= ',' . $crlf;         if ($x == 'PRIMARY') {             $schema_create .= '    PRIMARY KEY (';         } else if (substr($x, 0, 6) == 'UNIQUE') {             $schema_create .= '    UNIQUE ' . substr($x, 7) . ' (';         } else if (substr($x, 0, 8) == 'FULLTEXT') {             $schema_create .= '    FULLTEXT ' . substr($x, 9) . ' (';         } else {             $schema_create .= '    KEY ' . $x . ' (';         }         $schema_create     .= implode($columns, ', ') . ')';     } // end while

    $schema_create .= $crlf . ') ENGINE=MyISAM DEFAULT CHARSET=utf8';

    return $schema_create; } // end of the 'PMA_getTableDef()' function

// 리퍼러 체크 function referer_check($url='') {     /*     // 제대로 체크를 하지 못하여 주석 처리함     global $g5;

    if (!$url)         $url = G5_URL;

    if (!preg_match("/^http['s']?:\/\/".$_SERVER['HTTP_HOST']."/", $_SERVER['HTTP_REFERER']))         alert("제대로 된 접근이 아닌것 같습니다.", $url);     */ }

// 한글 요일 function get_yoil($date, $full=0) {     $arr_yoil = array ('일', '월', '화', '수', '목', '금', '토');

    $yoil = date("w", strtotime($date));     $str = $arr_yoil[$yoil];     if ($full) {         $str .= '요일';     }     return $str; }

// 날짜를 select 박스 형식으로 얻는다 function date_select($date, $name='') {     global $g5;

    $s = '';     if (substr($date, 0, 4) == "0000") {         $date = G5_TIME_YMDHIS;     }     preg_match("/([0-9]{4})-([0-9]{2})-([0-9]{2})/", $date, $m);

    // 년     $s .= "";     for ($i=1; $i<=12; $i++) {         $s .= "

    // 일     $s .= "";     for ($i=0; $i<=23; $i++) {         $s .= "

    // 분     $s .= "";     for ($i=0; $i<=59; $i++) {         $s .= "

    return $s; }

// DEMO 라는 파일이 있으면 데모 화면으로 인식함 function check_demo() {     global $is_admin;     if ($is_admin != 'super' && file_exists(G5_PATH.'/DEMO'))         alert('데모 화면에서는 하실(보실) 수 없는 작업입니다.'); }

// 문자열이 한글, 영문, 숫자, 특수문자로 구성되어 있는지 검사 function check_string($str, $options) {     global $g5;

    $s = '';     for($i=0;$i

        // 한글         if ($oc >= 0xA0 && $oc <= 0xFF) {             if ($options & G5_HANGUL) {                 $s .= $c . $str[$i+1] . $str[$i+2];             }             $i+=2;         }         // 숫자         else if ($oc >= 0x30 && $oc <= 0x39) {             if ($options & G5_NUMERIC) {                 $s .= $c;             }         }         // 영대문자         else if ($oc >= 0x41 && $oc <= 0x5A) {             if (($options & G5_ALPHABETIC) || ($options & G5_ALPHAUPPER)) {                 $s .= $c;             }         }         // 영소문자         else if ($oc >= 0x61 && $oc <= 0x7A) {             if (($options & G5_ALPHABETIC) || ($options & G5_ALPHALOWER)) {                 $s .= $c;             }         }         // 공백         else if ($oc == 0x20) {             if ($options & G5_SPACE) {                 $s .= $c;             }         }         else {             if ($options & G5_SPECIAL) {                 $s .= $c;             }         }     }

    // 넘어온 값과 비교하여 같으면 참, 틀리면 거짓     return ($str == $s); }

// 한글(2bytes)에서 마지막 글자가 1byte로 끝나는 경우 // 출력시 깨지는 현상이 발생하므로 마지막 완전하지 않은 글자(1byte)를 하나 없앰 function cut_hangul_last($hangul) {     global $g5;

    // 한글이 반쪽나면 ?로 표시되는 현상을 막음     $cnt = 0;     for($i=0;$i= 0xA0) {             $cnt++;         }     }

    return $hangul; }

// 테이블에서 INDEX(키) 사용여부 검사 function explain($sql) {     if (preg_match("/^(select)/i", trim($sql))) {         $q = "explain $sql";         echo $q;         $row = sql_fetch($q);         if (!$row['key']) $row['key'] = "NULL";         echo " (type={$row['type']} , key={$row['key']})";     } }

// 악성태그 변환 function bad_tag_convert($code) {     global $view;     global $member, $is_admin;

    if ($is_admin && $member['mb_id'] != $view['mb_id']) {         //$code = preg_replace_callback("#(\<(embed|object)[^\>]*)\>(\<\/(embed|object)\>)?#i",         // embed 또는 object 태그를 막지 않는 경우 필터링이 되도록 수정         $code = preg_replace_callback("#(\<(embed|object)[^\>]*)\>?(\<\/(embed|object)\>)?#i",                     create_function('$matches', 'return "

보안문제로 인하여 관리자 아이디로는 embed 또는 object 태그를 볼 수 없습니다. 확인하시려면 관리권한이 없는 다른 아이디로 접속하세요.
";'),                     $code);     }

    return preg_replace("/\<([\/]?)(script|iframe|form)([^\>]*)\>?/i", "<$1$2$3>", $code); }

// 토큰 생성 function _token() {     return md5(uniqid(rand(), true)); }

// 불법접근을 막도록 토큰을 생성하면서 토큰값을 리턴 function get_token() {     $token = md5(uniqid(rand(), true));     set_session('ss_token', $token);

    return $token; }

// POST로 넘어온 토큰과 세션에 저장된 토큰 비교 function check_token() {     set_session('ss_token', '');     return true; }

// 문자열에 utf8 문자가 들어 있는지 검사하는 함수 // 코드 : http://in2.php.net/manual/en/function.mb-check-encoding.php#95289">http://in2.php.net/manual/en/function.mb-check-encoding.php#95289 function is_utf8($str) {     $len = strlen($str);     for($i = 0; $i < $len; $i++) {         $c = ord($str[$i]);         if ($c > 128) {             if (($c > 247)) return false;             elseif ($c > 239) $bytes = 4;             elseif ($c > 223) $bytes = 3;             elseif ($c > 191) $bytes = 2;             else return false;             if (($i + $bytes) > $len) return false;             while ($bytes > 1) {                 $i++;                 $b = ord($str[$i]);                 if ($b < 128 || $b > 191) return false;                 $bytes--;             }         }     }     return true; }

// UTF-8 문자열 자르기 // 출처 : https://www.google.co.kr/search?q=utf8_strcut&aq=f&oq=utf8_strcut&aqs=chrome.0.57j0l3.826j0&sourceid=chrome&ie=UTF-8">https://www.google.co.kr/search?q=utf8_strcut&aq=f&oq=utf8_strcut&aqs=chrome.0.57j0l3.826j0&sourceid=chrome&ie=UTF-8 function utf8_strcut( $str, $size, $suffix='...' ) {         $substr = substr( $str, 0, $size * 2 );         $multi_size = preg_match_all( '/[\x80-\xff]/', $substr, $multi_chars );

        if ( $multi_size > 0 )             $size = $size + intval( $multi_size / 3 ) - 1;

        if ( strlen( $str ) > $size ) {             $str = substr( $str, 0, $size );             $str = preg_replace( '/(([\x80-\xff]{3})*?)([\x80-\xff]{0,2})$/', '$1', $str );             $str .= $suffix;         }

        return $str; }

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

질문맨
10년 전
그런데 .. 그 $g5; 이게 도대체 어디서있고 뭐하는건가요

댓글을 작성하려면 로그인이 필요합니다.

10년 전

common.lib.php

안에 서 SQL 관련 함수 모음 검색하세요 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

질문맨
10년 전
다 해봤는데 없더라구요 ,,

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인