DB에 데이터가 입력되질 않는군요[사례있음] > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

DB에 데이터가 입력되질 않는군요[사례있음] 정보

DB에 데이터가 입력되질 않는군요[사례있음]

본문

"입력값이 부족합니다" 와 함께 아래의 메시지가 출력되며,
DB에 데이터가 입력되질 않는군요.
정확한 원인을 찾아주시면 사례하겠습니다^^

Warning: Cannot modify header information - headers already sent by (output started at C:\inetpub\wwwroot\0\config.cfg:16) in C:\inetpub\wwwroot\0\functions.inc on line 32
Fatal error: Cannot redeclare is_url_valid() (previously declared in C:\inetpub\wwwroot\0\functions.inc:3) in C:\inetpub\wwwroot\0\functions.inc on line 9


#-------------------------- write.php--------------------------------#
<?PHP include( "./functions.inc" ); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
<!--

<?PHP include( "./common_style.inc" ); ?>

.ques_head
{
  background-color : #F9E79D;
  text-align : center;
}

.input_td
{
  background-color : #FEFCE2;
}
-->
</style>
<title>게시판</title>
</head>
<body>
<form name="write_form" method="post" action="write_db.php">
<center>
<table>
  <tr>
    <td class="ques_head">글쓴이</td>
    <td class="input_td">
      <input type="text" name="name" size="10" maxsize="10">
    </td>
  </tr>
  <tr>
    <td class="ques_head">e-mail</td>
    <td class="input_td">
      <input type="text" name="email" size="40" maxsize="50">
    </td>
  </tr>
  <tr>
    <td class="ques_head">홈페이지</td>
    <td class="input_td">
      <input type="text" name="homepage" size="40" maxsize="50">
    </td>
  </tr>
  <tr>
    <td class="ques_head">암호</td>
    <td class="input_td">
      <input type="password" name="passwd" size="10" maxsize="10">
    </td>
  </tr>
  <tr>
    <td class="ques_head">제목</td>
    <td class="input_td">
      <input type="text" name="subject" size="50" maxsize="255">
    </td>
  </tr>
  <tr>
    <td class="ques_head">내용</td>
    <td class="input_td"><textarea name="article" cols="60" rows="20"></textarea>
  </tr>
</table>
<table>
  <tr>
    <td width="100"> </td>
    <td align="center"><input type="submit" value="입력"></td>
    <td width="100" align="right">
      <a href="<?=dest_url( "./list.php", $page )?>">목록</a>
    </td>
  </tr>
</table>
</center>
</form>
</body>
</html>

-------------------------------------write_db.php-----------------------------------------

<?PHP
  include( "config.cfg" );
  include( "functions.inc" );
/*
$name=$HTTP_POST_VARS["name"];
$subject =$HTTP_POST_VARS["subject "];
$passwd =$HTTP_POST_VARS["passwd "];
$article =$HTTP_POST_VARS["article "];
*/

$name =$_POST['name'];
$subject =$_POST['subject'];
$passwd =$_POST['passwd'];
$article =$_POST['article'];


  #------------------- 앞뒤 스페이스 제거 ----------------#
  $name = trim( $name );
  $email = trim( $email );
  $homepage = trim( $homepage );
  $subject = trim( $subject );
  $writedate = date( "y-m-d" );
  $article = trim( $article );

  #------------------ 입력값 이상유무 확인 ----------------#
  if( !$name || !$subject || !$passwd || !$article )
  {
    error( "입력값이 부족합니다." );
    exit;
  }
  #---------------- 간단한 이메일 이상유무 확인 --------------#
  if ( $email && !is_email_valid( $email ) )
  {
    error( "이메일을 잘못 입력하셨습니다." );
    exit;
  }

  #------------- 간단한 홈페이지 이상유무 확인 ----------------#
  if ( $homepage && !is_url_valid( $homepage ) )
  {
    error( "홈페이지를 잘못 입력하셨습니다." );
    exit;
  }
 
  #------------------ 암호 encrpt ---------------------#
  $passwd = substr( md5( trim( $passwd ) ), 0, 10 );

  #----------------- 데이타베이스 연결 -------------------#
  $connect = mysql_connect( "localhost", "user", "password" );

  mysql_select_db( "db", $connect );
 
  #---------------- uid, gid, depth 결정 -------------------#
  $query = "select MAX( gid ) as gid from t_board";
  $result = mysql_query( $query, $connect );
  $gid = current(mysql_fetch_array( $result ));
  $gid = $gid + 1;
 
  #----------------- 테이블에 글 삽입 --------------------#
 $query = "INSERT INTO t_board VALUES('$_POST[gid]', '$_POST[name]', '$_POST[email]', '$_POST[homepage]', '$_POST[passwd]', '$_POST[subject]', '$_POST[article]', '$_POST[writedate]','$_POST[refnum]')";

  //$query = "insert into t_board ( gid, name, email, homepage, passwd, subject, article, writedate ) values ( '$gid', '$name', '$email', '$homepage', '$passwd', '$subject', '$article', '$writedate' )";

  mysql_query( $query, $connect );
  mysql_close( $connect );
 
  forward( "list.php" );
