When I click the submit button it's loading but no error and also i'm not getting mail [closed]

自古美人都是妖i 提交于 2021-01-28 03:20:16

问题


PHP Email form with attachment not working by PHPMailer help me what I'm missing. Without form and PHP code it's working in localhost but when i merge with the form it's totally not working..

 <?php


    require 'vendor/autoload.php';
    require 'classes/config.php';

    if(isset($_POST['submit'])){

    $name = $_POST['name'];
    $email = $_POST['email'];
    $mobile = $_POST['mobile'];
    $mat = $_POST['mat'];
    $res = $_POST['res'];
    $tech = $_POST['tech'];
    $city = $_POST['city'];
    $message = $_POST['message'];
    $content='<br><br>Name: '.$name.'<br>'.'<br>Mobile: '.$mobile .'<br>Material: '.$mat.'<br>Res: '.$res.'<br>tech: '.$tech.'<br>City: '.$city .'<br>Message: '.$message.'<br>Email: '.$email;

    $file_name = ($_FILES['image']['name']);
    $file_tmp = ($_FILES['image']['tmp_name']);
    $file_path = "upload";

    if(move_uploaded_file($file_tmp, "uploads" . $file_name)){

    $mail = new PHPMailer\PHPMailer\PHPMailer();

        $mail->isSMTP();                                          
        $mail->Host       = Config::SMTP_HOST;                    

        $mail->Username   = Config::SMTP_USER;                     
        $mail->Password   = Config::SMTP_PASS;
        $mail->Port       = Config::SMTP_PORT;                               
        $mail->SMTPSecure = 'tls'; 
        $mail->SMTPDebug = 2;  
        $mail->SMTPAuth   = true;   
        $mail->isHTML(true); 
        $mail->CharSet = 'UTF-8';
        $mail->setFrom('mail');
        $mail->addAddress('mail');
        $mail->Subject = 'Got a Enquiry';
        $mail->Body    = $content;
        $mail->addAttachment($file_path, $file_name);

        if($mail->send()){

          echo 'Super';
        } else {

        echo 'nothing:' .$mail->ErrorInfo;

    }
    }
    }

    ?>



<form class="montform" id="reused_form" enctype=&quot;multipart/form-data&quot; >

                        <div class="col-lg-4 col-md-4 col-sm-12 col-xs-12 bzd-upload-1-1">
                            <div class="col-lg-12 frm-bg">
                                <img src="img/upload-icon.png" class="img-responsive">
                                 <p>Drag and Drop Files<br/>
                        or Upload Here</p>
                          <p class="file">

                                    <label for="file_attach">
                               <h6>Browse</h6>
                            </label>
                            <input name="image" type="file" id="file" class="feedback-input">
                        </p>
                            </div>



                        </div>

                         <div class="col-lg-8 col-md-8 col-sm-12 col-xs-12 bzd-form-1-1">


                        <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 form-group">
                            <label class="form-1-1">Name</label>

                        <p class="name">

                            <input name="name" type="text" class="feedback-input" required placeholder="Name" id="name" />

                        </p>
                             </div>


                       <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 form-group">  
                           <label class="form-1-1">Email</label>
                        <p class="email">

                            <input name="email" type="email" required class="feedback-input" id="email" placeholder="Email" />

                        </p>
                             </div>

                        <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 form-group">     
                            <label class="form-1-1">Mobile No</label>
                        <p class="name">

                            <input name="phone" type="tel" class="feedback-input" required placeholder="Phone" id="phone" />

                        </p>
                             </div>

                         <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 form-group">
                             <label class="form-1-1">Material</label>
                         <p class="name">

                            <input name="mat" type="tel" class="feedback-input" required placeholder="Material" id="mat" />

                        </p>
                             </div>

                         <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 form-group">  
                             <label class="form-1-1">Resolution</label>
                         <p class="name">

                            <input name="res" type="tel" class="feedback-input" required placeholder="Resolution" id="res" />

                        </p>
                             </div>

                        <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 form-group">   
                            <label class="form-1-1">Technology</label>
                         <p class="name">

                            <input name="tech" type="tel" class="feedback-input" required placeholder="Technology" id="tech" />

                        </p>
                             </div>

                        <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 form-group">  
                            <label class="form-1-1">City</label>
                        <p class="name">

                            <input name="city" type="text" class="feedback-input" required placeholder="City" id="city" />

                        </p>
                             </div>

                       <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 form-group"> 
                           <label class="form-1-1">Message</label>
                        <p class="text">

                            <textarea name="message" class="feedback-input" id="comment" placeholder="Message"></textarea>

                        </p>
                             </div>

                              <div class="submit">
                            <button type="submit" class="button-blue">SUBMIT</button>
                            <div class="ease"></div>
                        </div>

                        </div>    

                    </form>

