/ php / index / english dictionary

 회원가입 |  로그인

{php 게시판 소스 1}
( home ) 2005-12-30 12:37:40

config.board1.php //환경설정,디비연결
function.user.php //환경설정,별거아님
admin.php //관리자 어드민
list.php //리스트
read.php //읽기
viewbody.php //읽기
modify.php //수정
modifyform.php //수정폼
delete.php //삭제
deleteform.php //삭제폼
reply.php //답변
replyform.php //답변폼




config.board1.php

<?
##### 데이터베이스 연결설정 인자 (서버명, 사용자명, 비밀번호, 작업대상 데이터베이스명)
$hostName = "localhost";
$userName = "사용자명";
$userPassword = "비번";
$dbName = "디비명";

##### 데이터베이스에 연결한다.
$conn = @mysql_connect($hostName,$userName,$userPassword);
if(!$conn) {
   error("ACCESS_DENIED_DB_CONNECTION");
   exit;
}

##### 방명록의 아이콘 디렉토리
$iconDir = $code . "_icon";

##### 한 페이지당 출력할 방명록 게시물의 개수
$num_per_page = 10;

##### 한 블록당 출력할 방명록 직접이동 링크의 개수
$page_per_block = 10;

##### 본문에 대한 태그허용 여부 (허용: 'Y', 불가: 'N')
$isTagAllowed = 'Y';

##### 게시물의 내용을 조회할 때 하단에 출력되는 리스트의 형식을 결정 (관련글 출력: "thread", 전체 리스트 출력: "list")
$listType = "list";

##### 새로운 글이 등록되었을 경우 관리자에게 이메일로 통보할 것인지의 여부 (전송: 1, 전송안함 : 0, Windows 운영체제일 경우 전송안함으로 설정)
$notify_admin = 0;

##### 방명록 관리자의 전자우편주소
$admin = "lalena@lalena.net";

##### 메인페이지 주소
$mainpage = "http://lalena.net";

##### 답변글에 대한 indentation 한계치
$reply_indent = 10;

##### 답변이 달린 글을 삭제 허용할 것인지를 결정 (삭제허용: 1, 삭제불가: 0)
$allow_delete_thread = 1;

##### 최근 게시물 설정시간 (day)
$notify_new_article = 5;

##### 게시판 배경색(Background Color)
$BG_COLOR = "#FFFFFF";

##### 게시물 출력목록의 배경색(include.view_list.php)
$LIST_TH_COLOR = "#B9DAFB";
$LIST_TD_COLOR = "#FFFFFF";

##### 입력양식 파일의 출력색상 지정(postform.php, modifyform.php, deleteform.php, replyform.php)
$FORM_ITEM_BG = "#FFFFFF";
$FORM_VALUE_BG = "#FFFFFF";

##### 메일발송시 출력색상 지정(include.mail.php)
$MAIL_SUBJECT_BG = "#FFFFFF";
$MAIL_ITEM_BG = "#FFFFFF";
$MAIL_VALUE_BG = "#FFFFFF";

##### 선택한 게시물에 대한 출력색 지정(viewbody.php, read.php)
$VW_TH_COLOR = "#FFFFFF";
$VW_TD_COLOR = "#FFFFFF";
$VW_FRAME_BG = "#B9DAFB";
$VW_BODY_TITLE = "#FFFFFF";
$VW_BODY_SUBJ = "#FFFFFF";
$VW_BG_SUBJ = "#FFFFFF";
?>










function.user.php

<?
##### 방명록 테이블명을 인자로 전달받아 해당하는 이미지를 출력한다.
function printTitleImage($code) {
   $title_image = $code . ".gif";
   echo "<center><img src=\"" . $title_image . "\" border=0></center><p>";
}

##### 방명록 본문작성시 HTML 태그를 허용할 것인지를 나타내는 메시지를 출력한다.
function printAllowTagMsg($isAllowed) {
   if($isAllowed == "Y") {
      echo "(태그사용 <font color=red>가능</font>)";
   } else {
      echo "(태그사용 <font color=red>불가</font>)";
   }
}  

