我正在尝试在网站上放置一个基本的电子邮件表单,并且遇到了"未识别索引"的问题。我四处阅读,发现"isset()"已经解决了这个问题。我发现
$... = isset($_POST['...']);
确实摆脱了错误消息,但我的代码什么也没做。该页面甚至不会刷新或抛出另一个错误。这是我的网页:
<form method="post" action="index.php">
<h1>Send Us an Email</h1>
<header class="emailbody">
<label>Name</label>
<input name="name" placeholder="Type Here">
</header>
<section class="emailbody">
<label>Email</label>
<input name="email" type="email" placeholder="Type Here">
</section>
<footer class="emailbody">
<label>Message</label>
<textarea name="message" placeholder="Type Here"></textarea><br>
</footer>
<div class="submitbutton">
<input id="submit" type="submit" value="Send">
</div>
</form>
这是我的 php:
<?php
$name = isset($_POST['name']);
$email = isset($_POST['email']);
$message = isset($_POST['message']);
$from = 'From: SiteDemo';
$to = 'exemail@gmail.com';
$subject = 'Hello';
$body = "From: $name'n E-Mail: $email'n Message:'n $message";
?>
我已经尝试过在不同索引周围有和没有"isset()"的情况下。如果没有,它会抛出错误,并且代码不会执行任何操作。
有两件事需要纠正:
1)您尚未编写mail()
函数语句。
2) isset()
仅返回TRUE
或FALSE
,具体取决于是否设置了变量。如果设置了变量,它不会返回变量。
将其更正为:
$name = isset($_POST['name']) ? $_POST['name'] : '';
其他变量也是如此。
是的,您可以在此处使用isset()
来检查是否设置了值:
if(isset($_POST['submit']))
{
// if you dont want to send empty email.
if(!empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['message']))
{
$name = trim($_POST['name']);
$email = trim($_POST['email']);
$message = trim($_POST['message']);
$header = "From: SiteDemo";
$to = 'exemail@gmail.com';
$subject = 'Hello';
$body = "From: $name'n E-Mail: $email'n Message:'n $message";
mail($to,$subject,$body,$header);
}
}
并在提交按钮中添加名称属性为:
<input id="submit" type="submit" value="Send" name="submit">