2011-07-17 43 views
0

我想創建一個PHP頁面,供用戶在HTML中向其他用戶發送電子郵件。 在我的頁面(email.php)上有一個textarea供用戶輸入他們的信息。PHP驗證textarea輸入發送電子郵件

由於我從我的服務器發送電子郵件,我不希望用戶編寫惡意代碼/消息內容(html,鏈接,php,壞詞等),這將導致我的服務器電子郵件IP被禁止爲垃圾郵件。

我知道我可以通過使用像str_replace函數功能()ヶ輛()用strip_tags()驗證等

我怎樣才能在進入textarea的標籤,鏈接等停止用戶發送這樣當電子郵件是乾淨的。是否有一些函數只是過濾整個消息字符串,如果它匹配一個電子郵件正文格式或將消息字符串轉換爲純文本的方式,那麼任何惡意鏈接/標記將僅顯示給用戶href ='/ link' >惡意鏈接而不是'惡意鏈接',而不是運行的html標籤,他們只是顯示爲標籤本身?

像加姆特里例如,當您發送電子郵件你形式的textarea的消息

感謝您的任何建議

+0

不清楚的東西:是以HTML形式發送的消息嗎? –

+0

是發送HTML格式,但PHP來過濾/驗證 – daza166

回答

1

你能否澄清一點?

從你所描述的,strip_tags()然後htmlentities()似乎是足夠的,除非我誤解你在問什麼。這兩個函數都不用於驗證,而是過濾。

strip_tags()刪除PHP和HTML標籤,並htmlentities()將確保適用的字符轉換爲它們的HTML實體等效。

+0

所以當用戶收到hotmail/Gmail等電子郵件時,正文文本信息將是乾淨的,即如果用戶輸入鏈接,而不是可點擊/不會運行它將顯示爲HREF = '' 標籤? – daza166

+1

@webjawns:我編輯了你的文章,以包含兩個函數的PHP手冊鏈接。希望你不介意:-) – Bojangles

+0

值得注意的是,strip_tags()無法正確處理格式錯誤的HTML。 –

0

您不能阻止用戶插入html標籤,即使使用javascript。由於幾乎所有瀏覽器都有開發工具,並且在加載頁面後,任何網站的任何html元素都可以被更改。

你可以開發一個javascript驗證只是爲了眼睛視圖,但php驗證是必須的,因爲你不能限制用戶。

偶數標題可以修改...所以你需要那些php過濾器,如上所述。

1

我推薦使用第三方庫,如HTML Purifier,它使用白名單方法。

+0

不錯的圖書館。 +1 – Rahul