When I click the submit button it's loading... No error displayed and also i'm not getting mail. I am also search some more articles but still it is not resolved.. kindly help me in this..


回答1:


You are checking this:

if(isset($_POST['submit'])){

but your form does not contain an input named submit, so this condition will never be true and your sending code will not be run.

You have this submit button:

<button type="submit" class="button-blue">SUBMIT</button>

but it has no name or value attribute. Change it to this:

<button type="submit" name="submit" class="button-blue">SUBMIT</button>



回答2:


You should check your error_log file it would show you whats going wrong.

Actualy $mail->SMTPDebug = 2; would create troubleshoots of errors too, so maybe your emails going to spam box.

Here is the code working on my localhost :

require_once "vendor/autoload.php";

$mail = new PHPMailer\PHPMailer\PHPMailer(true);
//Or $mail = new PHPMailer; 
//Enable SMTP debugging. 
$mail->SMTPDebug = 3; 
//Set $mail->SMTPDebug = 0; on live sites.                        
//Set PHPMailer to use SMTP.
$mail->isSMTP();            
//Set SMTP host name                          
$mail->Host = "smtp.gmail.com";
//Set this to true if SMTP host requires authentication to send email
$mail->SMTPAuth = true;                          
//Provide username and password     
$mail->Username = "useremail@gmail.com";                 
$mail->Password = "password";                           
//If SMTP requires TLS encryption then set it
//$mail->SMTPSecure = PHPMailer\PHPMailer\PHPMailer::ENCRYPTION_STARTTLS;                         
//Set TCP port to connect to 
$mail->Port = 587;                                   

$mail->From = "name@gmail.com";
$mail->FromName = "Full Name";

$mail->smtpConnect(
    array(
        "ssl" => array(
            "verify_peer" => true,
            "verify_peer_name" => true,
            "allow_self_signed" => false
        )
    )
);
//This won't require any server settings on your localhost.

$mail->addAddress("Recepient@email.com", "Recepient Name");

$mail->isHTML(true);

$mail->Subject = "Subject Text";
$mail->Body = "<i>Mail body in HTML</i>";
$mail->AltBody = "This is the plain text version of the email content";

if(!$mail->send()) 
{
    echo "Mailer Error: " . $mail->ErrorInfo;
} 
else 
{
    echo "Message has been sent successfully";
}

Change credentials to yours, and see if your emails not going to spam box.

Change your form line to this : <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" class="montform" id="reused_form" enctype="multipart/form-data"> you dont have post method in your form, it doesnt post your values to php page.

NOTE : if your php codes are not in same page! change this <?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?> to your page.php in action.

Change Your upload codes to :

$file_name = ($_FILES['image']['name']);
$file_tmp = ($_FILES['image']['tmp_name']);
$file_path = "upload/";

if(move_uploaded_file($file_tmp, $file_path.$file_name)){


来源:https://stackoverflow.com/questions/60501828/when-i-click-the-submit-button-its-loading-but-no-error-and-also-im-not-gettin

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!