2017-08-28 50 views
1

我一直在試圖弄清楚單選按鈕和複選框是否需要在通過電子郵件發送它們時清除(清理?)以及如何執行此操作。PHP單選按鈕在電子郵件中安全

我有一個聯繫表單,只是通過電子郵件發送信息。它不會觸及數據庫。電郵時,我是否需要保護單選按鈕和複選框?可能嗎?

我還沒有發現任何關於在通過電子郵件發送這些郵件時獲得這些保護的問題。我不斷遇到一些答案,說這些答案應該在發送到數據庫時一定受到保護。這裏也是一樣,或者是關於如何獲取值或動態創建值的問題。所以,我不知所措。

電子郵件時是否保護單選按鈕和複選框?可能嗎?必要?如果是這樣,我該怎麼做?

這裏是我的代碼是什麼樣子的,部分:

$firstName = strip_tags($_POST['firstName']); 
    $lastName = strip_tags($_POST['lastName']); 
    $email = strip_tags($_POST['emailAddress']); 
    $telNum = strip_tags($_POST['phoneNumber']); 
    $colors= $_POST['eColors']; 
    $additionalComments = strip_tags($_POST['additionalComments']); 
    $spamField = strip_tags($_POST['sField']); 


    <form id="contact-form" action="" method="post"> 

    <div> 
      <input type="text" id="nameFirst" name="firstName" /> 
      <label for="nameFirst" class="nameIcon"> 
       <span>First Name</span> 
      </label> 
      <span class="hint"> 
       <p>Input hint goes here</p> 
      </span> 
     </div> 

     <div> 
      <input type="text" id="nameLast" name="lastName" /> 
      <label for="nameLast" class="nameIcon"> 
       <span>Last Name</span> 
      </label> 
      <span class="hint"> 
       <p>Input hint goes here</p> 
      </span> 
     </div> 

     <div> 
      <input type="email" id="eAddy" name="emailAddress" /> 
      <label for="eAddy" class="emailIcon"> 
       <span>Contact Email</span> 
      </label> 
      <span class="hint"> 
       <p>Input hint goes here</p> 
      </span> 
     </div> 

     <div> 
      <input type="tel" id="telNum" name="phoneNumber" /> 
      <label for="telNum" class="contactIcon"> 
       <span>Contact Number</span> 
      </label> 
      <span class="hint"> 
       <p>Input hint goes here</p> 
      </span> 
     </div> 

     <div> 
      <input type="checkbox" id="cbEColors" name="eColors" class="cbSwitch" /> 
      <label for="cbEColors">Do you expect more color?</label> 
     </div> 

     <div> 
      <textarea id="addComments" name="additionalComments"></textarea> 
      <label for="addComments" class="messageIcon"> 
       <span>Additional Comments</span> 
      </label> 
      <span class="hint"> 
       <p>Input hint goes here</p> 
      </span> 
     </div> 

     <input type="text" id="sField" class="col" name="sField" /> 

     <button id="submit" name="submit" type="submit" value="Submit">Submit</button> 

    </form> 

回答

1

我遵循PHP安全一個簡單但重要的規則:永遠不要相信輸入值,不管他們的期望類型或外部認證(如客戶端瀏覽器驗證)。

在這個here上有一篇很棒的文章。

希望這有助於:)

+0

你有沒有機會知道如何確保單選按鈕或複選框?我知道一般輸入使用strip_tags。 IE'strip_tags($ _ POST ['phoneNumber']);'我如何爲另外兩個做這件事?另外,是的,這是有益的,我已經收藏了書籤,所以我擁有它。謝謝。 – Jaime

+0

答案可能會有所不同,具體取決於允許的複選框值。我個人會爲字段定義可接受值的數組,並執行如下操作:$ checkboxValue =(!empty($ _ POST ['checkboxInput'])&& in_array($ _ POST ['checkboxInput'],$ acceptedValues))? $ _POST ['checkboxInput']:null; 它檢查輸入是否有值,以及該值是否在可接受值的數組中。如果滿足這些條件,$ checkboxValue被賦值爲發送的值,否則設置爲null。 – flauntster

+1

我剛剛在搜索中發現。謝謝。 – Jaime

1

首先,正確的說法是消毒。 (你近了)

另外,爲了安全起見,我會的。請記住,人們可以將輸入從複選框更改爲輸入。即使你沒有把這個提交給數據庫,如果有一天你決定呢?您很可能會忘記整個過程,並且突然間您的生產數據庫會受到影響。

做一個很長的帖子,是的。

+0

謝謝。這大大減少了我的搜索。 – Jaime

相關問題