session에 관해.. -_-;
본문
if(mysql_num_rows($result))
{
$member_id=$row[0];
$member_pwd=$row[1];
$member_name=$row[2];
$member_email=$row[3];
$member_level=$row[4];
if($member_pwd==$passwd)
{
session_register("member_id", "member_name", "member_email", "member_level");
}
로그인 페이지에서 세션을 등록해 줬습니다.
이후 세션을 체크하는 파일을 하나 만들어서 require했습니다.
/*chk_login.php*/
<?
session_start();
if(!$HTTP_SESSION_VARS["member_id"])
{
echo "
<script>
alert('회원전용 메뉴!');
history.go(-1);
</script>";
exit;
}
?>
요놈을 페이지에서 require하는데 먹지를 안네용 -_-;;
<?
require "./chk_login.php";
include "../common/connect.php";
$result=mysql_query("select * from message where rid='$member_id' order by no desc");
$row=mysql_num_rows($result);
?>
-------이후 html하고..등등등.
지가 무식한지라 세션을 그냥 기본적으로 tmp/아래에 생성시켰구요.
register해준 값들은 잘 들어가 있는데도 ㅠ.ㅠ
세션체크를 이런방식으로 해야되는건가도 잘 몰르겠고..
이런방법으로 하는게 맞는건지도 궁금하구요.
고수분들 소스를 봐도 분석이 안되고...여러가지로 모잘랍니당.
그럼 답변 부탁드립니다
답변 3
require 가있는 부분에서
화일 처음에 session_start(); 한번 써보세요
사용하신 $HTTP_*_VARS 변수는 아마 php.ini 설정 즉, 해당 변수를 사용할 수 있게 해 주는 설정(register_long_arrays)이 off가 기본으로 변경됐습니다(php 4.2부터).
지금 사용하시는 php 버전이 얼만지 모르겠지만 http://php.net/manual/en/ini.core.php#ini.register-long-arrays 여기 보시면 5.4부터는 아예 제거가 된다고 하니 참고하시면 될 것 같네요.
$HTTP_SESSION_VARS 이걸 $_SESSION으로 바꿔서 사용해 보세요.
$HTTP_SESSION_VARS['member_id'] => $_SESSION['member_id']
HTTP_SESSION_VARS 는 php 4.1 버전에서 deprecated 되었습니다.
SESSION 으로 사용해주세요.
http://php.net/manual/kr/reserved.variables.session.php
$_SESSION