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
행복의 원칙은 첫째 어떤 일을 할 것. 둘째 어떤 사람을 사랑할 것. 셋째 어떤 일에 희망을 가질 것이다. (칸트)