관리자만 설정한 부분이 스크립트 동작후 출력되면 다른사람들에게도 보이게
본문
페이지를 만들다가 알람 기능을 작업해서 추가했습니다.
<div class="box">알람</div><div class="text"></div>
<?PHP if( $is_admin) { ?>
<h1 class="livt">알람 설정</h1>
<label for="time">시작 시간:</label>
<input type="time" id="time" name="time">
<button id="setAlarm">설정</button>
<label for="time2">알람 시간:</label>
<input type="time" id="time2" name="time2">
<button id="setAlarm2">설정</button>
<input type="text" id="textInput" placeholder="">
<button id="submitButton">출력</button>
<div id="output"></div>
<?PHP } ?>
<script>
$(document).ready(function() {
$('#submitButton').click(function() {
var inputText = $('#textInput').val();
$('.text').text(inputText);
});
$("#setAlarm").click(function() {
var alarmTime = $("#time").val();
var currentTime = new Date();
var selectedTime = new Date(currentTime.toDateString() + " " + alarmTime);
if (selectedTime <= currentTime) {
// 선택한 시간이 현재 시간보다 이전인 경우
alert("유효하지 않은 알람 시간입니다.");
return;
}
var timeDiff = selectedTime - currentTime;
setTimeout(function() {
$(".box").addClass('show');
$("#submitButton").trigger('click');
}, timeDiff);
});
$("#setAlarm2").click(function() {
var alarmTime2 = $("#time2").val();
var currentTime2 = new Date();
var selectedTime2 = new Date(currentTime2.toDateString() + " " + alarmTime2);
if (selectedTime2 <= currentTime2) {
// 선택한 시간이 현재 시간보다 이전인 경우
alert("유효하지 않은 알람 시간입니다.");
return;
}
var timeDiff2 = selectedTime2 - currentTime2;
setTimeout(function() {
$(".box").removeClass('show');
$(".text").html('지금은 알람이 없습니다');
}, timeDiff2);
});
});
</script>
이런 소스인데
이렇게 보이고 시작시간과 끝나는시간(알람시간)을 설정하면 시작할때 알람태그에 class가 추가되어 표시가 되고 설정 옆 input에 텍스트를 쓰면 trigger로 시간맞춰 텍스트가 바뀌게끔 만들었는데요 이 부분에서 알람을 설정할 수 있는 부분은 관리자한테만 표시되고, 알람이 표시되는 시간에 맞춰 사이트를 이용하는 사람들한테 알람 표시만 보여지게끔 하고싶어서 설정부분을 <?PHP if( $is_admin) { ?> 으로 설정해주었습니다.
결과적으로 알람설정은 관리자한테만 보이게 되었으나 알람이 설정 된 시간이 되어도 사용자에게 표시가 뜨지 않는 문제가 생겼습니다. 관리자에게 보이는 코드를 삭제하고 실행하면 작동은 잘 됩니다.
설정은 관리자한테만
표시는 페이지를 보는 누구나 볼 수 있게 하려면 어떻게 설정해주는게 좋을까요 ㅜㅜ
!-->답변 2
먼저 크게는 다음항목들이 필요합니다.
1. 설정한 값들에 대한 서버 저장
2. 서버에 저장된 값을 불러와 일반 사용자들에게 뿌려주는 부분
3. 1, 2 항목에 대한 올바른 동작이 보장된 경우 상세한 처리 (e.g. 범위 Validation, TimeZone 에 따른 오차 등)
관리자에게 보이는 코드를 삭제하고 실행하면 작동은 잘 됩니다.
<--이게 말이 안되는 상황 설명입니다
서버에 설정값을 저장하지않는다면 접속해 오는 사용자에게 관리자가 설정한 값을 어떻게 알아내어서
알람 페이지에 알람시각을 알려준다는 것인가요?
답변을 작성하시기 전에 로그인 해주세요.