alert 와 die 사용 질문있습니다
본문
사이트가 회원레벨말고도 각 게시판별로 구분할게 많이 있어서
파일을 하나 만들고 그 파일을 상단에 위치시켜서 권한처리를 하고 있습니다.
대략 소스는 아래와 같은 형식들이 들어가 있구요
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
// 에러 모드를 정의 (예: '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)
실제 운영 환경에 맞게 추가적인 보완만 잘 이루어진다면 안정적으로 작동할 것이라 합니다.
!-->에러나는 부분부터 수정해야 하지 않을까요?
질문이 이해되지 않습니다. 에러나는걸 수정하지 않고 결과처리를 하면
원치 않는 결과가 나오거나 다음 결과도 에러가 날수 있습니다.
그래서 살펴보니 alert 형태로 뿌리면 에러나도 die 로 해야하더라구요
이 부분도 이해가 가질 않구요.
die 처리시 사용자가 이후 어떤 내용에 대해서 오류인지 알수가 없습니다.
그냥 죽어버리기 때문에...
중요 변수나 파라미터 전달이 안되었다면 if 로 분기하여 사용자에게 알려주는게 좋습니다.