2014-02-28 59 views
1

我不斷看到if語句顯示在域http://bambooflooringcapetown.net/recap.php驗證碼與晶麻煩

你可以看到自己的文字。

我想實現Securimage進入我的表單,但有麻煩。

驗證碼我用: http://www.phpcaptcha.org/documentation/quickstart-guide/

目前代碼:

 <?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 
session_start(); 

?> 
<div> 
    <?php 
require_once 'securimage/securimage.php'; 
// Code Validation 

$image = new Securimage(); 
if ($image->check($_POST['captcha_code']) == true) { 
    echo "Correct!"; 
} else { 
    echo "Sorry, wrong code."; 
} 
     require_once 'securimage/securimage.php'; 
     echo Securimage::getCaptchaHtml(); 
    ?> 
</div> 
<style> 
#newheadform 
{ 
    position: relative; 
    top: -15px; 
    left: 700px; 
    width: 280px; 
    height: 361px; 
    border: 1px solid #<?php echo $Config['bodyFontColour']; ?>; 
    background-color: #<?php echo $Config['bodyColour']; ?>; 
    color: #<?php echo $Config['bodyFontColour']; ?>; 
    opacity: 0.85; 
    padding: 10px; 
    z-index: 100; 
    font-family: sans-serif; 
} 
#newheadform input[type=text], #newheadform textarea 
{ 
    border: 1px solid #000; 
    width: 96%; 
} 
</style> 
<!-- NEW ENQUIRY FORM START --> 

<form method="post" action=""> 
<table id="newheadform" cellpadding="5" cellspacing="0"> 
     <tr><th colspan="2" align="center"><font size="5">Email us now</font></th></tr> 
     <tr><td>Name*:</td><td><input type="text" name="name"/></td></tr> 
     <tr><td>Phone*:</td><td><input type="text" name="number"/></td></tr> 
     <tr><td>Email*:</td><td><input type="text" name="email"/></td></tr> 
     <tr><td colspan="2">Message:</td></tr> 
     <tr><td colspan="2"><textarea name="message" style="height: 50px;"></textarea></td></tr> 
     <tr><td colspan="2" align="center"> 
<input type="text" name="captcha_code" size="10" maxlength="6" /> 
<a href="#" onclick="document.getElementById('captcha').src = '/securimage/securimage_show.php?' + Math.random(); return false">Different Image</a> 
     <?php if(isset($_POST['number'])) 
     { 
      if(empty($_POST['name']) || empty($_POST['number']) || empty($_POST['email'])) 
       echo '<font color="red" size="1"><b>* These fields are compulsory</b></font><br/><br/>'; 
      else 
      { 
       $headers='From: '.$_POST['email']."rn"; 
       $headers.='Reply-To: '.$_POST['email']."rn"; 
       $headers.='X-Mailer: PHP/'.phpversion(); 
       $body='You received a contact request from '.$_POST['name'].' ('.$_POST['email'].') on your site '.$domainname."rn"; 
       $body.='Contact number: '.$_POST['number']."rnrn"; 
       if(!empty($_POST['message'])) $body.=$_POST['message']; 
       if(mail($_SESSION['contact3'],'New Enquiry from '.$domainname,$body,$headers)) 
        echo '<font color="green"><b>Your email has been sent</b></font><br/>'; 
      } 
     } 
?> 
       <img id="captcha" src="securimage/securimage_show.php" alt="CAPTCHA Image" /> 
     <input type="button" name="send" value="Send"/></td></tr> 

</table> 
</form> 


<!-- NEW ENQUIRY FORM END --> 

WITH NO CAPTCHA

