好吧,所以我正在嘗試創建一個聯繫表單,驗證用戶輸入以防止黑客提交代碼並嘗試僅需要數字,文本和電子郵件。我已經設計了表單並導入了我的php文件。該聯繫人將發送給我的Gmail帳戶。但每次我測試的PHP它允許輸入任何類型的數據,無論它是否應該是一個數字和字母提交和其他方式。如果我能夠得到一些幫助,告訴我我出錯的地方會很棒。我是編程初學者,只有我從學校收到的知識,但我很擅長html和css,但在php驗證方面存在問題。表單發送電子郵件,但正如我所說,它允許任何和所有輸入。聯繫表單和輸入驗證的問題
<?php
$name = $_POST['name'];
$tel = $_POST['tel'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: www.webdesignheros.com';
$to = '[email protected]';
$subject = 'Service Email for HeenanTech';
$tel = filter_input(INPUT_POST, 'tel', FILTER_SANITIZE_INT);
$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING|FILTER_FLAG_NO_ENCODE_QUOTES);
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
$message = filter_input(INPUT_POST, 'message', FILTER_SANITIZE_STRING|FILTER_FLAG_NO_ENCODE_QUOTES);
$body = "From: $name\n Phone: $tel\n Email: $email\n Message: $message\n";
?>
<?php
if ($_POST['submit']){
if(mail($to, $subject, $body, $from)){
echo'<p>Thank you for your email!</p>';
} else {
echo '<p> Oops! Something went wrong, try sending your message again</p>';
}
}
?>
此外,該表可在[http://webdesignheros.com/Contact.html][1]
[1]中找到:http://webdesignheros.com/Contact.html,如果有人能告訴我如何拒絕某些輸入之前提交,這將是真棒太。比如如果輸入了無效的條目,並且它們移動到下一個輸入,它將拒絕它並且不讓提交按鈕被按下。我會在HTML中使用pattern="a-z"
還是我需要爲此添加JavaScript?
究竟是不是在這裏工作?那是你所有的代碼還是比那更多? – Maximus2012
你有客戶驗證? (javascript,f.e. jquery-validate - http://jqueryvalidation.org/) – Altenrion
1)我不認爲有任何FILTER_SANITIZE_INT,但有FILTER_SANITIZE_NUMBER_INT。 2)數字在使用字母時被認爲是字符串。例如:「My123」是一個有效的字符串。 – mrunion