2011년 5월 29일 일요일

그누보드 플러그인

팝업창 관리
http://sir.co.kr/bbs/board.php?bo_table=g4_pi_popup&wr_id=65

파일
http://www.mediafire.com/?bhrwvrj1dzwc8fd

그누보드 빌더

림스 빌더

그누보드 배너

림스
http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=96091&sca=&sfl=wr_subject&stx=배너&sop=and
banner_show(고유넘버)
배너 보여질 페이지 상단에 include_once("$g4[path]/lib/rims.lib.php"); 입력
배너 보여줄 위치에 <?=banner_show("indexbanner")?> 입력
배너관리에서 적용여부와 날짜도 확인
배너가 들어갈 위치에 div나 테이블 잡기


협력사
http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=95899&sca=&sfl=wr_subject&stx=%EB%B0%B0%EB%84%88&sop=and


배너 출력 페이지에 include_once("$g4[path]/lib/latest_ban.lib.php"); 소스를 추가
배너가 출력될 곳에  <?=latest_ban("basic_ban","banner", 1, 1,1, 281, 57)?> 함수 추가




http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=89432&sca=&sfl=wr_subject&stx=%EB%B0%B0%EB%84%88&sop=and
배너를 호출하고싶은곳에 소스를 삽입
banner_latest(세로출력row 가로출력 col , 중앙[c] 왼쪽[l] 오른쪽[r] 하단[b] 그룹[g] 랜덤[d] , limit );
* 랜덤 출력은 한곳에서만 출력되니 가로 세로싸이즈가 같은곳에서만 사용

그누보드 디자인

head.php
index.php 혹은 main.php
tail.php

http://www.youtube.com/watch?v=u7huqaWrEUc&feature=related

그누보드 1064에러

select * from where po_start_date < '2011-05-29 16:43:05' and po_end_date > '2011-05-29 16:43:05' and po_openchk = '1'
1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where po_start_date < '2011-05-29 16:43:05' and po_end_date > '2011-05-29 16:43:' at line 1
error file : /adm/index.php

rims 빌더에서 기존 메뉴의 플러그인을 교체 하였다. 
테이블을 올바르게 교체 했지만 SQL 구문 에러가 났다.
플러그인의 변수가 빌더와 맞지 않아서 생기는 문제였다.
$g4[popup_table] 의 값을 $g4[rims_popup_table] 으로 모두 바꿔 주었다.

이 경우, lib/popup.lib.php가 문제였다.
$sql = "select * from $g4[popup_table] where po_start_date < '$g4[time_ymdhis]' and po_end_date > '$g4[time_ymdhis]' and po_openchk = '1'";

2011년 5월 28일 토요일

2011년 5월 26일 목요일

웹페이지 작성 시 참고

http://www.blueb.co.kr/blueb/css_html.php

그누보드 sns 연동

http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=24317

그누보드 최근 게시물

해당 페이지나 head.php에
<?
include_once("$g4[path]/lib/latest.lib.php");
?>

그리고 해당 페이지의 <div></div>사이에 아래 코드를 적용
<? echo latest("basic", 게시판테이블명, 3, 30); ?>
<? echo latest("basic", "01_notice", 3, 30); 
?>

그누보드 디렉토리

adm : 관리자 디렉토리
bbs : 그누보드4 핵심 디렉토리
cheditor : DHTML 에디터 디렉토리
data : 파일 업로드 데이터 디렉토리
extend : 확장 디렉토리 (새로 만든 프로그램을 연동)
img : 기본 이미지 디렉토리
install bak : install 후 남은 backup 디렉토리
js : 자바스크립트 소스 디렉토리
lib : 함수 라이브러리 디렉토리 (그누보드에서 사용할 수 있는 함수들을 모아 놓은 곳)
skin : 스킨 디렉토리


http://www.youtube.com/watch?v=_K-LjqGjnU8

2011년 5월 22일 일요일

외부에서 작성한 .sql파일을 mysql에 적용

mysql -u계정 -p비번 DB명 < /home/mynet/www/qna/qna_board.sql

가칭

젠더

경영 방정식

보여지지 않는 것부터 단순화 시킬 것.

약속되지 않으면 문제가 생긴다.

그때 해결하지 않으면 기억에서 잊는다.

인간관계는 받아 주느냐 얹어 주느냐다.

선행 작업이 필요.

체계를 바꾸면 변수가 생긴다.

소모가 없는한 버리는건 좋은 카드가 아니다.

