$_SERVER['PHP_SELF']
- 셀프. 즉, 자기 자신 PHP를 나타낸다.
- 즉, $_SERVER['PHP_SELF']을 사용하는 페이지가 test.php 면 test.php 경로 자체를 가지고 온다.
- 이것은 보통 form에서 action에 주로 사용한다. 이러면, 실행중인 PHP를 다시 호출한다.
<form id="register-form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="email" name="usr_email" placeholder="Email" class="form-control" />
<input type="text" name="usr_name" placeholder="Email" class="form-control" />
</form>
이렇게 주로 작성한다. 나도 그냥 갖다 붙여서 잘 모르고 사용헀다.
그런데 만약에 PHP에서 사용하던 변수를 계속 사용하려면 어떻게 할까?
서버측에서(php포함) header를 사용하여 location으로 페이지를 이동한다.
그래서 다음과 같이 URL 뒤에 변수 = 값을 사용하는 GET방식으로 변수를 보내고 싶었다.
header("Location: ../index.php?number=$num");
이렇게 했는데 아무리 해도 주소창에
index.php?number=
으로 나오며 해당 페이지가 나오지 않았다... 왜 값을 가져오지 못하는것일까.
검색을 하다가 form에 의문을 갖게 되었고, 이때서야 의미를 알지 못하던
$_SERVER['PHP_SELF']에 대해 검색해봤다.
그 결과,
https://stackoverflow.com/questions/18747843/pass-get-variables-when-using-serverphp-self
여기서 발견. 어이없이 action을 비워두라는 답변. 해봤는데 오 된다.
<form action="" method="POST">
정확한 문법, 왜 그러지는지는 아직 잘 모르곘다.
아마 해당 PHP파일로만 이동(위의 경우 /index.php로) 만 보내고 GET 파라미터를 무시하는것이
아닌가하는 생각을 해본다.
※결론※
어쨋거나 form 태그 속성 중 action에 $_SERVER['PHP_SELF']을 집어넣는 경우
GET 파라미터들이 무시되며 null? 공백? 으로 나온다는 것을 알게 되었다.
'서버 > PHP' 카테고리의 다른 글
DB등에서 불러온 날짜를 원하는대로 자르기 (0) | 2017.09.02 |
---|---|
PHP에서 자바스크립트 함수 호출하는 방법 (0) | 2017.07.31 |
날짜 표시 형식 변경하기 date() 함수 (0) | 2017.04.04 |
PHP MySQL select where문 작성하는 방법 (0) | 2017.01.23 |
문자열과 변수 합치기(결합하기) (0) | 2017.01.19 |