PHP & Others

register_globals=off

페이지 정보

본문

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()로 처리하면 가능

관련자료

등록된 댓글이 없습니다.
Today's proverb
남을 비난하는 것만큼 쉬운 일은 없다. 어떤 일이 그릇되었다는 것을 아는 데는 그리 많은 것이 필요하지 않다. 하지만 어떻게 하면 그것을 다시 바르게 할 수 있는가를 아는 데는 남다른 눈썰미가 있어야 한다. (빌 로저스)