묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
이곳 nzeo 사이트처럼 로그인 페이지를 구현하려 하는데 잘 되질 않아서 질문 드립니다.
2003.04.04 17:37
이곳 php 강의게시판에서 강의를 보고 소스를 다운받았습니다.
하지만 정작 이것을 저의 홈페이지에 구현을 하려니 잘 되질 않아서 이곳에 질문 올립니다.
제가 받은 소스는 이곳 관리자님께서 강의하신 것인데 아래와 같구요.
테스트용이긴 하지만 현재 저의 데이터베이스에는 id 와 pass 라는 이름으로 입력이 되어있습니다
그래서 제 것에 맞도록 수정을 해봤는데 순간적으로 나타났다가 사라지는 에러메시지 (can not sent header information....모 이런거)가 뜨면서 에러가 납니다 제가 강의파일을 변형해서 에러나는 파일을 적어놓겟습니다.
무엇이 잘못된 것인지 지적좀 부탁합니다
***************************************************************
이곳 강의 파일 소스
***************************************************************
<?
//액션 부분
if($action == "add") {
//액션이 추가모드일 때
if($cookie) {
setcookie("test2",$cookie,1);
echo("<meta http-equiv='refresh' content='0;url=$PHP_SELF'>");
} else {
echo("<form name='test2' action='$PHP_SELF' method='get'>
<input type='hidden' name='action' value='add'>
이름: <input type='text' name='cookie'><input type='submit' value='완료'></form>");
}
} elseif($action == "del") {
//액션이 삭제모드일 때
setcookie("test2");
echo("<meta http-equiv='refresh' content='0;url=$PHP_SELF'>");
} else {
//액션 없음
if($HTTP_COOKIE_VARS["test2"]) {
echo($HTTP_COOKIE_VARS["test2"]."님 환영합니다!<br>
| <a href='$PHP_SELF?action=del'>이름 삭제</a> | <a href='$PHP_SELF?action=add'>이름 수정</a> |");
} else {
echo("손님 환영합니다!<br>| <a href='+ '+ '$PHP_SELF?action=add'>이름 입력</a> |");
}
}
?>
*****************************************************************
수정파일 소스
****************************************************************
<?
include "top.html";
$connect = mysql_connect("localhost","root","비밀번호");
mysql_select_db("db명",$connect);
$query = "select * FROM board where id='$id' AND pass='$pass'";
$result = mysql_query($query,$connect);
$row = mysql_fetch_array($result);
//액션 부분
if($action == "add") {
//액션이 추가모드일 때
if($cookie) {
setcookie("id",$cookie,1);
echo("<meta http-equiv='refresh' content='0;url=$PHP_SELF'>");
} else {
echo("<form name='id' action='$PHP_SELF' method='get'>
<input type='hidden' name='action' value='add'>
이름: <input type='text'+ ' name='cookie'><input type='submit' value='완료'></form>");
}
} elseif($action == "del") {
//액션이 삭제모드일 때
setcookie("id");
echo("<meta http-equiv='refresh' content='0;url=$PHP_SELF'>");
} else {
//액션 없음
if($HTTP_COOKIE_VARS["id"]) {
echo($HTTP_COOKIE_VARS["id"]."님 환영합니다!<br>
| <a href='$PHP_SELF?action=del'>이름 삭제</a> | <a href='$PHP_SELF?action=add'>이름 수정</a> |");
} else {
echo("손님 환영합니다!<br>| <a href='$PHP_SELF?action=add'>이름 입력</a> |");
}
}
include "bottom.html";
?>
하지만 정작 이것을 저의 홈페이지에 구현을 하려니 잘 되질 않아서 이곳에 질문 올립니다.
제가 받은 소스는 이곳 관리자님께서 강의하신 것인데 아래와 같구요.
테스트용이긴 하지만 현재 저의 데이터베이스에는 id 와 pass 라는 이름으로 입력이 되어있습니다
그래서 제 것에 맞도록 수정을 해봤는데 순간적으로 나타났다가 사라지는 에러메시지 (can not sent header information....모 이런거)가 뜨면서 에러가 납니다 제가 강의파일을 변형해서 에러나는 파일을 적어놓겟습니다.
무엇이 잘못된 것인지 지적좀 부탁합니다
***************************************************************
이곳 강의 파일 소스
***************************************************************
<?
//액션 부분
if($action == "add") {
//액션이 추가모드일 때
if($cookie) {
setcookie("test2",$cookie,1);
echo("<meta http-equiv='refresh' content='0;url=$PHP_SELF'>");
} else {
echo("<form name='test2' action='$PHP_SELF' method='get'>
<input type='hidden' name='action' value='add'>
이름: <input type='text' name='cookie'><input type='submit' value='완료'></form>");
}
} elseif($action == "del") {
//액션이 삭제모드일 때
setcookie("test2");
echo("<meta http-equiv='refresh' content='0;url=$PHP_SELF'>");
} else {
//액션 없음
if($HTTP_COOKIE_VARS["test2"]) {
echo($HTTP_COOKIE_VARS["test2"]."님 환영합니다!<br>
| <a href='$PHP_SELF?action=del'>이름 삭제</a> | <a href='$PHP_SELF?action=add'>이름 수정</a> |");
} else {
echo("손님 환영합니다!<br>| <a href='+ '+ '$PHP_SELF?action=add'>이름 입력</a> |");
}
}
?>
*****************************************************************
수정파일 소스
****************************************************************
<?
include "top.html";
$connect = mysql_connect("localhost","root","비밀번호");
mysql_select_db("db명",$connect);
$query = "select * FROM board where id='$id' AND pass='$pass'";
$result = mysql_query($query,$connect);
$row = mysql_fetch_array($result);
//액션 부분
if($action == "add") {
//액션이 추가모드일 때
if($cookie) {
setcookie("id",$cookie,1);
echo("<meta http-equiv='refresh' content='0;url=$PHP_SELF'>");
} else {
echo("<form name='id' action='$PHP_SELF' method='get'>
<input type='hidden' name='action' value='add'>
이름: <input type='text'+ ' name='cookie'><input type='submit' value='완료'></form>");
}
} elseif($action == "del") {
//액션이 삭제모드일 때
setcookie("id");
echo("<meta http-equiv='refresh' content='0;url=$PHP_SELF'>");
} else {
//액션 없음
if($HTTP_COOKIE_VARS["id"]) {
echo($HTTP_COOKIE_VARS["id"]."님 환영합니다!<br>
| <a href='$PHP_SELF?action=del'>이름 삭제</a> | <a href='$PHP_SELF?action=add'>이름 수정</a> |");
} else {
echo("손님 환영합니다!<br>| <a href='$PHP_SELF?action=add'>이름 입력</a> |");
}
}
include "bottom.html";
?>
댓글 4
-
TheMics
2003.04.04 18:14
-
오한호
2003.04.04 18:51
아고 관리자님께서 직접 답변주셨네요.^^
감사합니다.
관리자님 말씀대로 추가해주니 에러메시지는 없어졌습니다.
하지만 또 데이터 베이스 연동하는 부분도 제가 잘못 구현 한 것 같습니다
데이터 베이스에 입력되지 않은 아이디를 입력해도 데이터 베이스에 입력된 아이디를 입력 한 것처럼 똑같이 실행이 되는데 이것을 어떤식으로 구현 해야하는지요?
가령 이곳 nzeo 처럼 회원가입한 사람이 아이디와 비번을 입력하면
refresh 되면서 "이름" 님 환영합니다 라고 출력되지않습니까?
그것을 말씀드리는 겁니다.
관리자님이 아니더라도 이글보시는분중 아시는분 부탁좀 드리겠습니다. -
특급잠수부
2003.04.04 19:10
<?
if ($mode == 'login')
{
if (!empty($_POST[id]) && !empty($_POST[pw]))
{
$sel_q = "select * from TBL where id = '$_POST[id]'";
$sel_s = mysql_query($sel_q,$conn) or die(mysql_error());
$sel_num = mysql_num_rows($sel_s);
if ($sel_num == 0)
{
echo ("<script>alert('회원정보가 없습니다.'); history.go(-1);</script>");
exit;
}
else
{
$sr = mysql_fetch_array($sel_s);
if ($sr[password] == $_POST[pw])
{
setcookie("cookie_id",$_POST[id],0,'/');
$title_msg = $_POST[id]."님 반갑습니다.";
echo ("<script>alert($title_msg); location.href='/index.php'; </script>");
}
else
{
echo ("<script>alert('비밀번호 인증실패.'); history.go(-1);</script>");
exit;
}
}
}
else
{
echo ("<script>alert('유효하지 못한 접근입니다.');history.go(-1);</script>");
}
}
else
{
?>
로그인폼
<?
}
?> -
TheMics
2003.04.04 19:13
관리자라고 부르지 마세요..부담스러워요^^저도 답변하는 한 사람일 뿐입니다.
그렇게 하시려면 더욱 간단합니다. 아웃로그인 스킨에서 해도 되구요, 별도로 하려면
<?
if($member[no]) echo("$member[name]님 환영합니다");
?>
라고 해주면 됩니다.
<?
ob_start();
include "top.html";
......
이렇게요. top.html 안에 출력 부분이 있어서 그런겁니다.