관리자만 설정한 부분이 스크립트 동작후 출력되면 다른사람들에게도 보이게 채택완료
페이지를 만들다가 알람 기능을 작업해서 추가했습니다.
</strong></p>
<p><div class="box">알람</div><div class="text"></div></p>
<p> </p>
<p> </p>
<p> <?PHP if( $is_admin) { ?></p>
<p> <h1 class="livt">알람 설정</h1></p>
<p> <label for="time">시작 시간:</label></p>
<p> <input type="time" id="time" name="time"></p>
<p> <button id="setAlarm">설정</button></p>
<p> </p>
<p> <label for="time2">알람 시간:</label></p>
<p> <input type="time" id="time2" name="time2"></p>
<p> <button id="setAlarm2">설정</button></p>
<p> </p>
<p> <input type="text" id="textInput" placeholder=""></p>
<p> <button id="submitButton">출력</button></p>
<p> <div id="output"></div></p>
<p> <?PHP } ?> </p>
<p> <script></p>
<p> </p>
<p> $(document).ready(function() {</p>
<p> $('#submitButton').click(function() {</p>
<p> var inputText = $('#textInput').val();</p>
<p> $('.text').text(inputText);</p>
<p> });</p>
<p> </p>
<p> $("#setAlarm").click(function() {</p>
<p> var alarmTime = $("#time").val(); </p>
<p> var currentTime = new Date(); </p>
<p> var selectedTime = new Date(currentTime.toDateString() + " " + alarmTime); </p>
<p>
</p>
<p> if (selectedTime <= currentTime) {</p>
<p> // 선택한 시간이 현재 시간보다 이전인 경우</p>
<p> alert("유효하지 않은 알람 시간입니다.");</p>
<p> return;</p>
<p> }</p>
<p> </p>
<p> var timeDiff = selectedTime - currentTime; </p>
<p> </p>
<p> setTimeout(function() {</p>
<p> $(".box").addClass('show');</p>
<p> $("#submitButton").trigger('click');</p>
<p> }, timeDiff);</p>
<p> });</p>
<p> </p>
<p> $("#setAlarm2").click(function() {</p>
<p> var alarmTime2 = $("#time2").val(); </p>
<p> var currentTime2 = new Date(); </p>
<p> var selectedTime2 = new Date(currentTime2.toDateString() + " " + alarmTime2);</p>
<p> </p>
<p> if (selectedTime2 <= currentTime2) {</p>
<p> // 선택한 시간이 현재 시간보다 이전인 경우</p>
<p> alert("유효하지 않은 알람 시간입니다.");</p>
<p> return;</p>
<p> }</p>
<p> </p>
<p> var timeDiff2 = selectedTime2 - currentTime2; </p>
<p> </p>
<p> setTimeout(function() {</p>
<p> $(".box").removeClass('show');</p>
<p> $(".text").html('지금은 알람이 없습니다');</p>
<p> }, timeDiff2);</p>
<p> });</p>
<p> });</p>
<p> </script></p>
<p><strong>
이런 소스인데

이렇게 보이고 시작시간과 끝나는시간(알람시간)을 설정하면 시작할때 알람태그에 class가 추가되어 표시가 되고 설정 옆 input에 텍스트를 쓰면 trigger로 시간맞춰 텍스트가 바뀌게끔 만들었는데요 이 부분에서 알람을 설정할 수 있는 부분은 관리자한테만 표시되고, 알람이 표시되는 시간에 맞춰 사이트를 이용하는 사람들한테 알람 표시만 보여지게끔 하고싶어서 설정부분을 으로 설정해주었습니다.
결과적으로 알람설정은 관리자한테만 보이게 되었으나 알람이 설정 된 시간이 되어도 사용자에게 표시가 뜨지 않는 문제가 생겼습니다. 관리자에게 보이는 코드를 삭제하고 실행하면 작동은 잘 됩니다.
설정은 관리자한테만
표시는 페이지를 보는 누구나 볼 수 있게 하려면 어떻게 설정해주는게 좋을까요 ㅜㅜ
답변 2개
먼저 크게는 다음항목들이 필요합니다.
1. 설정한 값들에 대한 서버 저장
2. 서버에 저장된 값을 불러와 일반 사용자들에게 뿌려주는 부분
3. 1, 2 항목에 대한 올바른 동작이 보장된 경우 상세한 처리 (e.g. 범위 Validation, TimeZone 에 따른 오차 등)
답변에 대한 댓글 2개
하지만 그것도 어디까지나 임시적인 방법입니다.
쿠키삭제 및 기타 사이트 데이터 삭제하면 데이터는 사라집니다.
더군다나 불특정 다수의 사용자가 어디에서나 확인하게 하려면
쿠키나 로컬스토리지로는 불가능합니다.
영구적, 안정적으로 데이터를 저장하려면 서버저장 밖에 없습니다.
서버 저장의 형태는 자체 DB 나 Cache 서버 또는 Firebase 같은 외부 서비스를 이용하는 방법이 있습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인