用于联系表单的 12 个最佳 PHP 脚本

介绍

如果您正在开发一个网站或应用程序,并且需要一个联系表单,那么您需要编写一些 PHP 脚本来处理表单提交和验证输入数据。在本文中,我们将介绍 12 个最佳的 PHP 脚本,这些脚本可以方便地在您的网站或应用程序中使用。

1. PHP Form Builder

如果您想快速创建一个简单的联系表单,那么 PHP Form Builder 可以帮助您快速完成。这个脚本可以轻松地创建文本框、多选框、单选框和下拉菜单等元素。

使用 PHP Form Builder,您只需要简单地定义表单元素、验证规则和成功/失败消息,就可以轻松地创建一个完整的表单。

include "form_builder.php";

$form = new FormBuilder();

$form->add("name", "text", "Your Name", array("required"));

$form->add("email", "email", "Your Email", array("required", "email"));

$form->add("phone", "number", "Your Phone");

$form->add("message", "textarea", "Your Message", array("required"));

$form->setSubmitButton("Send Message");

$form->setSuccessMessage("Your message has been sent successfully!");

$form->setErrorMessage("There was an error sending your message. Please try again.");

echo $form->render();

PHP Form Builder 示例解释:

以上代码中的 form_builder.php 是 PHP Form Builder 的源代码。它创建了一个名为 $form 的表单对象,并添加了四个表单字段,其中三个字段使用了要求验证规则。

之后使用 setSubmitButton 函数来设置提交按钮的名称,使用 setSuccessMessage 函数来设置成功消息,使用 setErrorMessage 函数来设置错误消息。最后使用 render 方法来呈现表单。

2. PHPMailer

当用户提交表单之后,信息需要通过邮件发送给您。如果您使用 PHPMailer,您可以轻松地配置电子邮件设置,从而将表单数据发送到您的电子邮箱中。

以下是 PHPMailer 的使用示例:

use PHPMailer\PHPMailer\PHPMailer;

use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

$mail = new PHPMailer(true);

try {

//Server settings

$mail->SMTPDebug = 0;

$mail->isSMTP();

$mail->Host = 'smtp.gmail.com';

$mail->SMTPAuth = true;

$mail->Username = 'your_email@gmail.com'; // SMTP username

$mail->Password = 'your_password'; // SMTP password

$mail->SMTPSecure = 'tls';

$mail->Port = 587;

//Recipients

$mail->setFrom('from@example.com', 'Mailer');

$mail->addAddress('your_email@example.com', 'You');

// Content

$mail->isHTML(true);

$mail->Subject = 'Subject';

$mail->Body = 'This is the HTML message body in bold!';

$mail->send();

echo 'Message has been sent';

} catch (Exception $e) {

echo 'Message could not be sent.';

echo 'Mailer Error: ' . $mail->ErrorInfo;

}

PHPMailer 示例解释:

以上代码中,首先导入 PHPMailer 的库文件,然后创建一个名为 $mail 的 PHPMailer 对象。

之后,您可以设置 SMTP 设置和电子邮件收件人、主题和正文。最后,调用 send 方法将邮件发送到您的收件箱中。

3. PHP Captcha

使用验证码可以防止恶意攻击者提交虚假表单,保护您的网站或应用程序免受垃圾邮件的侵害。PHP Captcha 是一种简单但有效的图像验证码脚本,可以轻松地嵌入您的表单中。

以下是 PHP Captcha 的使用示例:

session_start();

$captcha = new Captcha();

$captcha->setCode();

$_SESSION["captcha"] = $captcha->getCode();

header("Content-type: image/png");

$captcha->createImage();

PHP Captcha 示例解释:

以上代码中首先调用 session_start 函数,然后创建一个名为 $captcha 的 PHP Captcha 对象。

应用程序的表单在提交之前,需要在创建图像验证码、将验证码存储到 session 中,并在呈现到页面上之前的一系列步骤。最后,呈现和输出验证码图片。

4. PHP Login Script

如果您的应用程序需要用户登录,那么 PHP Login Script 可以帮助您轻松地创建一个安全的登录表单,并验证用户凭据。

以下是 PHP Login Script 的使用示例:

session_start();

