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;
?>
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;
}
위의 변수가 비어있기 때문에 나오는 메시지군요..
정상적으로 데이터가 넘어가고 있나요?
if( !$name || !$subject || !$passwd || !$article )
{
error( "입력값이 부족합니다." );
exit;
}
위의 변수가 비어있기 때문에 나오는 메시지군요..
정상적으로 데이터가 넘어가고 있나요?
write_db.php에
echo "$name"; 이렇게 해 보니
넘어온 데이터가 보입니다.
echo "$name"; 이렇게 해 보니
넘어온 데이터가 보입니다.
headers already sent .........이 에러는
functions.inc 화일 32행 이전에 공백이던 무엇이던 출력이 있기 때문입니다
Cannot redeclare is_url_valid() ........이 에러는
같은 함수가 두번 들어가있다는 말입니다
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;
}
function forward($url)
{
header("Location:".$url); //32행
}
그리고 write_db.php에는 이 함수가 한번만 사용되고 있습니다.
if ( $homepage && !is_url_valid( $homepage ) )
{
error( "홈페이지를 잘못 입력하셨습니다." );
exit;
}