2013-12-17 3 views
0

여기에 내가 가진 것은 웹 사이트가 html, css, JS로 작성된 것입니다. 나는 또한 우리에게 문의 페이지에 양식이 있으며, 아래 양식의 코드가 있습니다. 또한 이걸로 허니팟으로 PHP 폼 유효성 검사를했습니다. 양식을 제출할 때 7 초 이내에 완료하면 양식을 제출하지 않을 것입니다. 시간은 페이지로드로 조정할 수 있습니다. 내가 겪고있는 문제는 제출 버튼을 클릭하면 404 페이지로 이동하는 것입니다. 나는 문제가 저의 행동 양식에 있다고 생각하지만 저는 100 % 확실하지 않습니다. 어떤 도움이 여기에서 무슨 일이 일어나고 있는지 이해하는 것이 좋습니다. 감사합니다PHP 유효성 검사 및 honeypot이있는 HTML 양식

<div class="col1 pad_left1"> 
         <h2>Contact Form</h2> 


          <form method="post" action="<? $_SERVER['PHP_SELF']?>"> 



          <table width="100%" border="0" cellspacing="0" cellpadding="5"> 

           <tr valign="top"> 

            <td width="20%"> 
            <label for="name">Name:</label> 
            </td> 

            <td> 
            <input name="name" type="text" size="40" maxlength="60" id="name" > 
            </td> 

           </tr> 
           <tr valign="top"> 

            <td> 
            <label for="hotel">Hotel/Company:</label> 
            </td> 

            <td> 
            <input name="hotel" type="text" size="40" maxlength="60" id="hotel" > 
            </td> 

            </tr> 
            <tr valign="top"> 

             <td> 
             <label for="address">Address:</label> 
             </td> 

             <td> 
             <input name="hotel" type="text" size="40" maxlength="100" id="address" > 
             </td> 

            </tr> 
            <tr valign="top"> 

             <td> 
             <label for="state">City/State:</label> 
             </td> 

             <td> 
             <input name="state" type="text" size="40" maxlength="100" id="state" > 
             </td> 


           <tr valign="top"> 

            <td> 
            <label for="email">Email Address:</label> 
            </td> 

            <td> 
            <input name="email" type="email" size="40" maxlength="60" id="email" > 
            </td> 

           </tr> 
           <tr valign="top"> 

            <td> 
            <label for="phone">Phone:</label> 
            </td> 

            <td> 
            <input name="phone" type="text" size="40" maxlength="100" id="phone" > 
            </td> 

           <tr valign="top"> 

            <td> 
            <label for="comments">Comments:</label> 
            </td> 

            <td> 
            <textarea name="comments" rows="10" cols="50" id="comments"></textarea> 
            </td> 

           </tr> 

           <tr> 


            <td colspan="2"><div align="center"> 
            <div> 
           <input type="hidden" name="loadtime" value="<?php echo time(); ?>"> 
           </div> 
             <input type="submit" name="Submit" value="Submit"> 

             <input name="Reset" type="reset" id="Reset" value="Reset"> 

            </div></td> 

           </tr> 

         </table> 

        </form> 
+0

스패머는 숨겨진 var loadtime을 간단히 수정할 수 있으며 미친 것처럼 제출할 수 있습니다. –

답변

0

실제로 조치에 어떤 내용도 반향 출력하지 않으므로 404가 어디에서 오는 것인지 스스로 판단 할 수 있습니다. 에

변경을 :

<?=$_SERVER['PHP_SELF']?> 

참고 = 기호,이 페이지의 내용을 에코합니다.

+0

그렇다면 별도의 파일에 내 유효성 검사 및 허니팟을 사용하면이 파일에 대한 확인을 수행 한 다음 유효하면 메시지를 보내거나 보내지 않는 시간보다 짧으면 보낼 수 있습니까? – user1667150