if ($_SERVER["REQUEST_METHOD"] == "POST") {

$username = $_POST["username"];

$password = $_POST["password"];

if ($username == "admin" && $password == "password") {

$_SESSION["authenticated"] = "true";

header("Location: dashboard.php");

} else {

$_SESSION["error"] = "Invalid username or password.";

}

}

PHP Login Script 示例解释:

以上代码中首先调用 session_start 函数,然后检查请求类型是否为 POST。如果是,将获取传递过来的用户名和密码。

如果用户名和密码正确,则通过设置 session 变量来验证用户,然后将其重定向到安全页面。

5. PHP Contact Form with File Upload

如果您需要向用户提供文件上传功能,例如让用户上传简历或其他附件,那么 PHP Contact Form with File Upload 可以帮助您完成这个任务。

以下是 PHP Contact Form with File Upload 的使用示例:

session_start();

if ($_SERVER["REQUEST_METHOD"] == "POST") {

$name = $_POST["name"];

$email = $_POST["email"];

$phone = $_POST["phone"];

$message = $_POST["message"];

$file = $_FILES["file"]["name"];

$target_dir = "uploads/";

$target_file = $target_dir . basename($_FILES["file"]["name"]);

if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {

$message .= "\n\nAttached File: http://" . $_SERVER['SERVER_NAME'] . dirname($_SERVER["REQUEST_URI"]) . "/" . $target_file;

}

// Send email with mailer or save to database

}

PHP Contact Form with File Upload 示例解释:

以上代码中,首先获取表单字段,包括附件。然后,设置文件上传目录和要上传的文件名,并将文件移动到上传目录中。最后,您可以使用电子邮件或数据库等方式将表单数据转存到适当的位置。

6. PHP Form Validation Library

PHP Form Validation Library 是一个轻量级的 PHP 库,可以使用它来验证表单数据。这个库可以检查文本框是否为空、电子邮件地址是否有效,以及其他常见的表单验证问题。

以下是 PHP Form Validation Library 的使用示例:

use Respect\Validation\Validator as v;

$errors = array();

if (!$name) {

$errors["name"] = "Name is required";

} else if (!v::alpha()->validate($name)) {

$errors["name"] = "Name can only contain letters";

}

if (!$email) {

$errors["email"] = "Email is required";

} else if (!v::email()->validate($email)) {

$errors["email"] = "Email is invalid";

}

if (!$phone) {

$errors["phone"] = "Phone is required";

} else if (!v::phone()->validate($phone)) {

$errors["phone"] = "Phone is invalid";

}

if (!$message) {

$errors["message"] = "Message is required";

} else if (!v::length(5, 5000)->validate($message)) {

$errors["message"] = "Message must be between 5 and 5000 characters";

}

PHP Form Validation Library 示例解释:

以上代码中,使用 use 声明(引用)了 Respect/Validation 库的类别名 v 这个对象。然后,使用 v::alphav::emailv::phonev::length 等函数,检查字符串是否满足特定格式。

如果出现验证错误,将添加错误消息到 $errors 数组中。否则,表单数据将被视为有效。

7. PHP Form to Email

PHP Form to Email 是一个简单但有效的 PHP 脚本,可以将表单数据发送到电子邮件地址。这个脚本非常易于使用,可以在几分钟内设置。

以下是 PHP Form to Email 的使用示例:

$to = "you@example.com";

$subject = "New Form Submission";

$name = $_POST["name"];

$email = $_POST["email"];

$phone = $_POST["phone"];

$message = $_POST["message"];

$body = "Name: $name\nEmail: $email\nPhone: $phone\nMessage: $message";

$headers = "From: $email";

mail($to, $subject, $body, $headers);

PHP Form to Email 示例解释:

以上代码中,首先设置邮件收件人和主题变量。然后获取表单字段,并将它们格式化为电子邮件正文。最后,使用 PHP 的内置 mail 函数发送电子邮件。

8. Simple PHP Contact Form

Simple PHP Contact Form 是一个轻量级的 PHP 脚本,可以方便地添加一个简单的联系表单到您的网站或应用程序中。这个脚本不需要任何额外的库或依赖,非常容易安装和使用。

