묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
로그인 질문입니다.
2004.07.08 18:07
http://www.ywa.go.kr/temp/login.zihttp://www.ywa.go.kr/book/login_form.php하나 보고 나면 하나가 에러,,,,,정말 힘들군요
이번엔 로그인 에러가 나서 질문드립니다. php 고수 따라~ 이 책보고 하다가 머리 터지겠습니다.
아래 질문에서도 책에 있는 그대로 소스 쓴 부분이 에러나서 3일동안 고생시키더니
어제부터 로그인 하는데 에러가 오늘까지 고생시킵니다.
이책 다보고나서 항의글 보내야 할까 봐요
우선 이 에러문 좀 봐주세요.
링크 해 놓은 곳을 한번 봐주시고요, login 파일소스도 링크해 놓았습니다.
---로그인 하는 창 페이지입니다.---
아이디, 패스워드는 임시로 test, test로 해 놓았습니다.
디비는 관리자 기능만 할꺼니까 간단하게
---------------------
userid ㅣ password
test ㅣ test
--------------------- 이렇게 만들었습니다.
그리고 로그인 폼 소스는 다음과 같습니다.
login_form.php
<?
include_once("../book/session.php");
include_once("../book/dbcon.php");
if ($session_userid!="") {
echo "
<script>
location.replace('../book/login_success.php');
</script>
";
die;
}
?>
<html>
<head>
<title></title>
<meta http-equiv=Content-Type content=text/html; charset=euc-kr>
<link href='../book/ywa.css' rel='stylesheet' type='text/css'>
</head>
<body leftmargin='0' topmargin='0' marginwidth='0' marginheight='0'>
<br>
<br>
<table width='500' border='0' align='center' cellpadding='5' cellspacing='0' bgcolor='#EBDBF2' style='border:0px #333333 solid;border-top-width:3px;'>
<tr>
<td><b>관리자 페이지</b></td>
</tr>
</table>
<br>
<table width='500' border='0' align='center' cellpadding='0' cellspacing='0'>
<tr>
<td class=td1 align='center'>이곳은 관리자가 정보수정하는 곳입니다.</td>
</tr>
</table>
<br>
<form action='../book/login_engine.php' method='post' name='login_form' id='login_form' style='margin:0px;' onSubmit='return checkForm(this.form);'>
<table width='500' border='0' align='center' cellpadding='5' cellspacing='0'>
<tr>
<td width='195' align='right' bgcolor='#EFD8F1'> <font color='#FF0000'>*</font>
아이디</td>
<td width='282' bgcolor='#E8E8E8'> <input name='userid' type='text' id='userid' size='20' style='border:1px #333333 solid;width:100px;height:20px;'>
</td>
</tr>
<tr>
<td align='right' bgcolor='#EFD8F1'> <font color='#FF0000'>*</font>
암호</td>
<td bgcolor='#E8E8E8'> <input name='password' type='password' id='password' size='20' style='border:1px #333333 solid;width:100px;height:20px;'>
</td>
</tr>
</table>
<br>
<table width='500' height='40' border='0' align='center' cellpadding='0' cellspacing='0' bgcolor='#EBDBF2' style='border:0px #333333 solid;border-bottom-width:3px;'>
<tr>
<td align='center'>
<input type='submit' name='Submit' value='인증'>
<input type='reset' name='Reset' value='취소'>
</td>
</tr>
</table>
</form>
<script>
function checkForm(theForm) {
if (theForm.userid.value=="") {
alert("아이디를 입력하십시오.");
theForm.userid.focus();
return false;
} else {
return true;
}
}
</script>
</body>
</html>
그리고 login_engine.php 소스입니다.
<?
include_once("../book/session.php");
include_once("../book/dbcon.php");
$sql = "select * from book_info where userid='$userid'";
$res = mysql_query($sql);
if ($res) $rs = mysql_fetch_array($res);
if ($rs[userid]==$userid && $userid!="") {//아이디 일치
if ($rs[password]==md5($password)) {//암호 일치
$session_userid = $rs[userid];//인증완료
echo "
<script>
location.replace('../book/login_success.php');
</script>
";
} else {//암호오류
echo "
<script>
alert('[인증실패] 암호가 올바르지 않습니다.');
location.replace('../book/login_form.php');
</script>
";
}
} else {//아이디 오류
echo "
<script>
alert('[인증실패] 아이디가 올바르지 않습니다.');
location.replace('../book/login_form.php');
</script>
";
}
?>
여기서 끝나면 로그인 성공화면 으로 넘어가고요.
어디가 잘못 됐나요
아래 답변해주신 것 같이 ", ' (콤마)가 잘못 돼서 그렇나 해서 html 소스에 있는 " 는 다 ' 로 다 바꿨고요
php소스는 어떤걸 바꿔야 할지 몰라서요
어디가 잘못 된것인지 다시 한번 더 부탁합니다.
이번엔 로그인 에러가 나서 질문드립니다. php 고수 따라~ 이 책보고 하다가 머리 터지겠습니다.
아래 질문에서도 책에 있는 그대로 소스 쓴 부분이 에러나서 3일동안 고생시키더니
어제부터 로그인 하는데 에러가 오늘까지 고생시킵니다.
이책 다보고나서 항의글 보내야 할까 봐요
우선 이 에러문 좀 봐주세요.
링크 해 놓은 곳을 한번 봐주시고요, login 파일소스도 링크해 놓았습니다.
---로그인 하는 창 페이지입니다.---
아이디, 패스워드는 임시로 test, test로 해 놓았습니다.
디비는 관리자 기능만 할꺼니까 간단하게
---------------------
userid ㅣ password
test ㅣ test
--------------------- 이렇게 만들었습니다.
그리고 로그인 폼 소스는 다음과 같습니다.
login_form.php
<?
include_once("../book/session.php");
include_once("../book/dbcon.php");
if ($session_userid!="") {
echo "
<script>
location.replace('../book/login_success.php');
</script>
";
die;
}
?>
<html>
<head>
<title></title>
<meta http-equiv=Content-Type content=text/html; charset=euc-kr>
<link href='../book/ywa.css' rel='stylesheet' type='text/css'>
</head>
<body leftmargin='0' topmargin='0' marginwidth='0' marginheight='0'>
<br>
<br>
<table width='500' border='0' align='center' cellpadding='5' cellspacing='0' bgcolor='#EBDBF2' style='border:0px #333333 solid;border-top-width:3px;'>
<tr>
<td><b>관리자 페이지</b></td>
</tr>
</table>
<br>
<table width='500' border='0' align='center' cellpadding='0' cellspacing='0'>
<tr>
<td class=td1 align='center'>이곳은 관리자가 정보수정하는 곳입니다.</td>
</tr>
</table>
<br>
<form action='../book/login_engine.php' method='post' name='login_form' id='login_form' style='margin:0px;' onSubmit='return checkForm(this.form);'>
<table width='500' border='0' align='center' cellpadding='5' cellspacing='0'>
<tr>
<td width='195' align='right' bgcolor='#EFD8F1'> <font color='#FF0000'>*</font>
아이디</td>
<td width='282' bgcolor='#E8E8E8'> <input name='userid' type='text' id='userid' size='20' style='border:1px #333333 solid;width:100px;height:20px;'>
</td>
</tr>
<tr>
<td align='right' bgcolor='#EFD8F1'> <font color='#FF0000'>*</font>
암호</td>
<td bgcolor='#E8E8E8'> <input name='password' type='password' id='password' size='20' style='border:1px #333333 solid;width:100px;height:20px;'>
</td>
</tr>
</table>
<br>
<table width='500' height='40' border='0' align='center' cellpadding='0' cellspacing='0' bgcolor='#EBDBF2' style='border:0px #333333 solid;border-bottom-width:3px;'>
<tr>
<td align='center'>
<input type='submit' name='Submit' value='인증'>
<input type='reset' name='Reset' value='취소'>
</td>
</tr>
</table>
</form>
<script>
function checkForm(theForm) {
if (theForm.userid.value=="") {
alert("아이디를 입력하십시오.");
theForm.userid.focus();
return false;
} else {
return true;
}
}
</script>
</body>
</html>
그리고 login_engine.php 소스입니다.
<?
include_once("../book/session.php");
include_once("../book/dbcon.php");
$sql = "select * from book_info where userid='$userid'";
$res = mysql_query($sql);
if ($res) $rs = mysql_fetch_array($res);
if ($rs[userid]==$userid && $userid!="") {//아이디 일치
if ($rs[password]==md5($password)) {//암호 일치
$session_userid = $rs[userid];//인증완료
echo "
<script>
location.replace('../book/login_success.php');
</script>
";
} else {//암호오류
echo "
<script>
alert('[인증실패] 암호가 올바르지 않습니다.');
location.replace('../book/login_form.php');
</script>
";
}
} else {//아이디 오류
echo "
<script>
alert('[인증실패] 아이디가 올바르지 않습니다.');
location.replace('../book/login_form.php');
</script>
";
}
?>
여기서 끝나면 로그인 성공화면 으로 넘어가고요.
어디가 잘못 됐나요
아래 답변해주신 것 같이 ", ' (콤마)가 잘못 돼서 그렇나 해서 html 소스에 있는 " 는 다 ' 로 다 바꿨고요
php소스는 어떤걸 바꿔야 할지 몰라서요
어디가 잘못 된것인지 다시 한번 더 부탁합니다.
댓글 7
-
태엽푸는새
2004.07.09 09:00
test,test 로 안되는데요 -
전상규
2004.07.09 09:44
바로 그게 문제입니다.
에러메세지가 뜨고 인증을 받지 못해서요
왜 그런지 그 이유를 몰라서 문의드린겁니다. -
전상규
2004.07.09 10:02
로그인 하는데 사용하는 파일 모두 올려 놓았습니다. 다운받아서 한번 검토 좀 해주세요
~.zip으로 올리니까 다운이 되지 않네요. 그래서 뒤에 p를 빼고 올렸습니다. p 붙이고 압축 풀어주세요
부탁합니다. -
stub363
2004.07.09 12:31
저 같은 경우...
$l_password = md5($l_password); //입력받은 패스워드 암호화
$member_info = mysql_query("select * from stub_member where member_id='$l_id' and member_password='$l_password'");
$info_member = mysql_fetch_array($member_info);
if(!$info_member) { //아이디 or 비밀번호가 일치하지 않는경우
echo "<script> window.alert('아이디나 비밀번호가 맞지 않습니다.'); history.go(-1) </script>";
exit;
}else { //일치하는 경우
setcookie("member_id","$l_id"); //쿠키 생성
setcookie("member_password","$l_password"); //쿠키 생성
$HTTP_COOKIE_VARS["member_password"] = md5($HTTP_COOKIE_VARS["member_password"]);
echo "<meta http-equiv='Refresh' content='0; URL=test.php'>";
}
---
저 같은 경우 이런식으로 로그인 처리합니다. 한 번 참고해보세요 -_-)a -
전상규
2004.07.09 17:11
stub363님/ 죄송합니다. 저도 코드는 겨우 이해할 정도고 응용은 생각도 못합니다.
그래서 콤마하나 틀려도 찾지를 못하지요, 답변 주신것은 고마운데요 그냥 제 소스에서 수정할 수 있는 방법 부탁합니다.....아님 님의 소스를 쓰려면 어떻게 사용해야 하는지요......죄송 -
stub363
2004.07.09 20:01
$rs[password] = md5($rs[password]); //입력받은 패스워드 암호화
$member_info = mysql_query("select * from book_info where where userid='$userid'");
$info_member = mysql_fetch_array($member_info);
if(!$info_member) { //아이디 or 비밀번호가 일치하지 않는경우
echo "<script> window.alert('아이디나 비밀번호가 맞지 않습니다.'); history.go(-1) </script>";
exit;
}else { //일치하는 경우
echo "<meta http-equiv='Refresh' content='0; URL=../book/login_success.php'>";
}
-----------------------
본문 소스에 맞게 조금 수정해 봤습니다.
제가 작성한 예에서는 쿠키를 사용하지 않고 인증확인되면 바로 페이지 이동하게 되어있습니다. -
태엽푸는새
2004.07.09 22:50
db.con.php 가 없어서.. 올려주신 소스로는 확인할 수가 없을듯..
소스에는 이상이 없는 듯 하구요..
login_engine.php에서 POST값($_POST[userid],$_POST[password])이 제대로 넘어왔는지, DB에서 제대로 값이 도착했는지 검사해보면 알수 있지 않을까요.. alert()을 사용하거나 그냥 출력되게 해서요..
그리고 login_success.php에서 세션을 체크하는 문장때문에.. 다른 소스로 대처하는건 불가능할것 같습니다.
성공하시길...