문제 화면

 

페이지 소스코드

preg_match
첫 번째 인수 : 정규식 표현 작성
두 번째 인수 : 검색 대상 문자열
세 번째 인수 : 배열 변수 반환. 패턴 매치에서 매칭된 값을 배열로 저장
반환값 : 매칭에 성공하면 1, 실패하면 0이 반환

 

id의 값에 admin 문자열이 포함되면 no!를 출력하고

id에 admin을 입력했을 때

 

id에 admin이 직접적으로 포함되지 않았을 때, urldecode()를 통해 디코딩하고 있다.

그리고 나서 id의 값이 "admin"이면 풀리는 문제!

 

 

그러면 우리는 id에 url방식으로 encoding된 admin의 값을 넣어주면 되겠다.

입력

이렇게 입력해줬더니 id에 그냥 admin을 입력했을 때와 같은 결과가 나왔다.

 

 

왜일까?

웹 서버와 브라우저 사이에서 데이터를 교환할때

브라우저는 폼에서 입력받은 데이터를 자동으로 인코딩한 값으로 보내고 php 는 자동으로 디코딩 하는 성질이 있다.

따라서 입력 값에 대한 디코딩을 두번하게 되는 것이므로 우리도 인코딩을 두번 해주면 된다.

 

이 값을 입력해주면 되겠다.
성공

+ Recent posts