채택완료

alert 와 die 사용 질문있습니다

2025-02-27 (목) 15:04:12 1,886

사이트가 회원레벨말고도 각 게시판별로 구분할게 많이 있어서 

파일을 하나 만들고 그 파일을 상단에 위치시켜서 권한처리를 하고 있습니다.

대략 소스는 아래와 같은 형식들이 들어가 있구요

if( preg_match("/write_update.php$/", $_SERVER['PHP_SELF']) || preg_match("/write_comment_update.php$/", $_SERVER['PHP_SELF']) ){

    if($cnt == 0) alert('접근이 불가합니다');

}

위와같은 조건문이 많이 있구요

대부분 잘 작동하나 간혹 에러나는 부분이 있더라구요

그래서 살펴보니 alert 형태로 뿌리면 에러나도 die 로 해야하더라구요

이러면은 중복파일을 2개를 만들어서 하나는 alert 하나는 die 이렇게 해서 각각 넣어줘야하나요?

파일위치를 바꾼다든지 다른반향으로 한다던지 방법이 있나요?

|

답변 2개 / 댓글 3개

채택된 답변
+20 포인트
Copy
// 에러 모드를 정의 (예: 'alert' 또는 'die')
define('ERROR_MODE', 'alert'); // 혹은 'die'

// 에러 처리 함수
function handleError($message) {
    if (ERROR_MODE === 'alert') {
        echo "<script>alert('{$message}'); history.back();</script>";
        exit; // 반드시 스크립트 종료
    } else {
        die($message);
    }
}

// 사용 예
if (preg_match("/write_update.php$/", $_SERVER['PHP_SELF']) || preg_match("/write_comment_update.php$/", $_SERVER['PHP_SELF'])) {
    if ($cnt == 0) {
        handleError('접근이 불가합니다');
    }
}

프로젝트의 에러 처리 로직을 중앙집중화하는 측면에서 좋은 접근 방식 같습니다!(Good idea)

실제 운영 환경에 맞게 추가적인 보완만 잘 이루어진다면 안정적으로 작동할 것이라 합니다.

답변에 대한 댓글 2개

2025-02-27 (목) 16:04:26
답변 감사합니다.
die 로 해야하는 파일이 많지 않아서
die 해야하는 파일에만 define('ERROR_MODE', ''); 이렇게 정의하고 하면
위에방법대로 해야겠네요 답변 감사합니다. 좋은 방법 터득하고 갑니다
저도, 한 수 배워갑니다. (●'◡'●)
2025-02-27 (목) 15:29:25

에러나는 부분부터 수정해야 하지 않을까요?

질문이 이해되지 않습니다. 에러나는걸 수정하지 않고 결과처리를 하면 

원치 않는 결과가 나오거나 다음 결과도 에러가 날수 있습니다.

그래서 살펴보니 alert 형태로 뿌리면 에러나도 die 로 해야하더라구요

이 부분도 이해가 가질 않구요.

die 처리시 사용자가 이후 어떤 내용에 대해서 오류인지 알수가 없습니다.

그냥 죽어버리기 때문에...

중요 변수나 파라미터 전달이 안되었다면 if 로 분기하여 사용자에게 알려주는게 좋습니다.

답변에 대한 댓글 1개

2025-02-27 (목) 16:06:13
제 질문문법이 이상하여 전달이 좀 잘못된것같습니다.
에러난다는것이
die 하면 정상이구요
alert로하면 화면이 조금 깨진다는 거였습니다.

그래서 die해야하는 페이지도 전부 alert 했을떄처럼 동일하게 나오길 원한거였습니다

답변을 작성하려면 로그인이 필요합니다.