以下是 Simple PHP Contact Form 的使用示例:

if ($_SERVER["REQUEST_METHOD"] == "POST") {

$to = "you@example.com";

$subject = "New Form Submission";

$name = $_POST["name"];

$email = $_POST["email"];

$phone = $_POST["phone"];

$message = $_POST["message"];

$body = "Name: $name\nEmail: $email\nPhone: $phone\nMessage: $message";

$headers = "From: $email";

mail($to, $subject, $body, $headers);

}

Simple PHP Contact Form 示例解释:

以上代码中,如果请求是一个 POST 请求类型,那么将获取表单字段,创建电子邮件正文、主题和收件人变量,并使用 mail 函数发送电子邮件。

9. PHP Login with Remember Me

PHP Login with Remember Me 可以帮助您实现一个带有“记住我”的登录表单,使用户不必每次登录都完成所有步骤。

以下是 PHP Login with Remember Me 的使用示例:

session_start();

$users = array(

"admin" => "password",

"user" => "password"

);

if (!empty($_POST)) {

if ($users[$_POST["username"]] == $_POST["password"]) {

$_SESSION["authenticated"] = true;

if (isset($_POST["rememberme"]) && $_POST["rememberme"] == "yes") {

setcookie("username", $_POST["username"], time() + 86400 * 30);

setcookie("password", $_POST["password"], time() + 86400 * 30);

}

header("Location: dashboard.php");

} else {

$_SESSION["error"] = "Invalid username or password";

}

}

if (isset($_COOKIE["username"]) && isset($_COOKIE["password"]) && !isset($_SESSION["authenticated"])) {

if ($users[$_COOKIE["username"]] == $_COOKIE["password"]) {

$_SESSION["authenticated"] = true;

}

}

PHP Login with Remember Me 示例解释:

以上代码中,首先设置了用户名和密码的数组,然后在检查POST请求时,检查传递过来的用户名和密码是否与该数组匹配。如果匹配,则使用 session(如果设置了“记住我”)或 cookie(如果没有)来验证用户。

10. PHP AJAX Form Submit

PHP AJAX Form Submit 可以帮助您使用 AJAX 在不刷新整个网页的情况下提交表单数据,这使得用户体验更加流畅。

以下是 PHP AJAX Form Submit 的使用示例:

session_start();

if ($_SERVER["REQUEST_METHOD"] == "POST") {

$name = $_POST["name"];

$email = $_POST["email"];

$phone = $_POST["phone"];

$message = $_POST["message"];

// Save to database or send email

echo "success";

}

PHP AJAX Form Submit 示例解释:

以上代码中,如果请求类型为 POST,则将获取表单字段,并保存到数据库或发送电子邮件。最后,使用 echo 输出“成功”消息。

11. Multi-Step Form with PHP and jQuery

如果您需要创建一个多步骤表单,您可以使用 PHP 和 jQuery 来实现。这个示例将引导您逐步构建表单,并在每一步向用户展示获取的数据。

以下是 Multi-Step Form with PHP and jQuery 的使用示例:

session_start();

if ($_SERVER["REQUEST_METHOD"] == "POST") {

$_SESSION["name"] = $_POST["name"];

$_SESSION["email"] = $_POST["email"];

$_SESSION["phone"] = $_POST["phone"];

$_SESSION["message"] = $_POST["message"];

echo "success";

}

Multi-Step Form with PHP and jQuery 示例解释:

以上代码中,如果请求类型为 POST,则将获取表单字段,并将它们保存到 session 中。最后,使用 echo 输出“成功”消息。

12. PHP Contact Form with Google reCAPTCHA

Google reCAPTCHA 可以更加有效地防止垃圾邮件和机器人提交虚假的表单数据。如果您的网站或应用程序需要更高级别的安全性,您可以使用 PHP Contact Form with Google reCAPTCHA 增加安全级别。

以下是 PHP Contact Form with Google reCAPTCHA 的使用示例:

require_once "recaptchalib.php";

$secret = "YOUR_SECRET_KEY";

$response = $_POST["g-recaptcha-response"];

$remoteip = $_SERVER["REMOTE_ADDR"];

$recaptcha = new ReCaptcha($secret);

$resp