묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
이런 에러가 나옵니다.
2002.08.31 01:32
Warning: Cannot send session cookie - headers already sent by (output started at /home/metalnation/public_html/login.htm:6) in /home/metalnation/public_html/login.php on line 52
Warning: Cannot send session cache limiter - headers already sent (output started at /home/metalnation/public_html/login.htm:6) in /home/metalnation/public_html/login.php on line 52
이런 에러가 나오는군요...
뭐가 잘못되어서 그런거죠?
가르쳐 주세요!
<?php
include "common_db.inc";
$register_script = "log.php";
function auth_user($userid, $userpassword)
{
global $default_dbname, $user_tablename;
$link_id = db_connect($default_dbname);
$query = "SELECT username FROM $user_tablename WHERE userid='$userid' AND userpassword=password('$userpassword')";
$result=mysql_query($query);
if(!mysql_num_rows($result)) return 0;
else
{
$query_data=mysql_fetch_row($result);
return $query_data[0];
}
}
function login_form()
{
global $PHP_SELF;
?>
<form method="POST" action="<? echo $PHP_SELF ?>">
<table width=100% border=0 cellspacing=0 cellpadding=0>
<tr>
<td align=left valign=top background="gif/right_bg_bg.gif">
<table border=0 cellspacing=0 cellpadding=0>
<tr>
<td><img src="gif/lo_id.gif"></td>
<td><input type="text" name="userid" size=8 style='width:80px; height:18px;'></td>
</tr>
<tr>
<td><img src="gif/lo_pass.gif"></td>
<td><input type="PASSWORD" name="userpassword" size=8 style='width:80px; height:18px;'></td>
</tr>
<tr>
<td align=center vliagn=middle colspan=2>
<input type=image src="gif/lo_login.gif" border=0 value="LOGIN" name="Submit"></td>
</tr>
<tr>
<td align=center vliagn=middle colspan=2><a href="join.htm"><img src="gif/lo_join.gif" border=0></a></td>
</tr>
</table>
</td>
<td background="gif/right_bg_bg.gif" align=right width=100%><img src="gif/right_bg.gif"></td>
</tr>
</table>
</form>
<?
}
session_start(); <---------52라입니다.
if(!isset($userid))
{
login_form();
exit;
}
else
{
session_register("userid","userpassword");
$username=auth_user($userid, $userpassword);
if(!$username)
{
session_unregister("userid");
session_unregister("userpassword");
echo "인증실패." . "올바른 회원ID와 비밀번호가 아닙니다." . "다음 링크를 클릭해 다시 로그인 하세요.<br>n";
echo "<a href="$PHP_SELF">로그인</a><br>";
echo "회원이 아니시라면" . "다음 링크를 클릭해 회원가입을 해주세요.<BR>n";
echo "<a href="$register_script">회원등록</a>";
exit;
}
else echo "$username 님 어서오세요!";
}
?>
Warning: Cannot send session cache limiter - headers already sent (output started at /home/metalnation/public_html/login.htm:6) in /home/metalnation/public_html/login.php on line 52
이런 에러가 나오는군요...
뭐가 잘못되어서 그런거죠?
가르쳐 주세요!
<?php
include "common_db.inc";
$register_script = "log.php";
function auth_user($userid, $userpassword)
{
global $default_dbname, $user_tablename;
$link_id = db_connect($default_dbname);
$query = "SELECT username FROM $user_tablename WHERE userid='$userid' AND userpassword=password('$userpassword')";
$result=mysql_query($query);
if(!mysql_num_rows($result)) return 0;
else
{
$query_data=mysql_fetch_row($result);
return $query_data[0];
}
}
function login_form()
{
global $PHP_SELF;
?>
<form method="POST" action="<? echo $PHP_SELF ?>">
<table width=100% border=0 cellspacing=0 cellpadding=0>
<tr>
<td align=left valign=top background="gif/right_bg_bg.gif">
<table border=0 cellspacing=0 cellpadding=0>
<tr>
<td><img src="gif/lo_id.gif"></td>
<td><input type="text" name="userid" size=8 style='width:80px; height:18px;'></td>
</tr>
<tr>
<td><img src="gif/lo_pass.gif"></td>
<td><input type="PASSWORD" name="userpassword" size=8 style='width:80px; height:18px;'></td>
</tr>
<tr>
<td align=center vliagn=middle colspan=2>
<input type=image src="gif/lo_login.gif" border=0 value="LOGIN" name="Submit"></td>
</tr>
<tr>
<td align=center vliagn=middle colspan=2><a href="join.htm"><img src="gif/lo_join.gif" border=0></a></td>
</tr>
</table>
</td>
<td background="gif/right_bg_bg.gif" align=right width=100%><img src="gif/right_bg.gif"></td>
</tr>
</table>
</form>
<?
}
session_start(); <---------52라입니다.
if(!isset($userid))
{
login_form();
exit;
}
else
{
session_register("userid","userpassword");
$username=auth_user($userid, $userpassword);
if(!$username)
{
session_unregister("userid");
session_unregister("userpassword");
echo "인증실패." . "올바른 회원ID와 비밀번호가 아닙니다." . "다음 링크를 클릭해 다시 로그인 하세요.<br>n";
echo "<a href="$PHP_SELF">로그인</a><br>";
echo "회원이 아니시라면" . "다음 링크를 클릭해 회원가입을 해주세요.<BR>n";
echo "<a href="$register_script">회원등록</a>";
exit;
}
else echo "$username 님 어서오세요!";
}
?>
간단하게 예를 들어 보면
<html>
<body>
<?
session_start();
?>
</body>
</html>
위 소스를 실행하면 님의 에러와 똑같은 걸 볼수가 있습니다.
session_start() 함수를 호출하기 전에 이미 1행에서 <html> 태그를
브라우저에 출력했기 때문에 에러가 나는 것입니다. 따라서
이 함수를 사용하기 전에는 어떠한 문구도 출력을 하면 안됩니다.
책을 가지고 공부 하세요... 인터넷만으로 절대로 공부가 되지 않습니다.
어떤 PHP 책이라도 위 이유가 다 나와 있는데.......