티스토리 뷰
반응형
기본적으로 0과 ''은 비교가 될수없다 ''는 문자열이고 0은 숫자이기 때문에
사이트에서 불규칙하게 권한 문제가 생기는 현상이 있어서 그걸 원인 파악하느라 며칠을 고생했는데
파일 흐름 따라 변수 하나씩 강제로 디버그 출력해보고 하다 발견함
아래의 코드를 php 버전에 따라서 출력시켜보면 기본 논리가 아예 다름
<?php
if(''<0){
echo "현재 조건을 if(''<0){ 으로 주었는데 출력된다";
echo "<br>";
};
// PHP 버전 출력
echo 'PHP version: ' . phpversion() . "<br>";
?>
<?php
// 출력할 코드 작성
$code = <<<'CODE'
<?php
if('' < 0){
echo "현재 조건을 if(''<0){ 으로 주었는데 출력된다";
echo "<br>";
}
// PHP 버전 출력
echo 'PHP version: ' . phpversion() . "<br>";
?>
CODE;
// 코드 자체를 HTML로 출력
echo "<h3>PHP Code:</h3>";
highlight_string($code);
// 실행 부분
echo "<h3>PHP Execution Output:</h3>";
eval(substr($code, 5)); // '<?php' 제거 후 eval 실행
?>
애초에 변수에 어떤 값이 들어갈지는 전체 코드에서 하나하나 파악해야하는건데
마이그레이션에서 생기는 문제라기 보다는 애초에 버전문제래서 버전 바꾸는게 빠름
적어도 변수가 수천개는 넘을거고 if 조건도 천개는 넘을텐데 그때마다 조건에 맞춰서
숫자와 문자가 비교되는 경우의 에러처리를 사이트에서 코드로 잡는건 불가능하다고 봄.
물론 처음부터 8.x에서 시작해서 만들었다면 가능하겠지만 이건
기본 논리인 숫자와 문자는 비교할 수 없다를 뚫어버린 문제래서
마치 휘발유엔진을 등유차에 달고 싶다고 하는 수준의 문제임
그냥 타협해서 7..x로 내려야한다.
php5.x 에서 php8.x로 이사인데 귀찮아서가 아니라 비용과 시간을 제공한다면 어찌되던 해결하겠지만
한정된 자원이라면 7.x로 가도 문제없다.
애초에 결제사에서 7.2 이상버전을 요구한 것이니까.
반응형
'프로그래밍' 카테고리의 다른 글
킴스큐 php 버전 업그레이드 마이그레이션 서버이사 작업 설명 (1) | 2024.10.30 |
---|---|
php8에서 숫자와 변수 비교 . php업그레이드 . 사이트이사 (3) | 2024.10.28 |
모바일에서 이미지클릭만 되고 다운받기는 안되게 하고싶을때 (0) | 2024.10.22 |
쇼피파이 api로 주문내역에서 통관번호 가져오기,송장번호 업데이트. (0) | 2024.08.27 |
크롬 확장프로그램 background.js에서현재 열려있는 탭의 페이지의 dom에 접근해서 특정 값 popup.html로 에 div를 추가해서 전달 (0) | 2024.05.24 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 셀레니움
- php8
- xe
- 파이선
- 그누보드5
- 파이썬
- Magisk
- Fullcalendar
- 그누보드
- Apache
- 윈도우
- 유튜브
- python
- lsposed
- 회원가입
- 에러
- php
- 제로보드
- 텔레그램봇
- 텔레그램
- 당근
- Cloudflare
- 루팅
- .htaccess
- 아파치
- 클라우드플레어
- SSL
- 멀티계정
- 아미나
- 오토셋
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함