2015-10-12 81 views
0

我有一個Google表單,它設置爲在完成表單時發送電子郵件。幾乎完全按照http://www.labnol.org/internet/auto-confirmation-emails/28386/,只是主要改變文本。它確實發送電子郵件提交,萬歲!onFormSubmit()觸發器是否可以由提交Google表單的人員以外的其他人觸發?

的形式本身也需要質疑這樣一個人不應該能夠提交表單,而不在至少填充這些問題。

然而,在上週末(週日11日),三封郵件,用發空白的答覆,甚至對所需的問題!

所以,我認爲有三個可能的解釋:

  1. 所需的問題,沒有工作/形式 的結構暫時出錯,並允許從一個人的三個空白反應。
  2. 某種機器人/抓取腳本以某種方式觸發了空的提交
  3. 表單由人完成,數據未記錄,也未包含在電子郵件中。

做任何/所有這些解釋是否有意義/看起來似乎合理?

如果3是答案,你知道這是否是一個過渡性的,也許記錄在案,星期天發生的錯誤?

+0

一個簡單的測試是這樣的:關閉,禁用你的瀏覽器的JavaScript,然後看看你是否可以提交表單。如果可以,這意味着沒有服務器端驗證發生。如果表單在您禁用JavaScript時消失,則提交該表單會比較困難但並非不可能,但在任何情況下,如果表單提交給自己或其他頁面,則應該進行服務器端驗證。機器人無休止地尋找這樣的形式,因爲規範是很差或不完整的驗證,它總是值得他們這樣做。 – Lizardx

+0

我禁用了JavaScript,我可以提交表單。表單提交給Google Spreadsheet,是否可以合併服務器端驗證? – Timmy

+0

如果你可以提交沒有javascript的表單,那麼這個星球上的每個機器人都可以。所以這實際上回答你的問題。不應該認爲JavaScript不僅僅是一種用戶友好的方式來防止輸入錯誤的數據。服務器端驗證不在你問題的範圍之內,這是你實現它的能力的函數,以及你下載的各種腳本的靈活性等等。如果你在互聯網上放置一個表單,你也應該接受關於什麼的責任放入該表單中,否則您是另一個bot資源。 – Lizardx

回答

0

我不明白爲什麼機器人無法提交Google表單。 onSubmit觸發器就像聽起來一樣。只要表單被提交,google腳本就會運行,無論發送信息的內容是什麼,只要它被提交到腳本將運行的表單中。

這個腳本對電子郵件的文本主體的空白數據進行檢查,但沒有其他。

我已經測試過這一點,並且可以確認即使您的Google表單有根據需要設置的問題,如果它是文本或段落條目,那麼您所要做的就是輸入空間,它會考慮有效數據。所有表單提交應該存儲在谷歌電子表格中,因此我建議檢查電子表格響應以查看單元格是否實際上是空白的或者它是否包含像''這樣的數據。

就我個人而言,在做自動回覆時或者如果我需要使用表單提交中的數據時,我總是使用特定範圍。通常數據應該始終位於電子表格中的相同位置。

只要表單被引用,腳本就會運行。所以如果一個機器人可以繞過檢查,如果問題是空的,仍然提交它,那麼你的腳本將無論如何運行。

+0

電子表格中的單元格爲空,即不包含「'。確認電子郵件它迴應所有非空的迴應,並沒有任何迴應 – Timmy

+0

@Timmy然後你可以使用偶數對象進行額外驗證SendConfirmationMail函數中的e變量可以檢查空值並終止如果發現。繞過所需的問題檢查它會在腳本的開始處停止。 – Vytautas

相關問題