如何在PHP中将表单输入(电子邮件)打印为可通过邮件发送的链接


How to print form input (email) as a mail-able link in PHP

对不起,我还在学习!在这个练习中,我必须创建一个PHP代码,如果输入-->是电子邮件地址,它将以链接的形式输出-->;如果不是电子邮件地址,则以字符串的形式输出。

我似乎无法将其链接为电子邮件地址。我使用使输出打印了一个链接,但它只是在地址行上打印$email。太沮丧了。有什么帮助吗?

<!DOCTYPE HTML> 
<html>
    <head>
        <style>
            .error {color: #ffffff; font-family: 'Arial'; background-color: #000000; border-radius: 10px; padding:10px;}
        </style>
    </head>
    <body> 
        <?php
$headers  = 'MIME-Version: 1.0' . "'r'n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "'r'n";
$emailErr = "";
$email = "";
if ($_POST) {

    if (empty($_POST["email"])) {
        $emailErr = "Email is required";
    } else {
        $email = test_input($_POST["email"]);
        // check if e-mail address is well-formed
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $emailErr = "Invalid email format"; 
        }
    }

}
function test_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}
        ?>
        <h2>PHP Form Validation Example</h2>
        <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
            E-mail: <input type="text" name="email">
            <span class="error">* <?php echo $emailErr;?></span>
            <input type="submit" name="submit" value="Submit"> 
        </form>
        <?php
echo "<h2>Your Input:</h2>";
if ($_POST) {

    if (empty($_POST["email"])) {
        $emailErr = "Email is required";
    } else {
        $email = test_input($_POST["email"]);
        echo ( '<a href="mailto:$email">Click Me</a>');
        // check if e-mail address is well-formed
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $emailErr = "$email"; 
        }
    }

}
        ?>
    </body>
</html>

如果单击了表单按钮,请继续检查电子邮件字段是否为空。如果它的空create错误为else,则调用执行另一个out的test_input函数。

 $emailErr = "";
 $email = "";
if (isset($_POST)) {
        if (empty($_POST["email"])) {
            $emailErr = "Email is required";
        } else {
            $email = test_input($_POST["email"]);
        }
    }

这个函数做了一些安全性的工作,但最重要的是,它使用filter_var函数来检查提交的输入是否是电子邮件。如果是电子邮件,则将上面的电子邮件变量设置为链接,或者将其设置为用户提交的字符串。

    function test_input($data) {
        $data = trim($data);
        $data = stripslashes($data);
        if (filter_var($data, FILTER_VALIDATE_EMAIL)) {
            $result = '<a href="mailto:' . $data . '">Click Me</a>';
        } else {
            $result = $data;
        }
        return $result;
    }
    ?>

在这个级别上,你不需要验证任何东西,你只需要回显上面设置的错误(如果用户提交了空表单(或test_input函数设置的电子邮件变量。

    <h2>PHP Form Validation Example</h2>
    <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> 
        E-mail: <input type="text" name="email" value="">
        <span class="error">* <?php echo $emailErr; ?></span>
        <input type="submit" name="submit" value="Submit"> 
    </form>
    <h2>Your Input:</h2>
    <?php echo $email; ?>
echo ( '<a href="mailto:$email">Click Me</a>');

echo ( '<a href="mailto:' . $email . '">Click Me</a>');