믿을게 많을 수록 좋다.

인간의 행위에는 동기부여의 법칙이 있다.

시스템은 지켜야 할 성벽과도 같다.

북마크

북마크

KeePassX 웹 비밀번호 관리

KeePassX 데이터베이스

2011년 5월 20일 금요일

리눅스 파일 옮기기

mv aa01 bb02 cc03 dd04 abcd <- 상대경로
mv aa01 bb02 cc03 dd04 /home/user/abcd <- 절대경로

php함수



str_replace()함수 - 변수에 저장되어 있는 일부의 문자열을 바꿀 때
str_replace("적용할 대상 문자열","바뀌는 문자열",변수명)


substr()함수 - 주어진 길이만큼 문자열을 추출
substr(적용할 대상 문자열, 문자열을 추출할 시작점, 추출할 문자열의 길이)

2011년 5월 19일 목요일

메인페이지 확장자 설정

우분투서버 메인페이지 확장자 설정 파일 추정
/etc/apache2/mods-enabled/dir.conf

2011년 5월 18일 수요일

kate에서 위치 저장이 안될 때

가장 하위 폴더의 퍼미션을 777로 설정 한다.

쿠분투 폰트 위치 fonts:/

fonts:/에 폰트 파일을 드래그해서 설치한다.

mysql 에러

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
비밀번호가 잘못 되었을 때

ERROR 1146 (42S02): Table 'yistee_db.user' doesn't exist
계정 등록이 정상적으로 안됐을 때

위치접속 안될때

호스트 서버 192.168.0.48의 호스트 키가 바뀌었습니다.
DNS 스푸핑 공격이 진행 중이거나, 호스트의 IP 주소 및 호스트 키가 바뀌었을 수도 있습니다.
원격 호스트에서 마지막으로 보낸 키 지문은 다음과 같습니다:
68:57:37:5c:32:12:5n:f6:e5:c4:65:a6:75:8o:f3
시스템 관리자에게 연락하십시오.



-------------------
라고 나온다. 서버의 공개키를 지워본다.

2011년 5월 16일 월요일

php mysql 관련 함수

mysql 접속
$connect=mysql_connect("호스트명", "계정명", "비번")


mysql 종료
mysql_close($connect);


DB생성
$dbname=mysql_create_db("DB명", $connect);


DB삭제
$dropdb=mysql_drop_db("DB명", $connect);


DB선택
$dbcon=mysql_select_db("DB명", $connect);


sql 명령어 실행
$result=mysql_query($sql, $connect);


레코드 개수
$TotalRecords=mysql_num_rows($result);


필드 개수
$TotalFields=mysql_num_fields($result);


레코드 한개 가져오기
배열 인덱스에 개수 사용
$row=mysql_fetch_row($result);
배열 인덱스에 필드이름 사용
$row=mysql_fetch_array($result);


result, row, field에 해당하는 데이터 가져오기
$data=mysql_result($result, $i, $j);

내림차순
desc
오름차순
asc

php 배열

1차원 배열 (다수의 변수를 사용)
<?
  $score[0]=72;
  $score[1]=93;
  $score[2]=97;
  $score[3]=89;
  $score[4]=88;
?>


예제($a의 원소와 $b의 원소를 $c에 넣는다.)
<?
  for($i=0; $i<10; $i++)
    $a[$i]=$i+1;

  for($i=0; $i<10; $i++)
    $b[$i]=$i+101;

  for($i=0; $i<10; $i++)
    $c[$i]=$a[$i]+$b[$i]

  for($i=0; $<10; $i++)
    echo "$a[$i]+$b[$i]=$c[$i]";
?>


2차원 배열
예제 (세명의 학생에 대한 다섯과목의 성적)
<?
  $s[0][0]=79;
  $s[0][1]=90;
  $s[0][2]=60;
  $s[0][3]=45;
  $s[0][4]=80;

  $s[1][0]=80;
  $s[1][1]=90;
  $s[1][2]=90;
  $s[1][3]=99;
  $s[1][4]=89;

  $s[2][0]=45;
  $s[2][1]=85;
  $s[2][2]=90;
  $s[2][3]=99;
  $s[2][4]=84;

  for($a=0; $a<3; $a++)
  {
     $sum=0;

     for($b=0; $b<5; $b++)
     {
        $sum=$sum+$s[$a][$b];
     }

     $avg=$sum/5;
     $student_num=$a+1;
     echo "$student_num번째 학생의 성적 => 합계: $sum, 평균: $avg <br />";
  }
