$_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? 공백? 으로 나온다는 것을 알게 되었다.

Posted by sungho88
,

<?php 


// php코드


?> 이것은 php 문법임을 나타내는 기호이다.


이 안에서, 자바스크립트 코드를 출력하고 싶다면? 또는 함수를 호출하고 싶다면 어떻게 해야 할까?


눈에 볼 수 있도록 출력해주는 명령어는 echo이다.


그리고, echo 뒤에 자바스크립트 코드를 넣주면 된다. 굉장히 더티하게 보일 수 있고, 

비효율적으로 보이기도 한다.

만약, 자바스크립트에서는 


alert("출력하고 싶은 문장");


만 작성하면 alert 경고창이 뜬다. 하지만, PHP에서의 경우에는 허용하지 않는다.


1. 만약 alert창을 PHP에서 띄우고 싶다면 어떻게 할까?


<?php echo "<script>alert('삭제되었습니다');</script>"; ?>


이렇게 echo 안에 스크립트 태그부터 열고 닫고 한 뒤, 안에 코드를 직접 입력해야 한다.


2. 만약, 자바스크립트 함수를 실행하고 싶다면 어떻게 할까?


동일하다.


<?php echo("<script language='javascript'>function_test();</script>"); ?>


이렇게 작성하면 자바스크립트 함수가 실행된다.


Posted by sungho88
,

홈페이지를 만들다보니 SQL문을 종종 짜야할 때가 있다.

이번에는 게시물 하단에 LIST를 구현하는데, 해당 게시물을 중심으로 -5개부터 +5개를 만들었다.

이 경우 어떤 범위 내에 값을 DB로부터 끌고와야 하는데, 이 역할을 하는 문법이 바로 BETWEEN이다

단어의 뜻을 알면 당연하다.


WHERE id BETWEEN 시작값 AND 끝값


이렇게 작성하면 DB에 저장된 id값들 중 시작값부터 끝값까지 조건에 맞는 값만 추출해낼 수 있다.

만약,  현재 보고있는 게시물을 중심으로 5번째 이전 게시물부터 5번째 이후 게시물까지 보고싶다면


$sql01 = 'select * from student_table where id between ' .$bno. '-5 and ' .$bno.'+5';


이렇게 작성하면 된다. 이 문장의 의미는


student_table 테이블에서 id 속성을 현재 글 번호 bno에서 -5한 값부터 +5한 값까지 불러오는 코드다.

이렇게 하면 해당 게시물을 기준으로 상단, 하단으로 5개씩 리스트가 생기게 된다.


참고로, echo에서 php 변수를 HTML 태그와 혼용하는 경우에는 다음과 같이 작성한다

 

echo "<b>{$title}</b>";


이렇게 하면 title 변수를 b태그 처리 한 뒤, echo로 출력해준다.

Posted by sungho88
,