<!-- NEW ENQUIRY FORM START --> 
<style> 
#newheadform 
{ 
    position: relative; 
    top: -15px; 
    left: 700px; 
    width: 280px; 
    height: 361px; 
    border: 1px solid #<?php echo $Config['bodyFontColour']; ?>; 
    background-color: #<?php echo $Config['bodyColour']; ?>; 
    color: #<?php echo $Config['bodyFontColour']; ?>; 
    opacity: 0.85; 
    padding: 10px; 
    z-index: 100; 
    font-family: sans-serif; 
} 
#newheadform input[type=text], #newheadform textarea 
{ 
    border: 1px solid #000; 
    width: 96%; 
} 
</style> 
<form method="post" name="newheadformform"> 
    <table id="newheadform" cellpadding="5" cellspacing="0"> 
     <tr><th colspan="2" align="center"><font size="5">Email us now</font></th></tr> 
     <tr><td>Name*:</td><td><input type="text" name="name"/></td></tr> 
     <tr><td>Phone*:</td><td><input type="text" name="number"/></td></tr> 
     <tr><td>Email*:</td><td><input type="text" name="email"/></td></tr> 
     <tr><td colspan="2">Message:</td></tr> 
     <tr><td colspan="2"><textarea name="message" style="height: 50px;"></textarea></td></tr> 
     <tr><td colspan="2" align="center"> 
     <?php if(isset($_POST['number'])) 
     { 
      if(empty($_POST['name']) || empty($_POST['number']) || empty($_POST['email'])) 
       echo '<font color="red" size="1"><b>* These fields are compulsory</b></font><br/><br/>'; 
      else 
      { 
       $headers='From: '.$_POST['email']."rn"; 
       $headers.='Reply-To: '.$_POST['email']."rn"; 
       $headers.='X-Mailer: PHP/'.phpversion(); 
       $body='You received a contact request from '.$_POST['name'].' ('.$_POST['email'].') on your site '.$domainname."rn"; 
       $body.='Contact number: '.$_POST['number']."rnrn"; 
       if(!empty($_POST['message'])) $body.=$_POST['message']; 
       if(mail($_SESSION['contact3'],'New Enquiry from '.$domainname,$body,$headers)) 
        echo '<font color="green"><b>Your email has been sent</b></font><br/>'; 
      } 
     } 
     else echo '<font size="1">* Compulsory</font><br/><br/>'; ?> 
    Calculate*: <span id="num1"></span> + <span id="num2"></span>&nbsp;<input type="number" name="calculate" placeholder="" /><br><br> 
     <input type="button" name="send" value="Send"/></td></tr> 
    </table> 
</form> 
<script type="text/javascript"> 
$(document).ready(function(e) { 

    var number1 = Math.floor(Math.random()*12)+1; 
    var number2 = Math.floor(Math.random()*12)+1; 

    $('#num1').append(number1); 
    $('#num2').append(number2); 

    $('input[name=send]').click(function(){ 

     var total = number1 + number2; 
     var answer = $('input[name=calculate]').val(); 

     if(total !== parseInt(answer)){ 

      alert("Please enter the correct calculation to send your enquiry."); 

     } else { 

      document.newheadformform.submit(); 
      return false; 

     } 
    }); 
}); 
</script> 
<!-- NEW ENQUIRY FORM END --> 
+1

旁註:您正在將CSS/HTML與PHP混合使用。將它們分開。 –

+0

你的PHP必須用'<?php'標籤包裝。但就像@ Fred-ii-說,如果PHP在另一個文件 – Cfreak

+0

會更好,他們會分裂他們嗎?因爲它都來自index.php – Pixel

回答

1

另一種選擇是使用蜜罐法原代碼。

蜜罐字段是窗體上的不可見字段。隱形不同於隱藏。隱藏是一種不顯示進行編輯的字段。機器人瞭解隱藏的字段,因爲隱藏的字段通常攜帶必須完整返回的標識信息。不可見字段是在瀏覽器中隱藏的普通可編輯字段。

蜜罐領域的不可見性是機器人揭示自己的關鍵方式。由於機器人不會在表單中處理HTML,CSS和Javascript的全部內容,並且由於它們不構建頁面的可視化表示,並且因爲它們不像人們那樣感知表單,所以它們無法區分不可見域和可見的。他們會將數據放入蜜罐領域,因爲他們不知道更好。在不利方面,如果bot程序員以某種方式(手動?)識別你的蜜罐,並且調整他的機器人跳過蜜罐字段,那麼你就搞砸了。驗證碼將迫使bot程序員開發圖像識別應用程序。

所以雖然它對人類來說比較容易,但它對機器人來說也更容易。

您還可以使用服務器端會話變量來存儲用戶第一次訪問表單時的情況。然後在提交頁面上調用該變量。如果它在幾秒鐘內,那麼機會就是它的一個機器人。這可以很好地工作,因爲機器人不知道服務器上發生了什麼。

+0

注意:未定義的索引:captcha_code在/usr/www/users/bamboxevvz/recap.php在線13抱歉,錯誤的代碼。 – Pixel