?>


array()함수를 사용해 한 줄로 간단하게 작성
$score=array(80, 90, 90, 99, 78);
$s=array(array(79, 90, 60, 45, 80), array(80, 90, 90, 99, 89), array(45, 85, 90, 99, 84));

php 반복문

반복문 (while문, for문, do~while문)


while문
<?
$i=1;
while ($i<=10)
{
echo $i."<br />";
$i++;
}
?>


for문 (간결해서 while문보다 선호된다.)
?>
for ($i=1; $i<=10; $i++)
{
echo $i."<br />";
}
?>


이중 for문
<?
for($a=2; $a<=9; $a++)
{
for($b=1; $b<=9; $b++)
{
$c=$a*$b;
echo "$a*$b=$c <br />";
}
}
?>


do~while문 (조건식이 거짓이라도 문장이 한번은 실행된다.)
<?
$i=100;

do
{
echo $i."<br />";
} while ($i<=10)
?>

php 제어문

if문
if (조건식)
{
  문장1;
  문장2;
}


if~else문
if (조건식)
{
  문장1;
  문장2;
}
else
{
  문장3;
  문장4;
}


다중 if문
if문 (조건식1)
{
  문장1;
  문장2;
}
elseif (조건식2)
{
  문장1;
  문장2;
}
elseif (조건식3)
{
  문장1;
  문장2;
}
else
{
  문장1;
  문장2;
}


switch문
switch(변수)
{
  case 값1:
        문장;
       break;

  case 값2:
        문장;
       break;
  case 값3:
        문장;
       break;
     default:
        문장;
}

php basic

시작과 끝
<?
?>

주석문
//
/*
*/

출력문
echo "문자열 출력"

변수=상수 (우측값을 좌측값에 대입)

산술 연산자
+ 더하기
- 빼기
* 곱하기
/ 나누기
% 나머지
++ 증가
- - 감소

점 연산자
echo $a."<br />"
붙여서 출력한다.

대입 연산자
= 우측값을 좌측에 대입
+= +값을 좌측에 대입
- =
*=
/=
%=
.=

비교 연산자 (제어문이나 반복문에서 많이 사용)
== 서로 같은 값이면 참
!= 서로 다른 값이면 참
> 좌측 값이 크면 참
< 좌측 값이 작으면 참
>= 좌측 값이 크거나 같으면 참
<= 좌측 값이 작거나 같으면 참

논리 연산자
! 참이면 거짓, 거짓이면 참
&& 둘다 참이어야 참
|| 둘중 하나만 참이어도 참

2011년 5월 15일 일요일

DB에 새로운 계정 만들기

#mysql -uroot -p비밀번호 mysql

mysql> create database DB명;
mysql> show database;

myslq 테이블을 확인
mysql> show tables;

user테이블 구조를 본다.
mysql>desc user;
31개의 필드가 나온다.

호스트, 계정, 비밀번호를 등록
mysql> insert into user (host, user, password) values ('localhost', '계정', password('1234'));

생성된 계정을 본다.
mysql> select host, user, password from user;

db테이블의 구조를 본다.
mysql> desc db;
22개의 필드가 나올 것이다.

