한 페이지 내에서는 SESSION 두번이상 하면 오류가 발생하는 이유가 뭘까요? > 출간도서 Q&A

본문 바로가기

출간도서 Q&A

일반글
PHP&MySQL

한 페이지 내에서는 SESSION 두번이상 하면 오류가 발생하는 이유가 뭘까요?

페이지 정보

게시물QR코드

본문

login.php에서 

아이디 검사 후 (if~ else) 세션 생성을 하는 것은 이해 하는데,


좀 변형을 해서,

로그인 후 화면에서 

"OOO 님 환영합니다." 를 표기하기 위해,


<?php

$mb_id = $_SESSION['ss_mb_id'];

  $sql = " SELECT * FROM member WHERE mb_id = '$mb_id' "; // 회원 정보를 조회

$result = mysqli_query($conn, $sql);

$mb = mysqli_fetch_assoc($result);

mysqli_close($conn); //

 ?>

  <h1><?php

  $mb_name = $mb['mb_name'];

  echo $mb_name;


  ?> 님 환영합니다.</h1>


  <?php

  //$mb_id = $_SESSION['ss_mb_id'];


  //$sql = " SELECT * FROM member WHERE mb_id = TRIM('$mb_id')";

  //$result = mysqli_query($conn, $sql);

  //$mb = mysqli_fetch_assoc($result);


  //mysqli_close($conn);

   ?>


이렇게 <H1> 태그 이전에 한번 써 줬는데.... 서버에러(500)가 났습니다.
(위의 예제는 아래를 주석처리 한 것입니다.)

문1) 페이지 하나에서는 세션을 한번'만' 생성가능한 건가요? 변수를 같은 이름으로 지정하더라도 에러가 나는지?
문2) 동일 페이지 내에서는 변수이름은 하나만 써야 하는지, (위에서 $mb = mysqli_fetch_assoc($result);) 라고 하고,
    아래에서 다시 $mb = mysqli_fetch_assoc($result); 라고 하면 에러가 나는 건가요?
문3) login 이후에는 $mb_id = $_SESSION['ss_mb_id']; 라고 쓰는 대신  "session_start();" 로 만 하면 되는가요?
문4) mysqli_close($conn); 는 $sql 할 때마다 닫아줘야 하는지, 변수지정 된 것은 닫고 나서도 그 페이지 내에서만 영향을 받는지 궁금합니다.

댓글목록

그누위즈님의 댓글

그누위즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일

해당 전체 소스를 보아야 왜 에러가 발생했는지 추측이 가능할 듯합니다.
해당 .php 파일을 압축하셔서
gnuwiz@naver.com 이메일로 첨부 부탁드립니다.

  • Addr.부산광역시 동구 중앙대로 319, 9층 L4호(초량동, 부산YMCA빌딩) Email. gnuwiz@naver.com
  • BR. 625-68-00172 TRC. 2019-부산해운대-1186 TEL. 0507-1382-2790
All rights reserved.