2012-08-09 60 views
0

我已經提出了這種形式,我想問一下,這是否足夠安全。我嘗試了很多次做驗證碼的東西,但它不會爲我工作。我仍然是一名學生,請不要發難事。Mail form trough php

問題1:mysql_real_escape_string安全嗎? 問題2:我需要一個非常簡單的(數字)驗證碼,有人可以給我一個例子(或其他堆棧帖子)

這gona被用於信息的網站就像郵件的形式。在該網站上沒有數據庫/登錄和那個。

<?php 


    include '../connect.php'; #db connection for mysql_real_escape_string 
     $errors = array(''); 
     //valideren of er op de submit gedrukt is en of alle benodigde data is ingevuld 
     if(isset($_POST['submit'])){ 
      if(!empty($_POST['naam']) && !empty($_POST['email']) && !empty($_POST['bericht'])){ 


       $naam   = mysql_real_escape_string($_POST['naam']); 
       $email   = mysql_real_escape_string($_POST['email']); 
       $bericht  = mysql_real_escape_string($_POST['bericht']); 
       $telefoon  = mysql_real_escape_string($_POST['telefoon']); 


       $regex = "/^[A-Za-z .'-]+$/"; 
       if(!preg_match($regex,$naam)) { 
        array_push($errors , 'De naam is niet geldig'); 
       } 

       if(strlen($bericht) < 5) { 
        array_push($errors , 'Het bericht is te kort'); 
       }     

       $email_regex = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 
       if(!preg_match($email_regex,$email)) { 
        array_push($errors , 'Uw email is niet geldig.'); 
       } 

這裏是郵件部分。

  }else{ 
       array_push($errors , 'Een van de verplichte velden is niet ingevuld. Alle velden met * zijn verplicht.'); 
      } 


     } 
    ?> 

    <form method="post"> 
     <p> 
      <label>naam*</label> 
      <input type="text" name="naam"/> 
     </p> 
     <p> 
      <label>email*</label> 
      <input type="text" name="email"/> 
     </p> 
     <p> 
      <label>telefoon</label> 
      <input type="text" name="telefoon"/> 
     </p> 
     <p> 
      <label>Bericht*</label> 
      <textarea name="bericht" style="width:459px; height:187px;" ></textarea> 
     </p> 
     <p> 
      <label> </label> 
      <input type="submit" value="verstuur" name="submit"/> 
     </p> 
    </form> 

    <?php 
     if (count ($errors > 0)){ 
      foreach($errors as $error){ 
       echo '<p class="error">'.$error.'</p>'; 
      } 
     } 
    ?> 
+1

你保存到一個數據庫或發送電子郵件或兩者兼而有之? (它缺少代碼) – mlishn 2012-08-09 11:42:29

+0

只想給它發郵件。那部分不在這裏,因爲我現在正在做這件事。對不起,不清楚 – JochemQuery 2012-08-09 11:47:33

+0

那些'

回答

0

是mysql_real_escape_string足夠安全?

這是一個糟糕的保護MySQL數據庫的解決方案。

這是完全不適合發送電子郵件。

無論您如何保護不良數據以免損壞您的電子郵件,應該在數據插入到該電子郵件之前完成 - 而不是在您對其執行完整性檢查之前進行。

+0

你能給我一個建議(鏈接,代碼,文本)我應該怎麼做嗎? – JochemQuery 2012-08-09 11:50:48

+0

這取決於太多因素。 (例如它是否進入了一個頭文件?哪一個?文本主體?HTML主體?你在使用什麼庫?等等)。 – Quentin 2012-08-09 11:51:51

+0

嗯,我只是想要一個表單(郵件,姓名,信息,電話)和驗證數據,然後郵寄給我的郵件 – JochemQuery 2012-08-09 11:53:33