对不起,我还在学习!在这个练习中,我必须创建一个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>');