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

관련자료

댓글 0
등록된 댓글이 없습니다.
Today's proverb
우리의 꿈은, 뒤에 오는 사람들이 우리를 딛고 우리 위에서 이루게 하는 것입니다. 나는 평생을 창조적인 작업을 위해서 살아왔습니다. 누가 하라고 해서 한 것이 아니라 그것이 나의 삶 그 자체의 즐거움이었기 때문입니다. 현실을 직시하며 현재의 수준을 유지하라. 그리고 더 먼 곳을 향하는 시야를 가져라.