?>



-------------------------------------functions.inc-----------------------------------------

<?PHP
  #------- homepage 이상유무 체크  ----------#
  function is_url_valid( $url )
  {
    if ( eregi( "[a-z0-9]+\.[a-z0-9_]+", $url ) )
      return TRUE;
    else
      return FALSE;
  }


  #---------- email 이상유무 체크  ----------#
  function is_email_valid( $email )
  {
    if( eregi( "^[a-z0-9\._-]+@[a-z0-9\._-]+\.[a-z]+", $email ) )
      return TRUE;
    else
      return FALSE;
  }
 
  #------------------ error 처리 함수 --------------------#
  function error( $msg )
  {
    echo("
    <script language=\"javascript\">
      alert( \"$msg\" );
      history.back();
    </script>" );
  }
 
  #---------------- forwarding 처리 함수 ------------------#
  function forward( $url )
  {
    header( "Location:".$url );
    //echo( "<meta http-equiv='Refresh' content='0'; URL=list.html" );
  }

  #--------------- 링크를 만들어 주는 함수 ------------------#
  function dest_url( $link, $page, $uid=NULL )
  {
      GLOBAL $kind;
      GLOBAL $key;

      $link .= "?page=$page";
      if ( $uid )
        $link .= "&uid=$uid";
      if ( $key )
        $link .= "&kind=$kind&key=$key";
      return $link;
  }

?>
-------------------------------------reply_db.php-----------------------------------------

<?PHP
  include( "config.cfg" );
  include( "functions.inc" );

  #------------------- 앞뒤 스페이스 제거 ----------------#
  $name = trim( $name );
  $email = trim( $email );
  $homepage = trim( $homepage );
  $subject = trim( $subject );
  $writedate = date( "y-m-d" );
  $article = trim( $article );

  #------------------ 입력값 이상유무 확인 ----------------#
  if( !$name || !$subject || !$passwd || !$article )
  {
    error( "입력값이 부족합니다." );
    exit;
  }
 
  #--------------- 간단한 이메일 이상유무 확인 ---------------#
  if ( $email && !is_email_valid( $email ) )
  {
    error( "이메일을 잘못 입력하셨습니다." );
    exit;
  }

  #-------------- 간단한 홈페이지 이상유무 확인 ---------------#
  if ( $homepage && !is_url_valid( $homepage ) )
  {
    error( "홈페이지를 잘못 입력하셨습니다." );
    exit;
  }
 
  #------------------ 암호 encrpt ---------------------#
  $passwd = substr( md5( trim( $passwd ) ), 0, 10 );

  #------------------ 데이타베이스 연결 ------------------#
  $con = mysql_connect( "localhost", "user", "password" );
  mysql_select_db( "PHP", $con );
 
  #----------------- gid, depth 결정 --------------------#
  $gid = trim( $gid );
  $depth = trim( $depth );
  $query = "select max( depth ) depth from
    board where depth like '$depth%' and gid=$gid";
  $result = mysql_query( $query, $con );
  $row = mysql_fetch_array( $result );
 
  if( $row[depth] != $depth )
    $depth = $depth.chr( ord( substr( $row[depth], -1 ) ) + 1 ) ;
  else
    $depth = $depth."A";

  #--------------- 테이블에 글 삽입 ----------------------#
  $query = "insert into board
    ( gid, depth, name, email, homepage, passwd, subject, article, writedate )
    values ( $gid, '$depth', '$name', '$email', '$homepage',
    '$passwd', '$subject', '$article', '$writedate' )";
 
  mysql_query( $query, $con ) or die ( mysql_error() );
  mysql_close( $con );
  forward( "./list.php" );
?>



-----------------------------------config.cfg-----------------------------------------------
<?PHP
# 한페이지에 나타나는 글의 수
$rows_page = 10;

# list의 하단에 나타나는 직접 이동할 수 있는 페이지 수
$direct_pages = 10;

# html tag의 허용 유무
$tag_enable = FALSE;

# list에 나타나는 제목의 길이제한
$row_length = 42;

# 읽기에서 보여지는 제목의 길이 제한
$subject_length = 65;

?>
  • 복사

댓글 전체

#------------------ 입력값 이상유무 확인 ----------------#
  if( !$name || !$subject || !$passwd || !$article )
  {
    error( "입력값이 부족합니다." );
    exit;
  }

위의 변수가 비어있기 때문에 나오는 메시지군요..
정상적으로 데이터가 넘어가고 있나요?
headers already sent .........이 에러는
functions.inc 화일 32행 이전에 공백이던 무엇이던 출력이 있기 때문입니다

Cannot redeclare is_url_valid() ........이 에러는
같은 함수가 두번 들어가있다는 말입니다
functions.inc 화일 32행이라면 아래 내용인데, 이해가 가지 않습니다.

function forward($url)
{
header("Location:".$url);  //32행
}

그리고 write_db.php에는 이 함수가 한번만 사용되고 있습니다.

  if ( $homepage && !is_url_valid( $homepage ) )
  {
    error( "홈페이지를 잘못 입력하셨습니다." );
    exit;
  }
© SIRSOFT
현재 페이지 제일 처음으로