register_globals=off
컨텐츠 정보
- 19,385 조회
- 0 추천
-
목록
본문
register_globals=off 시에 PHP5이상에서 POST GET REQUEST 사용시 주의할점을 써보겠습니다.
아직많은 인터넷 자료나 책들이 구버전으로 남아있어서 php5이상쓰시는분들은 처음에 좀 당황을 할 수 있기때문에 써보겠습니다. (사실제가 몇일동안 고생했기 때문에 ㅠㅠ)
- 우선 IF문
인터넷이나 책을 보면 if(!$id) 이런구문을 많이봅니다만
if(!$_POST['id']) { } 이런식으로 id가 있는지 물어봐야합니다.
같은 방법으로 GET이나 REQUEST도 해야합니다
if(!$_GET['id']) { }
if(!$_REQUEST['id']) { }
- INSERT UPDATE등 SQL문에서 사용법
기존의 $sql="insert into member(id, passwd, name) values('$id','$passwd','$name')"; 대신에
$sql="insert into member(id, passwd, name)";
$sql.="values('".$_POST['id']."','".$_POST['passwd']."','".$_POST['name']."');
이런식으로 POST로 하나씩 받아주는게 좋습니다
TIP : SQL문을 작성할때
1. while 문으로 앞페이지에서 정확한데이터가 넘어왔는지 확인해보세요!!
while (list($key,$val) = each($_REQUEST))
{ echo $key . " = " . $val . "<br>"; }
2. echo $sql; 을 써서 정확한데이터를 DB로 보내는지 확인해보세요!!
- 추가 내용 EXTRACT
이렇게 모든 변수명에 붙이시기 힘들땐 앞에
extract($_POST);
extract($_GET);
extract($_REQUEST);
를 붙여도 됩니다.
- 추가내용 REGISTER_GLOBAL=ON vs. REGISTE_GLOBAL=OFF
register_globals = on
가능 -> $_POST['user_name']
가능 -> $user_name
register_globals = off
가능 -> $_POST['user_name']
불가능 -> $user_name // 다만 extract()로 처리하면 가능
관련자료
-
링크