2017-10-28 94 views
1

我在while循環中有一個聯繫表單,它將向while循環中顯示的用戶發送電子郵件。但是,通過這種結構,我會發送一封電子郵件給循環中的所有對象。在這種情況下,我不知道如何逃避while循環。在循環中單獨與一個對象交互

... while($row = $sql->fetchObject()){ 
    ... echo $row->userMail; 
     echo '<form ...><input name="contactMail"><...submit></form>'; 
     if(isset($_POST['visitorMail']{ 
      mail($toUserMail,$subject,$body_containsVisitorMail,$headers); 
       //this will send an email to all "objects" displayed in within the while loop -> problem 

    } 
} 
+0

不要把目標地址的形式。它將被用作垃圾郵件網關。此外,您似乎將表單本身與處理其內容的代碼混合在一起,沒有多大意義。 – Synchro

回答

1

,我想你需要與當前檢查的$_POST['contactMail']值迭代之一:

while($row = $sql->fetchObject()){ 
    echo $row->mail; 
    echo '<form ...><input name="contactMail" value="' . $row->mail . '"><...submit> 
    <input type="hidden" name="itemId" value="' . $row->id . '"></form>'; 
    if(isset($_POST['contactMail']) && $_POST['itemId'] == $row->id) { 
     mail($toRowMail,$subject,$body,$headers); 
    } 
} 
+0

謝謝,但輸入字段實際上是讓訪問者輸入他們的電子郵件地址。所以'contactMail'和'$ row-> mail'是兩個不同的地址。 contactMail僅用於$ body。 – JayPac

+0

那麼你爲什麼在一個while循環中發送電子郵件?在while循環後檢查if($ _POST [''])'。 –

+0

以及我應該如何知道發送郵件的對象。假設我有幾個使用while循環顯示的對象。對於每個對象都有一個額外的表單來發送電子郵件。我需要一種方法來檢查用戶提交的表單。 – JayPac