2011-10-19 10 views
0

특정 시간에 비활성화 할 수있는 양식을 작성하려고합니다. 자바 스크립트를 사용하여이를 수행하고 싶습니다. 그러나 사람들은 컴퓨터에서 쉽게 날짜를 변경할 수 있기 때문에 Apache에서 제공 한 날짜를 비교 날짜로 사용하고 싶습니다. 나는 간단한 것들을 시도했지만 SSI는 날짜가 자바 스크립트 날짜와 비교하지 않을 것이라고 반향했다. 내 코드는 아래와 같습니다. 어떤 아이디어?SSI 날짜와 자바 스크립트 날짜를 비교하십시오.

var currenttime = '<!--#config timefmt="%a %b %d %Y %H:%M:%S"--><!--#echo var="DATE_LOCAL" -->' 
var currenttime = currenttime+' GMT-0400 (EDT)'; 

var disableDate = new Date(); 
disableDate.setFullYear(2011,9,18); 
disableDate.setHours(17,0,0,0); 

if(disableDate < currenttime) 
    $('#date_field').attr("disabled", true); 
+0

양식에서 요소를 사용하지 않도록 설정하는 적절한 방법이 아닙니다. 나는 이것을 이해하지만, 나는 또한 JavaScript 학습을 즐긴다. 그리고 나는 이것을하는 방법을 찾고 싶었다. – Cloudkiller

답변

1

문자열을 날짜와 비교합니다. 먼저 Date 객체로 currenttime 문자열로 변환 :

말했다
var currenttime = '<!--#config timefmt="%a %b %d %Y %H:%M:%S"--><!--#echo var="DATE_LOCAL" --> GMT-0400 (EDT)'; 
currenttime = new Date(currenttime); 

, 완전히 자바 스크립트가 당신을 위해 그것을 할 점점 대신 형태의 서버 측을 사용하지 conditional SSI를 사용하는 대신하려고합니다.

+0

완벽하게 작동했습니다. 이 양식을 함께 해킹하도록 도와 주셔서 감사합니다. 이 작업을 수행하는 더 좋은 방법이 있다는 것을 알고 있지만 부분적으로는 JavaScript로 작업하고 싶습니다. – Cloudkiller

0

일반적으로 필요하지 않습니다. 논리를 사용하지 않으려면 자바 스크립트를 사용하고 페이지를 디스크에 저장하고 JavaScript를 분해 한 다음 2 년 후 언제든지 제출하십시오.

당신이 집중해야 할 것은 "특정 시간에 처리이 양식을 거부 할 수 있습니까?"입니다. 알 수 있듯이 질문은 더 이상 사용자 시계에 의존하지 않습니다. 서버 쪽 이동!

JavaScript는 사용자의 편의를 위해 작성된 것입니다. 모든 "보안"규칙은 서버 측을위한 것입니다.

+0

Alf, 나는 사람들이 자바 스크립트를 엉망이 될 것을 알고 있습니다. 모든 양식 제출은 접수 된 시간과 함께 데이터베이스에 태그가 지정되므로 마감일 이후에 오는 항목을 버릴 수 있습니다. 나는 특정 시간 이후에 양식의 일부를 사용하지 못하게하는 빠르고/더러운 방법을 찾고 있습니다. (내 사무실에 없을 때) 사용자의 대다수 만이 적절한 필드를 선택할 수 있습니다. . 또한 PHP를 사용하여 많은 문제를 해결할 수 있었지만 이러한 양식을 CMS에 포함 시켰고 PHP로 변경하여 새로운 웜 깡통을 열었습니다. – Cloudkiller

관련 문제