我正在尝试在网站上放置一个基本的电子邮件表单,并且在使用"未识别的索引"时遇到了问题。我四处读书,发现" isset()"解决了这个问题。我找到了
$... = isset($_POST['...']);
确实摆脱了错误消息,但我的代码什么也没做。该页面甚至不刷新或抛出另一个错误。这是我的HTML:
<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";
?>
我在使用和不使用&#34; isset()&#34;围绕不同的索引。没有,它会抛出一个错误,并且代码没有做任何事情。
答案 0 :(得分:1)
需要纠正两件事:
1)您尚未编写mail()
函数声明。
2)isset()
仅返回TRUE
或FALSE
,具体取决于是否设置了变量。如果设置了变量,它不会返回变量。
纠正于:
$name = isset($_POST['name']) ? $_POST['name'] : '';
其他变量相同。
答案 1 :(得分:0)
是的,您可以在此处使用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">