나는 사람들 (일반적으로 좋은 코드를 작성하는 사람들) $_POST
이 다음과 같은 코드로 배열을 직접 변경하는 것을 보았습니다 .
// Add some value that wasn't actually posted
$_POST['last_activity'] = time();
// Alter an existing post value
$_POST['name'] = trim($_POST['name']);
// Our pretend function
// Pass the entire $_POST array as data to work with in the function
// The function update_record() will read only the values we actually need
update_record($_POST);
// ...That sure was easier than creating a new array
// with only the $_POST values we actually need.
예를 들어 update_record()
$ _POST에 직접 액세스해서는 안되므로 예를 들어 다른 데이터 배열을 전달할 수 있지만 게 으르거나 디자인이 잘못되었거나 잘못되었을 수 있습니다. 그러나 우리는 여전히 유효한 배열을에 전달하고 update_record()
있습니다. 왜 새로운 배열을 생성합니까?
이것은 질문의 요점이 아니며 사용법의 예일뿐입니다. 그러나 많은 사람들이 이것이 $_REQUEST
데이터 로 수행되어서는 안된다고 말하는 것을 들었습니다 . 그런데 왜? 무해 해 보입니다.
예 :
$_GET
실제로 존재하지 않는 기본 (또는 포스트) 값 설정$_POST
양식 제출 후 실제로 게시되지 않은 값 추가스크립트 초기에
$_GET
배열 값 또는 키를 직접 위생 처리 또는 필터링합니다 (대체 위생 ... 왜 그렇지 않습니까?)$_POST
양식 제출 전에 수동으로 값을 설정하여 입력을 기본값으로 채 웁니다 (입력이 기본값을 읽으면$_POST
이 작업을 수행함)당신의 자신의
$_SERVER
가치를 만들어? 물론이지?어떻게 같은 다른 약
$_COOKIE
및$_SESSION
? 물론 우리는 그것들을 직접 수정해야합니까? 그렇다면 왜 다른 사람들은 그렇지 않습니까?
수정 지시해야 슈퍼 전역은 결코 수행되지, 또는에서 할 OK입니다 어떤 경우?