보통 flask를 사용해서 페이지를 렌더링할때 가이드나 redit에서는 render_template('이름.html',url_parameter="value") 형태로 많이 설명하지만 URL에 노출된다는 문제도 있고, jquery를 사용해도 되긴하지만 코드가 쓸데없이 길어지는 느낌이 많이 들기 시작했다.
import subprocess @app.route() def test(): result = subprocess.check_output(['php' , './test.php' , 'test1' , 'test2']) return result |
Flask코드에 위에와 같이 작성하면 php렌더링이 실행되고, 총 2개의 값이 test.php로 전달된다.
'test1','test2' 물론 flask는 json이나 기본 타입들의 데이터만 전송이 가능하지만 보통 json형태로 데이터를 주고 받기 때문에 큰 문제는 아닌것 같다.
전달받은 데이터를 사용하는 방법은 다음과 같다.
1) Javascript에 전달받은 php값 사용하기
<?php $value_1=$argv[1] ?> <script> var test = "<?php echo $value_1; ?>"; </script> |
또는
2) 다이렉트로 바로 사용하기
<body> <h2> <?php $value_1=$argv[1]; echo $value_1; ?>의 값은 다음과 같습니다. </h2> </body> |
이때 argv[n]; 에서 n의 값은 1부터 시작이다.
총 2개의 데이터를 전송받았으니 argv[1], argv[2] 형태로 사용하면 된다.
php를 사용할때 발생할 수 있는 보안 취약점들을 공부 해야겠다.
728x90
반응형
'프로그래밍 > 홈페이지 제작기' 카테고리의 다른 글
[라즈베리파이 / raspberrypi]라즈베리파이 원격 연결 후 웹 브라우저가 깨져보일때 해결방법(chromium) (1) | 2024.01.14 |
---|---|
[Flask]Gunicorn으로 flask 실행하기[header.server CVE] (0) | 2023.08.30 |
[Server]Disk 사용률 100% 급증 원인파악하기 + 해결하기 (0) | 2023.04.13 |
[Task Manager]Disk 사용률 활성화 하기(display disk usage) (0) | 2023.04.13 |
[데이터베이스(mysql)] 기본설정하기 (0) | 2022.07.20 |