##### 에러발생시 인자로 전달받은 에러 메시지를 팝업창에 띄워 출력한다.
function popup_msg($msg) {
   echo("<script language=\"javascript\">
   <!--
   alert('$msg');
   history.back();
   //-->  
   </script>");
}

##### 에러발생시 에러코드를 인자로 전달받아 에러상황에 해당하는 메시지와 함께 popup_msg()함수를 호출한다.
function error($errcode) {
   switch ($errcode) {
      case ("NOT_FOUND_CONFIG_FILE") :
         popup_msg("현재 디렉토리에 참조할 환경설정 파일이 없습니다.");
         break;
            
      case ("ACCESS_DENIED_DB_CONNECTION") :
         popup_msg("데이터베이스 연결에 실패하였습니다.\\n\\n연결하고자 하는 서버명과 사용자명, 비밀번호를 확인하시기 바랍니다.");
         break;
            
      case ("FAILED_TO_SELECT_DB") :
         popup_msg("지정한 데이터베이스를 작업대상 데이터베이스로 할 수 없습니다.\\n\\n지정한 데이터베이스를 확인하시기 바랍니다.");
         break;

      case ("QUERY_ERROR") :      
         $err_no = mysql_errno();
         $err_msg = mysql_error();        
         $error_msg = "ERROR CODE " . $err_no . " : " . $err_msg;
         $error_msg = addslashes($error_msg);        
         popup_msg($error_msg);  
         break;

      case ("NOT_ALLOWED_NAME") :
         popup_msg("입력하신 이름은 허용되지 않는 값입니다.\\n\\n다시 입력하여 주십시오.");
         break;

      case ("NOT_ALLOWED_EMAIL") :
         popup_msg("입력하신 전자우편주소의 형식이 올바르지 않습니다.\\n\\n다시 입력하여 주십시오.");
         break;        
        
      case ("NOT_ALLOWED_HOMEPAGE") :
         popup_msg("입력하신 홈페이지 주소의 형식이 올바르지 않습니다.\\n\\n다시 입력하여 주십시오.");
         break;                

      case ("NOT_ALLOWED_SUBJECT") :
         popup_msg("입력하신 제목은 허용되지 않는 값입니다.\\n\\n다시 입력하여 주십시오.");
         break;
      
      case ("NOT_ALLOWED_PASSWD") :
         popup_msg("암호는 최소 4자이상의 영문자 또는 숫자여야 합니다.\\n\\n다시입력하여 주십시오.");
         break;

      case ("NOT_ALLOWED_COMMENT") :
         popup_msg("본문을 입력하지 않으셨습니다.\\n\\n다시 입력하여 주십시오.");
         break;

      case ("CANNOT_SEND_MAIL") :
         popup_msg("메일을 발송할 수 없습니다.\\n\\n발송메일의 형식을 확인하여 주십시오.");
         break;

      case ("NO_ACCESS_MODIFY") :  
         popup_msg("입력하신 암호와 일치하지 않으므로 수정할 수 없습니다. \\n\\n다시 입력하여 주십시오.");
         break;

      case ("NO_ACCESS_DELETE") :  
         popup_msg("입력하신 암호와 일치하지 않으므로 삭제할 수 없습니다. \\n\\n다시 입력하여 주십시오.");
         break;

      case ("NO_ACCESS_DELETE_THREAD") :  
         popup_msg("답변이 있는 글은 삭제하실 수 없습니다. \\n\\n답변글을 모두 삭제하신 후 삭제하십시오.");
         break;
                          
      default :
   }
}

##### 인증에 필요한 이름과 암호를 입력받는 인증창을 띄우는 함수
function authenticate() {
   Header("WWW-authenticate: basic realm=\"관리자 영역\"");
   Header("HTTP/1.0 401 Unauthorized");

   echo("
        <html>
        <body>
               <script language=\"javascript\">
        <!--
           alert('관리자 인증에 실패하였습니다.');
           history.back();
        //-->
        </script>
        </body>
        </html>
   ");

   exit;
}
?>









admin.php

<?
##### 사용자 정의 함수 파일을 가져온다.
require_once("function.user.php");

##### 환경설정 파일을 불러온다. 환경설정파일은 "config.테이블명.php"이어야 한다.
$cfg_file = "config." . $code . ".php";
if(file_exists($cfg_file)) {
   require($cfg_file);
} else {
   error("NOT_FOUND_CONFIG_FILE");
   exit;
}

if(!isset($PHP_AUTH_USER)) {

##### 인증창에 값을 입력하지 않은 경우 다시 인증창을 띄운다.
   authenticate();

} else {

##### 작업대상 데이터베이스를 선택한다.
   $db = mysql_select_db($dbName);
   if(!$db) {
      error("FAILED_TO_SELECT_DB");
      exit;
   }

##### 사용자가 인증창에 입력한 암호를 암호화한다.
   $result = mysql_query("SELECT password('$PHP_AUTH_PW')");
   $user_pw = mysql_result($result,0,0);
   mysql_free_result($result);

   $query = "SELECT adminpw FROM boardadmin WHERE boarduid = '$code' AND adminid = '$PHP_AUTH_USER'";
   $result = mysql_query($query);
   $rows = mysql_num_rows($result);

   if($rows) {

##### 관리자 테이블에서 해당 방명록의 관리자 암호를 가져온다.
      $admin_pw = mysql_result($result,0,0);

##### 사용자가 입력한 암호와 일치하지 않으면 다시 인증창을 띄운다.
      if(strcmp($user_pw,$admin_pw)) {
         authenticate();
      }

   } else {

      ##### 해당 게시판에 대한 관리자가 없을 경우 다시 인증창을 띄운다.
      authenticate();

   }
}

echo ("<meta http-equiv='Refresh' content='0; URL=list.php?code=$code'>");
?>










list.php

<?
##### 사용자 정의 함수 파일을 가져온다.
require_once("function.user.php");

##### 환경설정 파일을 불러온다. 환경설정파일은 "config.테이블명.php"여야 한다.
$cfg_file = "config." . $code . ".php";
if(file_exists($cfg_file)) {
   require($cfg_file);
} else {
   error("NOT_FOUND_CONFIG_FILE");
   exit;
}

##### HTML 상단 페이지 파일을 불러온다.
require_once("include.header.php");
?>

<body bgColor=<?echo("$BG_COLOR")?>>

<?
##### 작업대상 데이터베이스를 선택한다.
$db = mysql_select_db($dbName);
if(!$db) {
   error("FAILED_TO_SELECT_DB");
   exit;
}

##### 특별히 지정하지 않으면 리스트의 첫 페이지를 출력한다.
if(!$page) {
   $page = 1;
}

##### 페이지 상단에 방명록 타이틀 이미지를 출력한다.
// printTitleImage($code);

##### 지정한 페이지의 목록을 출력하는 파일을 불러온다.
include "include.view_list.php";

##### HTML 하단 페이지 파일을 불러온다.
require_once("include.footer.php");
?>









read.php

<?
##### 사용자 정의 함수 파일을 가져온다.
require_once("function.user.php");

##### 환경설정 파일을 불러온다. 환경설정파일은 "config.테이블명.php"이어야 한다.
$cfg_file = "config." . $code . ".php";
if(file_exists($cfg_file)) {
   require($cfg_file);
} else {
   error("NOT_FOUND_CONFIG_FILE");
   exit;
}

##### HTML 상단 페이지 파일을 불러온다.
require_once("include.header.php");

##### 작업대상 데이터베이스를 선택한다.
$db = mysql_select_db($dbName);
if(!$db) {
   error("FAILED_TO_SELECT_DB");
   exit;
}
?>

<body bgColor="<?echo("$BG_COLOR")?>">

<?
##### 페이지 상단에 방명록 타이틀 이미지를 출력한다.
//printTitleImage($code);

##### list.php에서 사용자가 체크박스에 체크한 게시물의 내용을 출력하는 함수를 호출한다.
// for($i = 0; $i < sizeof($check); $i++) {
//    getContentsFromUid($check[$i]);
// }

##### 검색문자열을 인코딩한다.
$encoded_key = urlencode($key);
?>

<table width=650 border=0 cellpadding=1 cellspacing=0 align=center>
<tr>
   <td align="center">
   <A HREF="list.php?code=<?echo("$code")?>&page=<?echo("$page")?>&keyfield=<?echo("$keyfield")?>&key=<?echo("$encoded_key")?>" onMouseOver="status='reload current list';return true;" onMouseOut="status=''"><img src="<?echo("$iconDir")?>/list.gif" width=35 height=35 border=0></A>
   <A HREF="postform.php?code=<?echo("$code")?>" onMouseOver="status='post a new article';return true;" onMouseOut="status=''"><img src="<?echo("$iconDir")?>/post.gif" width=35 height=35 border=0></A>
   </td>
</tr>
</table>

<?
##### HTML 하단 페이지 파일을 불러온다.
require_once("include.footer.php");
?>

<?
##### 인자로 넘겨받은 게시물 레코드의 uid 필드값으로 부터 해당 게시물을 출력하는 함수를 정의한다.
function getContentsFromUid($value) {
  
   ##### 게시판 테이블명과 아이콘 디렉토리명등을 저장한 변수를 전역변수로 선언한다.
   GLOBAL $code, $iconDir, $page, $key, $keyfield;
  
   ##### 데이터베이스 연결에 필요한 변수를 전역변수로 선언한다.
   GLOBAL $db;
  
   ##### 환경설정 파일에서 태그허용 여부에 대한 변수를 전역변수로 선언한다.
   GLOBAL $isTagAllowed;  
  
   ##### 게시판의 환경설정 파일에서 설정한 테이블 색상값을 함수내에서 쓸 수 있도록 이들 변수를 전역변수로 선언한다.
   GLOBAL $VW_TH_COLOR,$VW_TD_COLOR,$VW_FRAME_BG,$VW_BODY_TITLE,$VW_BODY_SUBJ,$VW_BG_SUBJ;
  
   ##### 선택한 특정 게시물 레코드의 필드값을 변수에 저장한다.      
   $query = "SELECT name,subject,email,homepage,signdate,ref,comment FROM $code WHERE uid = $value";  
   $result = mysql_query($query);
   if(!$result) {
      error("QUERY_ERROR");
      exit;
   }
   $row = mysql_fetch_row($result);

   $my_name = $row[0];
   $my_subject = $row[1];
   $my_email = $row[2];        
   $my_homepage = $row[3];
   $my_signdate = date("y.m.d / H:i:s",$row[4]);        
   $my_ref = $row[5];
   $my_comment = $row[6];

   ##### 제목과 본문에 대하여 테이블에 저장할 때(post.php) addslashes() 함수로 escape시킨 문자열을 원래대로 되돌려 놓는다.  
   $my_subject = stripslashes($my_subject);
   $my_comment = stripslashes($my_comment);

   ##### 원칙상 제목에는 HTML 태그를 허용하지 않는다.
   $my_subject = htmlspecialchars($my_subject);

   ##### 태그사용 불가로 지정한 경우 태그문자열을 그대로 출력한다.
   if(strcmp($isTagAllowed,'Y')) {
      $my_comment = htmlspecialchars($my_comment);
   }
      
   ##### 제목이나 본문중에 지정한 검색어가 포함되어 있을 경우 검색된 문자열을 red color 처리하여 출력한다.
   if(!strcmp($keyfield,"subject") && $key) {
      $my_subject = eregi_replace("($key)", "<font color=red>\\1</font>", $my_subject);
   }
   if(!strcmp($keyfield,"comment") && $key) {
      $my_comment = eregi_replace("($key)","<font color=red>\\1</font>",$my_comment);
   }  

   ##### 본문의 문자열을 개행처리한다.
   $my_comment = nl2br($my_comment);

   ##### 선택한 게시물의 조회수를 증가시킨다.
   $result = mysql_query("UPDATE $code SET ref = $my_ref + 1 WHERE uid = $value");
   if(!$result) {
      error("QUERY_ERROR");
      exit;
   }        
   echo("<br>");

?>

<table width=650 border=0 cellpadding=1 cellspacing="0" align="center" bgcolor="#336699">
<tr><td bgColor="<?echo("$VW_FRAME_BG")?>">

<table width=648 border=0 cellpadding=5 cellspacing="1" align="center">
        <tr>
          <td colspan="2" align="center" bgColor="<?echo($VW_BG_SUBJ)?>"><font color="<?echo("$VW_BODY_SUBJ")?>"><b><?echo("$my_subject")?></b></font></td>
        </tr>
        <tr>
          <td width="25%" bgColor="<?echo($VW_TD_COLOR)?>"><?echo("$my_comment")?></td>
        </tr>
        <tr>
          <td colspan="2" align="right" bgColor="<?echo($VW_TD_COLOR)?>"><table width="100" border="0" align="left" cellpadding="0" cellspacing="0">
              <tr>
                <td><?
$encoded_key = urlencode($key);
echo("
   <A HREF=\"listform.php?code=$code&page=$page&number=$value\" onMouseOver=\"status='list';return true;\" onMouseOut=\"status=''\"\"><img src=\"$iconDir/list.gif\" border=0></A>"
   );
?>

</td>
              </tr>
            </table>
            <?
$encoded_key = urlencode($key);
echo("
   <A HREF=\"replyform.php?code=$code&page=$page&number=$value\" onMouseOver=\"status='reply';return true;\" onMouseOut=\"status=''\"\"><img src=\"$iconDir/reply.gif\" border=0></A>
   <A HREF=\"modifyform.php?code=$code&page=$page&number=$value&keyfield=$keyfield&key=$encoded_key\" onMouseOver=\"status='modify';return true;\" onMouseOut=\"status=''\"\"><img src=\"$iconDir/modify.gif\" border=0></A>
   <A HREF=\"deleteform.php?code=$code&page=$page&number=$value&keyfield=$keyfield&key=$encoded_key\" onMouseOver=\"status='delete';return true;\" onMouseOut=\"status=''\"\"><img src=\"$iconDir/delete.gif\" border=0></A>"
);
?>
          </td>
        </tr>
      </table>

</td></tr>
</table>
          
<?              
}
?>









viewbody.php

<?
##### 사용자 정의 함수 파일을 가져온다.
require_once("function.user.php");

##### 환경설정 파일을 불러온다. 환경설정파일은 "config.테이블명.php"이어야 한다.
$cfg_file = "config." . $code . ".php";
if(file_exists($cfg_file)) {
   require($cfg_file);
} else {
   error("NOT_FOUND_CONFIG_FILE");
   exit;
}

##### HTML 상단 페이지 파일을 불러온다.
require_once("include.header.php");
?>

<body bgColor="<?echo("$BG_COLOR")?>">

<?
##### 작업대상 데이터베이스를 선택한다.
$db = mysql_select_db($dbName);
if(!$db) {
   error("FAILED_TO_SELECT_DB");
   exit;
}

##### 선택한 게시물의 입력값을 뽑아낸다.
$query = "SELECT name,subject,email,homepage,signdate,ref,comment,fid FROM $code WHERE uid = $number";
$result = mysql_query($query);
if(!$result) {
   error("QUERY_ERROR");
   exit;
}
$row = mysql_fetch_row($result);

$my_name = $row[0];
$my_subject = $row[1];
$my_email = $row[2];        
$my_homepage = $row[3];
$my_signdate = date("y. m. d / H:i:s",$row[4]);        
$my_ref = $row[5];
$my_comment = $row[6];
$my_fid = $row[7];

##### 제목과 본문에 대하여 테이블에 저장할 때(post.php) addslashes() 함수로 escape시킨 문자열을 원래대로 되돌려 놓는다.
$my_subject = stripslashes($my_subject);
$my_comment = stripslashes($my_comment);

##### 제목이나 본문중에 지정한 검색어가 포함되어 있을 경우 검색된 문자열을 red color 처리하여 출력한다.
if(!strcmp($keyfield,"subject") && $key) {
   $my_subject = eregi_replace("($key)", "<font color=red>\\1</font>", $my_subject);
}
if(!strcmp($keyfield,"comment") && $key) {
   $my_comment = eregi_replace("($key)","<font color=red>\\1</font>",$my_comment);
}

##### 태그사용 불가로 지정한 경우 태그문자열을 그대로 출력한다.
if(strcmp($isTagAllowed,'Y')) {
   $my_comment = htmlspecialchars($my_comment);
}

##### 본문의 문자열을 개행처리한다.
$my_comment = nl2br($my_comment);

##### 선택한 게시물의 조회수를 증가시킨다.
$result = mysql_query("UPDATE $code SET ref = $my_ref + 1 WHERE uid = $number");
if(!$result) {
   error("QUERY_ERROR");
   exit;
}        

##### 페이지 상단에 방명록 타이틀 이미지를 출력한다.
// printTitleImage($code);
?>

<table width=650 border=0 cellpadding=0 cellspacing="1" align="center" bgColor="#336699">
<tr>
    <td bgColor="FFFFFF"><table width="100%" border="0" cellspacing="3" cellpadding="3" bgcolor=<?echo("$VW_FRAME_BG")?>>
  <tr>
    <td><img src="<?echo("$iconDir")?>/title.gif" border="0"><b> <?echo("$my_subject")?></b></td>
  </tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="5">
  <tr bgcolor="#ffffff"><td>
    <?          
if (!$my_email) {
   echo("<img src=\"$iconDir\/name.gif\" border=\"0\"> $my_name");
} else {
   echo("<img src=\"$iconDir\/name.gif\" border=\"0\"> $my_name   <img src=\"$iconDir\/email.gif\" border=\"0\"> <A HREF=\"mailto:$my_email\">$my_email</A>");
}        
?>

                                
                                
                                  <?          
if (!$my_homepage) {
   echo("");
} else {
   echo("<img src=\"$iconDir\/homepage.gif\" border=\"0\"> <A HREF=\"$my_homepage\" target=\"_blank\">$my_homepage</A>");
}        
?>

                                
                                
                                </td>

  </tr>
</table>

<table width="645" border="0" cellspacing="1" cellpadding="5">
  <tr bgcolor="#FFFFFF">
    <td><?echo("$my_comment")?></td>
  </tr>
</table>    
<table width="645" border="0" cellspacing="0" cellpadding="5">
        <tr bgcolor="#FFFFFF">
          <td align="right">
                  <?
          ##### 현재 관리자 모드이면 관리자모드임을 출력한다.
if(!$PHP_AUTH_USER) {
echo ("");
}else{
   echo("$my_signdate");
}

?>  
                  
                  </td>
        </tr>
      </table>
</td>
  </tr>
</table>
<table width="645" border="0" cellspacing="0" cellpadding="0" height="50" align="center">
  <tr bgcolor="#FFFFFF">
    <td width="293" valign="middle"><?
$encoded_key = urlencode($key);
echo("
   <a href=javascript:history.go(-1);><img src=\"$iconDir/list.gif\" border=0></a>"
   );
?></td>
    <td width="352" align="right" valign="middle"><a href="postform.php?code=<?echo("$code")?>" onMouseOver="status='새글쓰기';return true;" onMouseOut="status=''"><img src="<?echo("$iconDir")?>/post.gif" border=0 alt=write></a>
  
   <?
$encoded_key = urlencode($key);
echo("
     <A HREF=\"replyform.php?code=$code&page=$page&number=$number\" onMouseOver=\"status='reply';return true;\" onMouseOut=\"status=''\"\"><img src=\"$iconDir/reply.gif\" border=0></A>
   <A HREF=\"modifyform.php?code=$code&page=$page&number=$number&keyfield=$keyfield&key=$encoded_key\" onMouseOver=\"status='modify';return true;\" onMouseOut=\"status=''\"\"><img src=\"$iconDir/modify.gif\" border=0></A>
   <A HREF=\"deleteform.php?code=$code&page=$page&number=$number&keyfield=$keyfield&key=$encoded_key\" onMouseOver=\"status='delete';return true;\" onMouseOut=\"status=''\"\"><img src=\"$iconDir/delete.gif\" border=0></A>"
);
?></td>
  </tr>
</table>

<?
if(!strcmp($listType,"thread")) {

   ##### 조회하고 있는 게시물과 연관된 게시물의 목록만 출력한다.
   include "include.view_thread.php";
} else {

   ##### 지정한 페이지의 전체 목록을 출력하는 파일을 불러온다.
   include "include.view_list.php";
}
  
##### HTML 하단 페이지 파일을 불러온다.
require_once("include.footer.php");
?>








modify.php

<?
##### 사용자 정의 함수 파일을 가져온다.
require_once("function.user.php");

##### 환경설정 파일을 불러온다. 환경설정파일은 "config.테이블명.php"이어야 한다.
$cfg_file = "config." . $code . ".php";
if(file_exists($cfg_file)) {
   require($cfg_file);
} else {
   error("NOT_FOUND_CONFIG_FILE");
   exit;
}

##### 사용자가 아무값도 입력하지 않았거나 입력한 값이 허용되지 않는 값일 경우 에러메시지를 출력하고 스크립트를 종료한다.
if(!ereg("([^[:space:]]+)", $name)) {
   error("NOT_ALLOWED_NAME");
   exit;
}

if(ereg("([^[:space:]]+)", $email) && (!ereg("(^[_0-9a-zA-Z-]+(\.[_0-9a-zA-Z-]+)*@[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*$)", $email))) {
   error("NOT_ALLOWED_EMAIL");  
   exit;
}

if(ereg("([^[:space:]]+)", $homepage) && (!ereg("http://([0-9a-zA-Z./@~?&=_]+)", $homepage))  ) {
   error("NOT_ALLOWED_HOMEPAGE");
   exit;
}

if(!ereg("([^[:space:]]+)", $subject)) {
   error("NOT_ALLOWED_SUBJECT");
   exit;
}

if(!ereg("(^[0-9a-zA-Z]{4,}$)", $passwd)) {
   error("NOT_ALLOWED_PASSWD");
   exit;
}

if(!ereg("([^[:space:]]+)", $comment)) {
   error("NOT_ALLOWED_COMMENT");
   exit;
}

##### 작업대상 데이터베이스를 선택한다.
$db = mysql_select_db($dbName);
if(!$db) {
   error("FAILED_TO_SELECT_DB");
   exit;
}

##### 제목과 본문의 문자열에 포함된 특수문자를 escape시킨다.
$subject = addslashes($subject);
$comment = addslashes($comment);

##### 관리자로 인증된 경우 모든 글을 수정할 수 있다.
if(isset($PHP_AUTH_USER)) {
   $query = "UPDATE $code SET name = '$name', subject = '$subject', email = '$email', homepage = '$homepage', comment = '$comment' WHERE uid  = $number";  
   $result = mysql_query($query);
   if (!$result) {
      error("QUERY_ERROR");
      exit;
   }
   echo("<meta http-equiv='Refresh' content='0; URL=list.php?code=$code&page=$page&keyfield=$keyfield&key=$encoded_key'>");        
} else {

   ##### 해당게시물의 암호값을 뽑아낸다.
   $result = mysql_query("SELECT passwd FROM $code WHERE uid = $number");
   if(!$result) {
      error("QUERY_ERROR");
      exit;
   }
   $real_pass = mysql_result($result,0,0);
   mysql_free_result($result);
  
   ##### 사용자가 비밀번호란에 입력한 문자열을 crypt() 함수로 암호화한다.
   $user_pass = crypt($passwd,$real_pass);
  
   ##### 게시물의 암호와 사용자가 입력한 암호가 같으면 게시물을 수정한다.
   if (!strcmp($real_pass,$user_pass)) {
      $query = "UPDATE $code SET name = '$name', subject = '$subject', email = '$email', homepage = '$homepage', comment = '$comment' WHERE uid  = $number";
      $result = mysql_query($query);
      if (!$result) {
         error("QUERY_ERROR");
         exit;
      }
      
      ##### 리스트 출력화면으로 이동한다.
      $encoded_key = urlencode($key);
      echo("<meta http-equiv='Refresh' content='0; URL=list.php?code=$code&page=$page&keyfield=$keyfield&key=$encoded_key'>");  
   } else {
      error("NO_ACCESS_MODIFY");
      exit;
   }
}  
?>









modifyform.php

<?
##### 사용자 정의 함수 파일을 가져온다.
require_once("function.user.php");

##### 환경설정 파일을 불러온다. 환경설정파일은 "config.테이블명.php"이어야 한다.
$cfg_file = "config." . $code . ".php";
if(file_exists($cfg_file)) {
   require($cfg_file);
} else {
   error("NOT_FOUND_CONFIG_FILE");
   exit;
}

##### HTML 상단 페이지 파일을 불러온다.
require_once("include.header.php");
?>

<script language="javascript">
<!--
function checkIt(form) {      
   if(!form.name.value) {
      alert('이름을 입력하세요!');
      form.name.focus();
      return;
   }
   if(!form.subject.value) {
      alert('제목을 입력하세요!');
      form.subject.focus();
      return;
   }
   if(!form.passwd.value) {
      alert('비밀번호를 입력하세요!');
      form.passwd.focus();
      return;
   }
   if(!form.comment.value) {
      alert('메시지 본문을 입력하세요!');
      form.comment.focus();
      return;
   }      
            
   form.submit();
}
function focusIt() {
   document.signform.passwd.focus();
}
//-->
</script>

<body bgColor="<?echo("$BG_COLOR")?>" onLoad="focusIt()">

<?
##### 페이지 상단에 방명록 타이틀 이미지를 출력한다.
// printTitleImage($code);

##### 작업대상 데이터베이스를 선택한다.
$db = mysql_select_db($dbName);
if(!$db) {
   error("FAILED_TO_SELECT_DB");
   exit;
}

##### 수정하고자 하는 글의 내용을 가져와 각각의 변수에 저장한다.
$query = "SELECT name,subject,email,homepage,comment FROM $code WHERE uid = $number";
$result = mysql_query($query);
if(!$result) {
   error("QUERY_ERROR");
   exit;
}

$row = mysql_fetch_object($result);

$my_name = $row->name;
$my_subject = $row->subject;
$my_email = $row->email;
$my_homepage = $row->homepage;
$my_comment = $row->comment;

##### 제목과 본문에 대하여 테이블에 저장할 때(post.php) addslashes() 함수로 escape시킨 문자열을 원래대로 되돌려 놓는다.
$my_subject = stripslashes($my_subject);
$my_comment = stripslashes($my_comment);

##### 검색문자열을 인코딩한다.
$encoded_key = urlencode($key);
?>

<form name="signform" method="post" action="modify.php?code=<?echo("$code")?>&page=<?echo("$page")?>&number=<?echo("$number")?>&keyfield=<?echo("$keyfield")?>&key=<?echo("$encoded_key ")?>">
<table width="652" border="0" cellspacing="0" cellpadding="0" align="center" height="67">
  <tr>
    <td><img src="<?echo("$iconDir")?>/modify_title.gif" border="0"></td>
        <td height="60"> </td>
  </tr>
</table>
<table width="602" border="0" cellspacing="0" cellpadding="0" align="center">
<tr><td>

   <table width="600" border="0" cellspacing="1" cellpadding="5" align="center">
   <tr>
      <td width="120" bgColor="<?echo("$FORM_ITEM_BG")?>" class="repl"><img src="<?echo("$iconDir")?>/name.gif" border="0"></td>
      <td width="480" bgColor="<?echo("$FORM_VALUE_BG")?>"><input type="text" name="name" size="30" maxlength="10" value="<?echo ("$my_name")?>"></td>
   </tr>
   <tr>
      <td bgColor="<?echo("$FORM_ITEM_BG")?>" class="repl"><img src="<?echo("$iconDir")?>/email.gif" border="0"></td>
      <td bgColor="<?echo("$FORM_VALUE_BG")?>"><input type="text" name="email" size="30" maxlength="40" value="<?echo ("$my_email")?>"></td>
   </tr>
   <tr>
      <td bgColor="<?echo("$FORM_ITEM_BG")?>" class="repl"><img src="<?echo("$iconDir")?>/homepage.gif" border="0"></td>
      <td bgColor="<?echo("$FORM_VALUE_BG")?>"><input type="text" name="homepage" size="30" maxlength="60" value="<?echo ("$my_homepage")?>"></td>
   </tr>            
   <tr>
      <td bgColor="<?echo("$FORM_ITEM_BG")?>" class="repl"><img src="<?echo("$iconDir")?>/title.gif" border="0"></td>
      <td bgColor="<?echo("$FORM_VALUE_BG")?>"><input type="text" name="subject" size="50" maxlength="40" value='<?echo ("$my_subject")?>'></td>
   </tr>  
   <tr>
      <td bgColor="<?echo("$FORM_ITEM_BG")?>" class="repl"><img src="<?echo("$iconDir")?>/password.gif" border="0"></td>
      <td bgColor="<?echo("$FORM_VALUE_BG")?>"><input type="password" name="passwd" size="30" maxlength="10"><font size="2">
            </td>
   </tr>
   <tr>
      <td valign="top" bgColor="<?echo("$FORM_ITEM_BG")?>" class="repl"><img src="<?echo("$iconDir")?>/talk.gif" border="0"><p>
<?
##### 본문에 대한 HTML 태그의 허용여부 메시지를 출력한다.
// printAllowTagMsg($isTagAllowed);
?>
      </td>
      <td bgColor="<?echo("$FORM_VALUE_BG")?>"><textarea name="comment" cols="50" rows="10"><?echo("$my_comment")?></textarea>
   </tr>
   <tr>
      <td align="center" colspan="2" bgColor="<?echo("$BG_COLOR")?>">
      <input type="image" src="<?echo("$iconDir")?>/ok.gif" name="Submit" value="ok" onClick="checkIt(this.form)" style="border:0;width:40;height:17;">
              <a href="javascript:history.go(-1);"><img src="<?echo("$iconDir")?>/cancel.gif" border="0"></a>
            </td>
   </tr>
   </table>

</td></tr>
</table>

</form>

</body>
</html>








delete.php

<?
##### 사용자 정의 함수 파일을 가져온다.
require_once("function.user.php");

##### 환경설정 파일을 불러온다. 환경설정파일은 "config.테이블명.php"이어야 한다.
$cfg_file = "config." . $code . ".php";
if(file_exists($cfg_file)) {
   require($cfg_file);
} else {
   error("NOT_FOUND_CONFIG_FILE");
   exit;
}

##### 작업대상 데이터베이스를 선택한다.
$db = mysql_select_db($dbName);
if(!$db) {
   error("FAILED_TO_SELECT_DB");
   exit;
}

##### 삭제하고자 하는 글이 답변글을 하나라도 달고 있으면 삭제할 수 없도록 한다.
if(!$allow_delete_thread) {  
   $query = "SELECT thread FROM $code WHERE fid = $fid AND length(thread) = length('$thread')+1 AND locate('$thread',thread) = 1 ORDER BY thread DESC LIMIT 1";
   $result = mysql_query($query);
   if(!$result) {
      error("QUERY_ERROR");
      exit;
   }
   $rows = mysql_num_rows($result);        
   if($rows) {        
      error("NO_ACCESS_DELETE_THREAD");
      exit;
   }
}

##### 관리자로 인증된 경우 모든 글을 삭제할 수 있다.
if($PHP_AUTH_USER) {
   $query = "DELETE FROM $code WHERE fid = $fid AND thread = '$thread'";
   $result = mysql_query($query);
   if (!$result) {
      error("QUERY_ERROR");
      exit;
   }
   echo("<meta http-equiv='Refresh' content='0; URL=list.php?code=$code&page=$page&keyfield=$keyfield&key=$encoded_key'>");
  
} else {

   ###### 해당게시물의 암호값을 뽑아낸다.
   $result = mysql_query("SELECT passwd FROM $code WHERE fid = $fid AND thread = '$thread'");
   if(!$result) {
      error("QUERY_ERROR");
      exit;
   }
   $real_pass = mysql_result($result,0,0);
   mysql_free_result($result);
  
   ##### 사용자가 비밀번호란에 입력한 문자열을 crypt() 함수로 암호화한다.
   $user_pass = crypt($passwd,$real_pass);
  
   ##### 게시물의 암호와 사용자가 입력한 암호가 같으면 게시물을 삭제한다.
   if (!strcmp($real_pass,$user_pass)) {      
      $query = "DELETE FROM $code WHERE fid = $fid AND thread = '$thread'";
      $result = mysql_query($query);
      if (!$result) {
         error("QUERY_ERROR");
         exit;
      }
      
      ##### 리스트 출력화면으로 이동한다.
      $encoded_key = urlencode($key);
      echo("<meta http-equiv='Refresh' content='0; URL=list.php?code=$code&page=$page&keyfield=$keyfield&key=$encoded_key'>");  
   } else {
      error("NO_ACCESS_DELETE");
      exit;
   }
}  
?>








deleteform.php

<?
##### 사용자 정의 함수 파일을 가져온다.
require_once("function.user.php");

##### 환경설정 파일을 불러온다. 환경설정파일은 "config.테이블명.php"이어야 한다.
$cfg_file = "config." . $code . ".php";
if(file_exists($cfg_file)) {
   require($cfg_file);
} else {
   error("NOT_FOUND_CONFIG_FILE");
   exit;
}

##### HTML 상단 페이지 파일을 불러온다.
require_once("include.header.php");
?>

<script language="javascript">
<!--
function checkIt(form) {      
   if(!form.passwd.value) {
      alert('비밀번호를 입력하세요!');
      form.passwd.focus();
      return;
   }
   form.submit();
}
function focusIt() {
   document.signform.passwd.focus();
}
//-->
</script>

<body bgColor=<?echo("$BG_COLOR")?> onLoad="focusIt()">

<?
##### 페이지 상단에 방명록 타이틀 이미지를 출력한다.
// printTitleImage($code);

##### 작업대상 데이터베이스를 선택한다.
$db = mysql_select_db($dbName);
if(!$db) {
   error("FAILED_TO_SELECT_DB");
   exit;
}

##### 삭제하고자 하는 글의 내용을 가져와 각각의 변수에 저장한다.
$query = "SELECT fid,name,subject,comment,thread FROM $code WHERE uid = $number";
$result = mysql_query($query);
if(!$result) {
   error("QUERY_ERROR");
   exit;
}

$row = mysql_fetch_object($result);

$my_fid = $row->fid;
$my_name = $row->name;
$my_subject = $row->subject;
$my_thread = $row->thread;
$my_comment = $row->comment;

##### 제목에 대하여 테이블에 저장할 때(post.php) addslashes() 함수로 escape시킨 문자열을 원래대로 되돌려 놓는다.
$my_subject = stripslashes($my_subject);
$my_comment = stripslashes($my_comment);

##### 검색문자열을 인코딩한다.
$encoded_key = urlencode($key);

if(!$my_email) {
   $my_email = " ";
}
if(!$my_homepage) {
   $my_homepage = " ";
}
?>

<form name="signform" method="post" action="delete.php?code=<?echo("$code")?>&page=<?echo("$page")?>&fid=<?echo("$my_fid")?>&thread=<?echo("$my_thread")?>&keyfield=<?echo("$keyfield")?>&key=<?echo("$encoded_key")?>">
<table border="0" cellpadding="0" cellspacing="0" width="200" height="80" align="center">
   <tr>
     <td width="150"></td>
     <td valign="middle"><img src="<?echo("$iconDir")?>/delete_title.gif" border=0></td>
   </tr>
</table>


   <table width="200" border="0" cellspacing="0" cellpadding="5" align="center">
          <tr>
            <td><img src="<?echo("$iconDir")?>/password.gif" border=0 alt=password></td>
            <td><input type="password" name="passwd" size="10" maxlength="10"></td>
          </tr>
          <tr>
            <td colspan="2"><input type="image" src="<?echo("$iconDir")?>/ok.gif" name="Submit" value="ok" onClick="checkIt(this.form)" style="border:0;width:40;height:17;">
              <a href="javascript:history.go(-1);"><img src="<?echo("$iconDir")?>/cancel.gif" border=0></a></td>
          </tr>
        </table>


</form>

</body>
</html>








reply.php

<?        
##### 사용자 정의 함수 파일을 가져온다.
require_once("function.user.php");

##### 환경설정 파일을 불러온다. 환경설정파일은 "config.테이블명.php"이어야 한다.
$cfg_file = "config." . $code . ".php";
if(file_exists($cfg_file)) {
   require($cfg_file);
} else {
   error("NOT_FOUND_CONFIG_FILE");
   exit;
}

##### 사용자가 아무값도 입력하지 않았거나 입력한 값이 허용되지 않는 값일 경우 에러메시지를 출력하고 스크립트를 종료한다.
if(!ereg("([^[:space:]]+)", $name)) {
   error("NOT_ALLOWED_NAME");
   exit;
}

if(ereg("([^[:space:]]+)", $email) && (!ereg("(^[_0-9a-zA-Z-]+(\.[_0-9a-zA-Z-]+)*@[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*$)", $email))) {
   error("NOT_ALLOWED_EMAIL");  
   exit;
}

if(ereg("([^[:space:]]+)", $homepage) && (!ereg("http://([0-9a-zA-Z./@~?&=_]+)", $homepage))  ) {
   error("NOT_ALLOWED_HOMEPAGE");
   exit;
}

if(!ereg("([^[:space:]]+)", $subject)) {
   error("NOT_ALLOWED_SUBJECT");
   exit;
}

if(!ereg("(^[0-9a-zA-Z]{4,}$)", $passwd)) {
   error("NOT_ALLOWED_PASSWD");
   exit;
}

if(!ereg("([^[:space:]]+)", $comment)) {
   error("NOT_ALLOWED_COMMENT");
   exit;
}

##### 작업대상 데이터베이스를 선택한다.
$db = mysql_select_db($dbName);
if(!$db) {
   error("FAILED_TO_SELECT_DB");
   exit;
}

##### 원글의 입력값으로부터 답변글에 입력할 정보(정렬 및 indent에 필요한 thread필드값)를 뽑아낸다.
$query = "SELECT thread,right(thread,1) FROM $code WHERE fid = $fid AND length(thread) = length('$thread')+1 AND locate('$thread',thread) = 1 ORDER BY thread DESC LIMIT 1";
$result = mysql_query($query);
if(!$result) {
   error("QUERY_ERROR");
   exit;
}

$rows = mysql_num_rows($result);
if($rows) {        
   $row = mysql_fetch_row($result);          
   $thread_head = substr($row[0],0,-1);
   $thread_foot = ++$row[1];
   $new_thread = $thread_head . $thread_foot;
} else {
   $new_thread = $thread . "A";
}

$signdate = time();

##### 제목과 본문의 문자열에 포함된 특수문자를 escape시킨다.
$subject = addslashes($subject);
$comment = addslashes($comment);

##### 비밀번호란에 입력한 문자열을 암호화한다.
$encrypted_passwd = crypt($passwd);

##### 데이터베이스에 입력값을 삽입한다.
$query = "INSERT INTO $code (fid, name, email, homepage, subject, comment, passwd, signdate, ref, thread) VALUES ('$fid', '$name', '$email', '$homepage', '$subject', '$comment', '$encrypted_passwd', $signdate, 0, '$new_thread')";
$result = mysql_query($query);
if ($result) {
   if($notify_admin) {
  
      ########## 답변글이 등록되었을 때 보내는 메일이므로 $type은 "reply"
      $type = "reply";

      ########## 메일을 발송하는 스크립트를 불러온다.
      include "include.mail.php";
   }

   ##### 리스트 출력화면으로 이동한다.
   echo ("<meta http-equiv='Refresh' content='0; URL=list.php?code=$code&page=$page'>");
} else {
   error("QUERY_ERROR");
   exit;
}
?>











replyform.php

<?
##### 사용자 정의 함수 파일을 가져온다.
require_once("function.user.php");

##### 환경설정 파일을 불러온다. 환경설정파일은 "config.테이블명.php"이어야 한다.
$cfg_file = "config." . $code . ".php";
if(file_exists($cfg_file)) {
   require($cfg_file);
} else {
   error("NOT_FOUND_CONFIG_FILE");
   exit;
}

##### HTML 상단 페이지 파일을 불러온다.
require_once("include.header.php");
?>

<script language="javascript">
<!--
function checkIt(form) {      
   if(!form.name.value) {
      alert('이름을 입력하세요!');
      form.name.focus();
      return;
   }
   if(!form.subject.value) {
      alert('제목을 입력하세요!');
      form.subject.focus();
      return;
   }
   if(!form.passwd.value) {
      alert('비밀번호를 입력하세요!');
      form.passwd.focus();
      return;
   }
   if(!form.comment.value) {
      alert('메시지 본문을 입력하세요!');
      form.comment.focus();
      return;
   }      
            
   form.submit();
}
//-->
</script>

<body bgColor=<?echo("$BG_COLOR")?>>

<?
##### 페이지 상단에 방명록 타이틀 이미지를 출력한다.
//printTitleImage($code);

##### 작업대상 데이터베이스를 선택한다.
$db = mysql_select_db($dbName);
if(!$db) {
   error("FAILED_TO_SELECT_DB");
   exit;
}

##### 원글의 입력값을 뽑아낸다.
$query = "SELECT fid,name,subject,comment,thread FROM $code WHERE uid = $number";
$result = mysql_query($query);
if(!$result) {
   error("QUERY_ERROR");
   exit;
}
$row = mysql_fetch_row($result);

$my_fid = $row[0];
$my_name = $row[1];
$my_subject = $row[2];
$my_comment = $row[3];
$my_thread = $row[4];

##### 제목과 본문에 대하여 테이블에 저장할 때(post.php) addslashes() 함수로 escape시킨 문자열을 원래대로 되돌려 놓는다.
$my_subject = stripslashes($my_subject);
$my_comment = stripslashes($my_comment);

##### 원글자체가 다른 글의 응답글일 경우 문자열의 중복을 피하기 위해 "[RE]"를 없앤다.
$my_subject = eregi_replace("^\[RE\] ", "",$my_subject);

##### 원글과 답변글을 구분하기 위해 원글의 각 줄앞에 콜론(:)을 추가하여 출력한다.
$my_comment = ": " . $my_comment;
$my_comment = eregi_replace("\n", "\n:", $my_comment);

$reply_comment = "\n\n\n\n: ". $my_name . "님의 글입니다.\n\n" . $my_comment;
?>

<form name="signform" method="post" action="reply.php?code=<?echo("$code")?>&page=<?echo("$page")?>&fid=<?echo("$my_fid")?>&thread=<?echo("$my_thread")?>">
<table width="652" border="0" cellspacing="0" cellpadding="0" align="center" height="67">
  <tr>
    <td><img src="<?echo("$iconDir")?>/reply_title.gif" border="0"></td>
        <td height="60"> </td>
  </tr>
</table>
<table width="602" border="0" cellspacing="1" cellpadding="0" align="center">
<tr>
   <td>

   <table width="600" border="0" cellspacing="1" cellpadding="5" align="center">
   <tr>
      <td width="120" bgColor="<?echo("$FORM_ITEM_BG")?>" class="repl"><img src="<?echo("$iconDir")?>/name.gif" border="0"></td>
      <td width="480" bgColor="<?echo("$FORM_VALUE_BG")?>"><input type="text" name="name" size="30" maxlength="10"></td>
   </tr>
   <tr>
      <td bgColor="<?echo("$FORM_ITEM_BG")?>" class="repl"><img src="<?echo("$iconDir")?>/email.gif" border="0"></td>
      <td bgColor="<?echo("$FORM_VALUE_BG")?>"><input type="text" name="email" size="30" maxlength="40"></td>
   </tr>
   <tr>
      <td bgColor="<?echo("$FORM_ITEM_BG")?>" class="repl"><img src="<?echo("$iconDir")?>/homepage.gif" border="0"></td>
      <td bgColor="<?echo("$FORM_VALUE_BG")?>"><input type="text" name="homepage" size="30" maxlength="60"></td>
   </tr>            
   <tr>
      <td bgColor="<?echo("$FORM_ITEM_BG")?>" class="repl"><img src="<?echo("$iconDir")?>/title.gif" border="0"></td>
      <td bgColor="<?echo("$FORM_VALUE_BG")?>"><input type="text" name="subject" size="50" maxlength="40" value='[RE] <?echo("$my_subject")?>'></td>
   </tr>  
   <tr>
      <td bgColor="<?echo("$FORM_ITEM_BG")?>" class="repl"><img src="<?echo("$iconDir")?>/password.gif" border="0"></td>
            <td bgColor="<?echo("$FORM_VALUE_BG")?>"><input type="password" name="passwd" size="30" maxlength="10">
            </td>
   </tr>
   <tr>
      <td valign="top" bgColor="<?echo("$FORM_ITEM_BG")?>" class="repl"><img src="<?echo("$iconDir")?>/talk.gif" border="0"><p>
<?
##### 본문에 대한 HTML 태그의 허용여부 메시지를 출력한다.
// printAllowTagMsg($isTagAllowed);
?>
      </td>
            <td bgColor="<?echo("$FORM_VALUE_BG")?>">
              <textarea name="comment" cols="50" rows="10"><?echo("$reply_comment")?></textarea>
   </tr>
   <tr>
      <td align="center" colspan="2" bgColor="<?echo("$BG_COLOR")?>">
          <input type="image" src="<?echo("$iconDir")?>/ok.gif" name="Submit" value="ok" onClick="checkIt(this.form)" style="border:0;width:40;height:17;">
      <a href="javascript:history.go(-1);"><img src="<?echo("$iconDir")?>/cancel.gif" border="0">
      
      </td>
   </tr>
   </table>

   </td>
</tr>
</table>

</form>

</body>
</html>



  목록

 . 
 php 게시판 소스 2 
 php 게시판 소스 1 
 php 게시판 
 게시판 짜기위한 게시판 ^-^; 
 러닝 php 책소스    : 스터디
 php 폼 자동완성  비밀글입니다  : 폼테그
 디데이 d-day 만들기    : asp
 파일 include 하기    : 팁
 php 간단한 카운터    : 팁
 입력폼에서 엔터키 치면 스크립트 실행하기.    : 팁
 response체, request객체, server객체    : asp
 링크    : asp
 반복되는 링크 묶기    : asp
 ....  비밀글입니다  : 공지
 텟넷 명령어    : 팁
 텔넷 접속    : 팁
 간단한 방명록 소스    : 스터디
 사이트 [1]   : 팁
 mysql 기본설정    : MySql
 ssh    : 팁
 zterm    : 팁
 자바 키워드    : 팁
 자바개발 프로그램설치    : 팁
 [강의] 게시판 목록을 보여주는 부분입니다..    : 스터디
 while 문으로 이미지쉽게보이기 [2]   : 팁
 php 7-2    : 스터디
 php 7-1    : 스터디
 php 6    : 스터디
 php 5    : 스터디
 php4    : 스터디
 php3    : 스터디
 php2    : 스터디
 php1 [3]   : 스터디
 CREATE TABLE    : MySql
 SQL 1    : 스터디
 문단 양쪽정렬    : 스터디
 초간단 php 랜덤 이미지 및 랜덤 배경이미지 소스    : 팁
  [정보] 초보분들을 위한 PC부품 구매를 위한 도우미    : 팁
 쿠키를 이용한 사용자 인증    : 팁
 테이블 색 다르게 지정 하기 다른방법    : 팁
 자동링크 function    : 팁
 [리눅스] 리눅스 기본명령어 50    : 스터디
 my sql    : MySql
 Database의 구조    : 스터디
 데이터 베이스 1    : 스터디

    목록            1

Copyright 1999-2018 Zeroboard / skin by Yoojunge