【发布时间】:2017-10-03 21:01:09
【问题描述】:
我是一名新手编码员,目前正在处理我的第一个 php 项目。一个网站有一个简单的 php 联系表,我正在尝试完成,但我一直遇到意外错误。我现在已经尝试了很多东西,我在 Stackoverflow 上发现并自己解决了一些错误,但我现在不知所措。我希望有人会查看我的代码以帮助我了解我在这里缺少什么。非常感谢任何能让我重回正轨的帮助。
编辑:试图让这篇文章更多地关注主题
我希望这个脚本做什么:
- 填写姓名、电子邮件和消息必填字段
- 使表单安全,防止恶意意图。这就是为什么我在Securing a contact form script 之后添加了 check_input 函数
截至目前的完整代码:
<?php
$name = isset($_POST['name']) ? check_input($_POST['name']) : "";
$email = isset($_POST['email']) ? check_input($_POST['email']) : "";
$company = isset($_POST['company']) ? check_input($_POST['company']) : "";
$message = isset($_POST['message']) ? check_input($_POST['message']) : "";
$from = 'From: ZZZ Reactieformulier';
$to = 'emailadres@mailserver.nl';
$subject = 'Reactie via website';
$body = "Afzender: $name\n E-mailadres: $email\n Bedrijfsnaam: $company\n
Bericht: $message";
function check_input($data){
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
if ($_POST['submit']) {
if ($name !='' && $email !='' && $message !='') {
if (mail ($to, $subject, $body, $from)) {
echo '<p>Uw bericht is succesvol verzonden!</p>';
} else {
echo '<p>Er is iets misgegaan, probeer het alstublieft
opnieuw</p>';
}
} else {
echo '</p>De velden Naam, E-mail en Bericht zijn verplicht</p>';
}
}
?>
【问题讨论】:
-
三元运算符是
?:,而不仅仅是?。这就是语法问题。 -
那个“
check_input”函数不会“检查”任何东西;更好的名称是“mangle_input”。阅读The Great Escapism (Or: What You Need To Know To Work With Text Within Text)。 -
@deceze 我根据我在此处阅读的内容添加了该功能Secure contact form script
-
FWIW 的答案太糟糕了。
-
是的,W3S 也很糟糕。
标签: php contact-form