티스토리 뷰

1) 데이터 전달 


> php로 만들어진 어플리케이션에 데이터 전달


1. php에는 미리 지정된 변수


  - super globals
     >특별한 변수
 - 설정을 통해서 일반 변수도 슈퍼글로벌 변수로 만들 수 있음
 
>> 데이터 전달 방식
 $_GET : get으로 보낸 데이터는 get 변숭 자동으로 만들어짐
  - GET 방식으로 보낸 데이터를 변수에 담겨있다
 $_POST : POST  방식으로 보낸 데이터가 담겨있다
  
 
>> 사용자 인증
 $_COOKIE
 $_SESSION
 
 $_SERVER
 $_REMOTE
 

 #vi input.php


<?php
  print_r($_SERVER)
?>




2. GET 방식으로 데이터를 보내는 방법



>예제 : html과 php를 함께 사용

  isset -> 해당 변수가 선언되었는지 안되었는지 확인 할 수 있는 명령어


# vi input.php


<!doctype html>
<html>
<head></head>
<body>
<?php
if(isset($_GET[age])&& isset($_GET[name])){
        echo"<p> name: $_GET[name] </p>";
        echo"<p> name: $_GET[age] </p>";
}else{
        echo"<p> input name and age </p>";
}
?>
</body>
</html>




 

 

 1) 한개의 변수  URL 을 통해 전달
  -> ?age=20
   >>100.100.100.133/input.php?age=20



  2 ) 변수가 여러개 있을 떄
          &로 구분함

      ex) ?age=20&name=jone

   >>192.168.59.128/input.php?age=20&name=jone
 - http 헤더를 통해서 전달이 된다
 - 변수이름이 key 값이 value 가 됨
    > 변수이름 : age,name  

    > value : 20/haeni





 - 정보가 쉽게 공개되기 때문에 보안에 취약
 - url 을 통해 전달 -> 데이터의 크기 제한
 
 - (URL)헤더를 통해 전달 하기 때문에 데이터의 크기도 정해져 있다
 - 편리하지만 보안에 굉장히 취약함
  -> 취약한 이유
   -쉽게 노출이 되기 때문이다
  -> 누구든지 값을 바꿀 수 있다



  
!! 일반 변수를 슈퍼 글로벌 변수처럼 쓸 수 있음
  - register_globals = Off -> register_globals = On 변경 


# vi /etc/php.ini


:693 



# service httpd restart 

//service 재시작해줘야 적용됨 



예제) 일반 변수를 슈퍼 글로벌 변수처럼 쓰는 예제 



#vi input.php


<?php
 echo $age;

?>



url>192.168.59.128/input.php?age=20
 >결과 




  192.168.59.128/input.php
  > 출력되지 않음


 

 
3. POST 방식으로 데이터 전달 방법 


 - GET 처럼 쉽게 보낼수 없지만  GET보다 안전하다
 - form 태그를 사용해서 전달이 가능
 - 헤더가 아닌 메세지 바디를 통해 전달
<form> : 입력형태를 지정하는 테그


! form의 주요 속성
 - action
 - method =GET | POST


#vi form.php

<!doctype html>
<html>
<head></head>
<body>
        <form action=input.php method=POST >
   // 상대 경로 input.php
                <input type=text name=name placeholder='name'><br>
        // 위에 놓으면 바로 변경가능
        // name속성   = 변수이름
        
                <input type=text name=age value='age'>
                <input type=submit value='send' //안의 값을 변경 >
     // input.php 속성에 직접 접근한다
     
        </form>
</body>
</html>

 



 #vi input.php


<!doctype html>
<html>
<head></head>
<body>
<?php
if(isset($_POST[age])&& isset($_POST[name])){
?>
        <p> name: <?php echo $_POST[name]?> </p>
        <p> age: <?php echo $_POST[age] ?></p>
<?php

}else{
?>
        <p>input name and age</p>
<?php
}
?>
</body>
</html>


 > F12 > NETWORK
  > POST 로 전달하면 http://192.168.59.128/input.php 나타남
  > GET 로 바꾸면 http://192.168.59.128/input.php?name=ddd&age=10 다 나타남
  

>192.168.59.128 /form .php 실행 



>name 과 age에 값 입력 

>input.php 로 넘어가면서 값 출력 (POST데이터 전달)



- post 형식에 get형식의 input.php이므로 값을 입력해도 나오지않는다
- post 형식이므로 input.php 도 post 형식으로 변환시켜준다


실습) input.php
 - 입력값이 있으면 입력받은 값을 출력하고
 - 없으면 입력폼을 출력한다


1) input.php 의 form 에 action='form.php'를 설정하면
 입력한 값이 form으로 넘어간다



2)
 

참고)
 '' : 문자열
 ' ': 문자열
 타입체크 gettype()


#vi input.php


<!doctype html>
<html>
<head></head>
<body>


<?php
if(isset($_POST[age])&& isset($_POST[name]) && $_POST[age]!=='' && $_POST[name]!==''){
?>
        <p> name: <?php echo $_POST[name]?> </p>
        <p> age: <?php echo $_POST[age] ?></p>
<?php

}else{
?>
        <p>input name and age</p>
        <form method=POST>
                <input type=text name=name placeholder='name'>
                <input type=text name=age placeholder='age'>
                <input type=submit value='send'>
        </form>
<?php
}
?>
</body>
</html>

 

 


>값을 입력하지 않았을때 


>알맞은 값을 입력했을 떄 (출력)



공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함