나의 DB를 사용할 수 있도록 db테이블에 등록해 주어야 한다. 22의 필드가 있다
mysql> insert into db values ('localhost', 'DB명', '계정', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y');

'user', 'db' 테이블의 변경된 내용 적용
mysql> flush privileges;


2011년 5월 10일 화요일

이름 기반 가상 호스트 설정

NameVirtualHost 192.168.0.48

<VirtualHost 192.168.0.48>
        ServerName 도메인.net
        ServerAlias www.도메인.net
        DocumentRoot /home/도메인/www/
        <Directory /home/도메인/www/>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

<VirtualHost 192.168.0.48>
        ServerName 도메인.com
        ServerAlias www.도메인.com
        DocumentRoot /home/도메인/www/
        <Directory /home/도메인/www/>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

도메인과 서버가 연결이 안될때

#ping localhost
#ping 192.168.0.48
#ping 도메인
#nslookup 도메인
으로 모두 확인을 해본다. ping의 응답이 빠르건 적건 나오기만 하면 모두 OK.
그 다음, DNS설정과 버추얼호스팅을 확인해본다. 모두 문제가 없다면 http의 port를 변경해 본다.

2011년 5월 7일 토요일

포트에러

[Sat May 07 11:37:19 2011] [warn] _default_ VirtualHost overlap on port 8000, the first has precedence
[Sat May 07 11:37:19 2011] [warn] NameVirtualHost *:80 has no VirtualHosts

2011년 5월 6일 금요일

서버세팅

라엘님이 리눅스 서버 세팅법을 잘 정리해 놓았기에 자료를 잘 보존해 놓아야 겠다.
http://www.mediafire.com/?n6h9o36tv4bo3od

자료 출처는 https://lael.be/213

우분투 Apache2 실행오류

site를 enabled 시키고 아파치를 재시작 했더니, 이런 에러가 난다.
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 검색을 해보니, /etc/apache2/apache2.conf의 끝 줄에 ServerName localhost를 추가해
주란다.

노트북용 바탕화면

1280x800




1280x860


#8C8C8C



2011년 5월 3일 화요일

apache error.log 파일내용 비우기

경로로 이동하여

> ./error.log

(또는)

cat /dev/null > ./error.log

nabi설정

kde관련 프로그램에서 nabi설정한 한글이 제대로 입력 안될 경우가 있다.
http://www.ubuntuk.com/k_tip/23000 글을 참고.

우분투에서 gimp 2.7 사용

2.7를 사용하고자 한다면 저장소에 ppa를 추가한다.
sudo apt-add-repository ppa:matthaeus123/mrw-gimp-svn
출처 : http://askubuntu.com/questions/571/ppa-for-single-window-gimp

게시판 글목록이 출력 안되길래

// 게시판 보기(view.php) 입니다.
<?
    session_start();
?>
<html>
<body>
<div id="wrap">
<div id="header">
  <ul class="lnb">
      <li><a href="./list.php">게시판</a>
        <ul class="depth4">
            <li>공지사항</li>
            <li>자유게시판</li>
        </ul>
      </li>
  </ul>
</div>
<div id="container">
  <div class="content">
      <table border="0">

<?
  include "./dbconn.php";

  $sql = "select * from freeboard where num=$num";
  $result = mysql_query($sql, $connect);
  $row = mysql_fetch_array($result);
 
  $content = str_replace("\n", "<br>", $row[content]);
  $content = str_replace(" ", " ", $content);
  $subject = str_replace(" ", " ", $row[subject]);
?>

<tr bgcolor="#eeeeee" align="center"><td>제목<? echo $subject  ?></td></tr>
        <tr><td>작성자 : <? echo $row[name] ?> </td></tr>
        <tr><td>작성일 : <? echo $row[regist_day] ?></td></tr>
        <tr><td>조회수 : <? echo $row[hit] ?> </td></tr>
        <tr bgcolor="#eeeeee"><td>글 내용 : <? echo $content ?> </td></tr>
        <tr>
          <td>
<?
  if ($userid == "admin")
  {
      echo "
        <tr>
          <td align=center>
            <a href='modify_form.php?num=$num&page=$page'> <img src='../img/edit.gif' border=0> </a>
            <a href='delete.php?num=$num&page=$page'> <img src='../img/del.gif' border=0> </a>
            <a href='list.php?page=$page'> <img src='../img/list.gif' border=0></a>
          </td>
        </tr>
          ";
  }
  else
  {
      echo "
        <tr>
          <td align=center>
<a href='passwd_form.php?case=modify&num=$num&page=$page'><img src='../img/edit.gif' border=0></a>
<a href='passwd_form.php?case=delete&num=$num&page=$page'><img src='../img/del.gif' border=0></a>
<a href='list.php?page=$page'><img src='../img/list.gif' border=0></a>
          </td>
        </tr>
          ";
  }
?>
      </table>
  </div>
</div>
</body>
</html>

<?
    $hit = $row[hit];

    $hit++;

    $sql = "update freeboard set hit=$hit where num=$row[num]";
    mysql_query($sql, $connect);
    mysql_close();
?>


-----------------------------------------
요령은 데이터가 들어갔는지, 그후에 select 구문이 맞는지 불러오긴 하는지 확인.

본문을 고쳐보다가 $sql = "select * from freeboard where num=$num";에서 $num을 삭제하니 출력이 잘 된다.$sql에 구문의 대입이 제대로 안됬었던 모양이다.

번호 지정해서 읽는 것 이라면 view.php?num=번호 형태로 부를텐데
view.php에서 $num이 아닌 $_GET['num']으로 // 참고 $_REQUEST['num']