繁体   English   中英

如何通过php脚本将多个输入从表单发送到电子邮件

[英]How to send multiple inputs from form to email via php script

因此,我有这个小的php脚本,该脚本在表单完成后会将信息发送到我的电子邮件中。 我能够使它与一个输入一起使用,但是,当尝试指定3个不同的输入时,它不会通过。

我怀疑也许我没有在if语句的开头使用isset指定输入。 我是php的新手,非常感谢我可以获得的所有帮助,无论如何,这是代码。

       <?php

    if (isset($_POST['name' && 'emailq' && 'message'])){
  $visitor_name = $_POST['name'];
  $visitor_email = $_POST['emailq'];
  $visitor_message = $_POST['message'];

  $email_from = "LightDesigns";
  $email_subject = "new quot";
  $email_body = "Name: " .$visitor_name."\nEmail: " .$visitor_email."\n\n" 
 .$visitor_message;

  $to = "stefanvujic576@gmail.com";
  $headers = "From: $email_from \r\n";
  $headers .= "Reply-To: $visitor_email \r\n";
  $result = mail($to,$email_subject,$email_body,$headers);
}
?>

<?php
$link_address = 'www.light-designsonline.co.uk';
if ($result){
    echo '<link href="css/phpcss.css" rel="stylesheet">';
    echo "<header></header>";
    echo '<h1>Thank You!</h1>';
    echo "<p>I'll get in contact with you shortly.</p>";

 }else{
    echo '<link href="css/phpcss.css" rel="stylesheet">';
    echo "<header></header>";
  ?>
  }
 <?php
  }
?>

<form action="quotform.php" method="POST" class="quote" name="quot">
        <div>
        <h1>Get a quot</h1>
        <hr align="left" style="width: 82%;">
            <label>Name</label><br>
            <input type="text" placeholder="Name" class="form" autocomplete required name="name">
                </div>
                    <div>
                        <label>Email</label><br>
                        <input type="email" placeholder="Email Address" class="form" autocomplete required name="emailq"> 
                    </div>
                <div>
            <label>Message</label><br>
            <textarea placeholder="Message" name="message"></textarea>
        </div>
            <button class="button_1" type="submit" class="form"><span>Send</span></button>
    </form>

这是不对的

if (isset($_POST['name' && 'emailq' && 'message'])){

这意味着将“ name”,“ emailq”和“ message”值进行“与”运算,这将是逻辑TRUE,并检查$ _POST数组是否具有键TRUE的值

您需要的是

if (isset($_POST['name']) && isset($_POST['emailq']) && isset($_POST['message'])){

或者你可以使用

if (isset($_POST['name'], $_POST['emailq'],$_POST['message'])){

正如Magnus Eriksson所提到的

每个都必须是一个单独的逻辑表达式,然后将其与在一起

您需要像下面的代码一样分别检查输入。

if (isset($_POST['name']) && isset($_POST['emailq']) && isset($_POST['message']))

您应该通过以下方式检查这些字段:

if (   isset($_POST['name'])
    && isset($_POST['emailq'])
    && isset($_POST['message'])) {
    //...
}

甚至使用数组:为您输入如下名称: name="input[name]"name="input[mail]" ,依此类推。 然后,您可以通过$_POST['input']来访问input数组,这更加干净。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM