티스토리 뷰

출처: http://aramjo.blog.me/120057442870

세개의 웹페이지들이 있고 각각 jsp 2개 , php 1개인데 다른 DB를 쓰고 있는데 종류는 Mysql로 같구요.  jsp 로 된 페이지(통합로그인 페이지)에서 로그인 하면 나머지 jsp , php 로 된 페이지에서도 같이 로그인 되게 하려고 합니다.

 

 통합로그인 페이지에서 세션을 생성하면 다른 페이지 2개에서도 그 세션값을 받아서 로그인할 수 있도록 하는 방법을 알고 싶네요.

 

 소스를 어떻게 만들어야 할지도 정확히 모르겠어요.  자세한 개념과 소스설명도 좀 부탁드릴께요. 내공 이빠이 겁니다. ^^

 
 
re: jsp, php에서 같은 세션으로 로그인하기
 
질문자인사 늦게 채택해서 죄송합니다. 감사합니다.

제가 전에 관리하던 쇼핑몰 사이트도 PHP , JSP 로 구성이 되어있었는데요.

자바 세션을 그대로 PHP 에서 이용을 할 수 있는 방법 혹은 그 반대의 방법은 모릅니다.

아마도 JSP 와 PHP 의 세션을 공유하는 것은 불가능 하지 않을까 생각이 됩니다.

실제 JSP  와 PHP 의 세션 구조도 매우 다릅니다. JSP 는 세션이 클래스이기 때문에 단순히 문자열 이외에 다른 여러 객체들도 세션에 넣을 수 있습니다. 하지만  PHP  는 그것을 사용할 수 없지요..또 불가능 한 이유는 세션은 서버단에 생성이 되는데 자바 세션은 Servlet 엔진에서 자바 클래스 형태로 생성이 될 것이기 때문에 PHP 처리 모듈에서 자바 클래스로 된 세션을 사용할 수 없을것 이기 때문입니다.

 

제가 전에 사용한 방법은 로그인 처리 페이지를 JSP 로그인 처리 페이지에서 자바 세션 처리를 한 후 response.sendRedirect  로 PHP 페이지로 넘겨 다시 PHP 페이지에서 PHP 세션 처리를 해 주는 방식으로 운영을 했습니다.

 

JSP 로그인 폼 페이지 -> JSP 로그인 처리 페이지 (세션 처리) -> PHP 로그인 처리 페이지 (세션처리) -> 로그인 완료 페이지 (혹은 파라미터로 전달한 페이지URL)

 

원하시는 답변이 아닐수도 있겠습니다만.. 도움이 되셨길 빕니다.

 

+ -----------------------------------------------------------------[답변내용 추가]

답변내용 추가라는 기능은 없군요..

지금 현재 일하는곳에서는 JSP 를 사용하지 않는지라.. 소스를 작성하려면 JSP 환경을 만들어야 하는 부담이 TT 그래서 간단하게 개념만 작성해 드립니다.

 


/**

form.html ( 로그인 하는 페이지 입니다.-  jsp 던 php 던 상관 없습니다.)

*/

<form action="login_ok.jsp" method="post">

<input type="text" name="mem_id">

<input type="text" name="password">

<input type="submit" value="로그인">

</form>


/**

login_ok.jsp

*/

String mem_id = request.getParamter("mem_id");

String password = request.getParameter("password");

boolean login_ok = false;

/**

아이디와 비밀번호가 맞는지 확인

맞으면 login_ok 를 true 로 설정

*/

if (login_ok){

session.setAttribute("session_mem_id", mem_id);

session.setAttribute("session_password", password);

out.println ("");

out.prinltn ("<form name='frm1' action='login_ok.php' >");

out.println ("<input type='hidden' name='mem_id' value='"+mem_id+"'>");

out.println ("<input type='hidden' name='password' value='"+password+"'>");

out.println ("</form>");

out.println ("<script> document.frm1.submit();</script>");

}else{

response.sendRedirect ("login_err.html");

}


login_ok.php

session_start();

login_ok = 0;

/**

아이디와 비밀번호가 맞는지 확인

맞으면 login_ok 를 1 로 설정

*/

if (login_ok) {

$session_mem_id = $mem_id;

$session_password = $password;

session_register("session_mem_id");

session_register("session_password");

}

echo ("<script>location.href='login_complete.html'</script>");


login_complete.html

<?session_start()?>

<?=$mem_id?> 님께서 로그인 하셨습니다.


 

 

가장 기본적인 원리만 기재했습니다. 테스트 해 본것이 아니라 오류도 있을수 있으나 그정도는 고치실 수 있을것 같습니다.

여기에 로그인 하셨을 때 세션에 넣어야 할 여러 값들 처리를 하시고

중간에 파라미터 넘길때 좀 더 보강하시면 될 것 같습니다.

jsp 페이지에서는 session.getParameter("session_mem_id") 를 이용하셔서 로그인 여부 및 회원 아이디를 인출해서 사용하시고

php 및 html 페이지에서는 처음에 session_start() 하신 후 $session_mem_id 를 참조하시면 됩니다.

좀 더 편하게 사용하시려면 히든 프레임을 만들고 세션 처리 페이지를 만드셔서 세션 처리 페이지에서 세션을 등록 할 때 히든 프레임을 타겟으로 JSP , PHP 모두 세션처리를 하실 수도 있을것 같습니다. 여튼 방법은 여러가지이나 공통된 것은 JSP, PHP 모두 별도로 처리를 해 주셔야 한다는것 입니다.

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크