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
이슬비가 내리고 있다. 당신은 밖에 나가서 우산을 편다. 그것으로 충분하다.“구질구질하게 또 비가 오는군!” 이런 말을 한들 무슨 소용이 있는가. 비도, 구름도, 바람도 결코 마음대로 되지 않는데 어째서 “비 한번 시원스럽게 내리는군”하고 말하지 못하는가. <<날마다 행복해지는 255가지 이야기>> (알랭)