php throw" undefined index"或不以电子邮件形式发送电子邮件

时间:2016-02-09 10:01:40

标签: php html forms email indexing

我正在尝试在网站上放置一个基本的电子邮件表单,并且在使用"未识别的索引"时遇到了问题。我四处读书,发现" 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;围绕不同的索引。没有,它会抛出一个错误,并且代码没有做任何事情。

2 个答案:

答案 0 :(得分:1)

需要纠正两件事:

1)您尚未编写mail()函数声明。

2)isset()仅返回TRUEFALSE,具体取决于是否设置了变量。如果设置了变量,它不会返回变量。

纠正于:

$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">