【问题标题】:contact form in PHP [closed]PHP中的联系表格[关闭]
【发布时间】:2013-12-21 11:01:34
【问题描述】:

我在 PHP 中有一个联系表单,它给了我一些错误。这是我使用的代码:

$message=$_POST["name"]."\r\n".$_POST["email"]."\r\n".$_POST["phone"]."\r\n".$_POST["subject"]."\r\n".$_POST["message"];

smtpmailer('ali_n_claudiu@yahoo.com', 'mailinteraction@gmail.com', 'Improve Mediehus Aarhus', 'From contact form', $message);

我的问题是,当我第一次加载页面时,它会给我关于所有字符串的“$message=...”行的错误:

注意:未定义索引:第 56 行 D:\xampp\htdocs\interaction\contact.php 中的名称
注意:未定义索引:第 56 行 D:\xampp\htdocs\interaction\contact.php 中的电子邮件 电话、主题和消息也出现同样的错误。

在我提交联系表单后,我不再收到错误消息。

当我第一次加载页面时,它会发送并清空电子邮件到所需的地址

最后一个问题是,即使我在提交电子邮件后使用 javascript 代码来接收弹出消息,我也没有收到任何消息。

我阅读了其他帖子并尝试了您给其他人的不同想法,但出现了类似错误,但没有任何结果。

【问题讨论】:

    标签: php forms email post


    【解决方案1】:

    您应该使用 isset 构造在分配之前检查变量。

    if(isset($_POST["name"]))
    {
    $name = $_POST["name"];
    }
    else
    {
    echo "Name is not set";
    }
    

    如果您的其他 $_POST 变量在传递给您的 smtpmailer() 之前,您应该为所有变量执行此操作。

    【讨论】:

      【解决方案2】:

      按钮代码

      <input type="submit" name="submit">
      

      并替换代码

      if(isset($_POST['submit'])){
      
      $message=$_POST["name"]."\r\n".$_POST["email"]."\r\n".$_POST["phone"]."\r\n".$_POST["subject"]."\r\n".$_POST["message"];
      
      smtpmailer('ali_n_claudiu@yahoo.com', 'mailinteraction@gmail.com', 'Improve Mediehus Aarhus', 'From contact form', $message);
      
      }
      

      $message=$_POST["name"]."\r\n".$_POST["email"]."\r\n".$_POST["phone"]."\r\n".$_POST["subject"]."\r\n".$_POST["message"];
      
      smtpmailer('ali_n_claudiu@yahoo.com', 'mailinteraction@gmail.com', 'Improve Mediehus Aarhus', 'From contact form', $message);
      

      【讨论】:

      • 它工作流畅,但我有另一个问题,关于我希望在发送表单后显示的弹出消息。我在 smtpmailer 函数的末尾使用了 JavaScript if(!$mail-&gt;Send()){ echo "&lt;script type='text/javascript'&gt;alert('submitted successfully!')&lt;/script&gt;"; },但它不起作用,它不显示弹出窗口。
      • 试试这个 if(smtpmailer('ali_n_claudiu@yahoo.com', 'mailinteraction@gmail.com', '改善 Mediehus Aarhus', '来自联系表', $message)){ echo "alert('提交成功!')";}
      【解决方案3】:

      使用 isset 如@Shankar Damodaran 所说或

      如果你想隐藏通知和错误,试试这个。

      ini_set("display_errors","off"); //如果你想显示错误,设置它

      【讨论】:

        【解决方案4】:
        if(isset($_POST['name'])){
            $message=$_POST["name"]."\r\n".$_POST["email"]."\r\n".$_POST["phone"]."\r\n".$_POST["subject"]."\r\n".$_POST["message"];
            smtpmailer('ali_n_claudiu@yahoo.com', 'mailinteraction@gmail.com', 'Improve Mediehus Aarhus', 'From contact form', $message);
        }
        

        这种方式只有在提交表单时才会发送电子邮件

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多