회원가입은 잘 되는데 회원가입 후 페이지가 작동하지 않습니다. 오류
본문
정보 작성하고 회원가입 누르면 완료페이지로 못넘어가고
페이지가 작동하지 않습니다.라는 오류가 뜹니다.
근데 또 막상 로그인해보면 입력한 정보로 가입은 잘되어있어요 왜 그럴까요 ㅠㅠ?
답변 3
bbs 폴더 안의 register 글자 들어가는 파일과 사용중인 회원가입스킨에서 register 들어가는 파일들을 원본과 비교해서 바뀐 부분 있는지 체크해 보세요.
해당 페이지에 오류가 있어 이렇게 표기 되는듯 합니다.
※ 해당 에러의 근본 원인은 *그누보드 5.4 알림 플러그인* 설치 후 발생한
"코드 충돌 및 회원가입 로직 변경"으로 보입니다.
특히, 알림 플러그인이 "새로 회원가입 시 자동으로 알림을 받을 수 있게 적용"하는 과정에서
기존 회원가입 프로세스와 충돌했을 가능성이 큽니다.
1. 회원가입 시 알림 설정 기능 충돌
- 회원가입 후 리디렉션 로직과 충돌하거나 데이터베이스 처리가 실패해
HTTP 500 오류가 발생했을 가능성.
2. PHP 8.x 호환성 문제
- 플러그인은 PHP 7.x 기반으로 작성되었으며,
PHP 8.x에서 미처리된 예외 상황이 있을 가능성.
3. CSS/JS 경로 문제
- 알림 아이콘 표시를 위한 CSS/JS 파일 경로나 권한 문제로 오류 발생.
※ 해결 방안 ;
1. 플러그인 비활성화 및 테스트
- 플러그인을 비활성화하거나 덮어쓴 파일을 복구한 후,
회원가입 및 리디렉션이 정상 작동하는지 테스트.
2. 알림 로직 점검
- `register_form_update.php`와 플러그인의 알림 로직 충돌 가능성을 점검.
회원가입 시 호출되는 함수(notify_user_on_register`)를 주석 처리하거나 조건문으로 제한:
```php
// notify_user_on_register($member_id); // 알림 처리 주석 처리
```
3. 에러 로그 확인
- PHP 에러 로그에서 구체적인 오류 메시지 확인:
```bash
tail -f /var/log/php_errors.log
```
4. PHP 8.x 호환성 수정
- 플러그인에서 PHP 8.x에서 제거된 `each()` 함수 등을 수정:
```php
// PHP 7.x 코드
while (list($key, $value) = each($array)) { ... }
// PHP 8.x 코드
foreach ($array as $key => $value) { ... }
```
5. 알림 설정 초기화
- 회원가입 시 자동 알림 설정을 초기화:
```php
$member['notify_on_register'] = false;
```
6. CSS/JS 경로 점검
- 알림 아이콘 표시를 위한 CSS/JS 경로 및 파일 권한을 점검.
※ 결론
"그누보드 5.4 알림 플러그인"은 회원가입 로직에 알림 기능을 추가하면서
HTTP 500 오류를 유발한 것으로 보입니다.
우선 플러그인을 비활성화한 후,
소스 코드 점검 및 PHP 8.x 환경 호환성을 개선하여 문제를 해결하시길 권장합니다.
필요 시 플러그인 로직을 수정하거나,
안정적인 대체 플러그인을 검토하는 것도 좋은 방법입니다.