I am totally beginner. I am trying to understand how can I fix this error (Uncaught SyntaxError: Unexpected token < in JSON at position 0) and how this code works? (Access my website: rodcurvelo.com, click contact e fill out my form. See the inspection and you will see the error).
That's my contact form:
<form method="post" id="contactForm" name="contactForm">
    <input type="hidden" name="subject" value="Message Contact Form">
    <div class="form-group">
      <label>Your Name (*)</label>
      <input type="text" class="form-control form-flat" name="fullname" required>
    </div>
    <div class="form-group">
      <label>Email (*)</label>
      <input type="email" class="form-control form-flat" name="email" required>
    </div>
    <div class="form-group">
      <label>Your Message (*)</label>
      <textarea class="form-control form-flat" name="message" rows="8" required></textarea>
    </div>
    <div class="form-group">
      <div id="captcha1"></div>
    </div>
    <div class="form-group ">
      <button type="submit" class="btn btn-flat-solid primary-btn" >Send Message</button>
    </div>
    <div class="form-group">
      <div class="preload-submit hidden"><hr/> <i class="fa fa-spinner fa-spin"></i> Please Wait ...</div>
      <div class="message-submit error hidden"></div>
    </div>
</form>
That's my PHP sending email file:
<?php 
session_start();
//configuration 
$path = 'uploads';
$filename = (isset($_POST['file']) && $_POST['file'] != '') ? 
$_POST['file'] : NULL;
$message = $_POST['message'];
$from = $_POST['email'];
$subject = $_POST['subject'];
$mailto = 'rod@gmail.com';
// check if any attachment
if ($filename) {
    $file = $path . "/" . $filename;
    $file_size = filesize($file);
    $handle = fopen($file, "r");
    $content = fread($handle, $file_size);
    fclose($handle);
    $content = chunk_split(base64_encode($content));
}
// a random hash will be necessary to send mixed content
$separator = md5(time());
// carriage return type (we use a PHP end of line constant)
$eol = PHP_EOL;
// main header (multipart mandatory)
$headers = "From: ". $_POST['fullname']." <" . $from . ">" . $eol;
$headers .= 'Reply-To: <'.$from.'>' . $eol;
$headers .= "MIME-Version: 1.0" . $eol;
$headers .= "Content-Type: multipart/mixed; boundary=\"" . $separator . 
"\"" . $eol . $eol;
$headers .= "Content-Transfer-Encoding: 7bit" . $eol;
$headers .= "This is a MIME encoded message." . $eol . $eol;
// message
$headers .= "--" . $separator . $eol;
$headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"" . $eol;
$headers .= "Content-Transfer-Encoding: 8bit" . $eol . $eol;
$headers .= $message . $eol . $eol;
// attachment
if ($filename) {
      $headers .= "--" . $separator . $eol;
      $headers .= "Content-Type: application/octet-stream; name=\"" . $filename 
      . "\"" . $eol;
      $headers .= "Content-Transfer-Encoding: base64" . $eol;
      $headers .= "Content-Disposition: attachment" . $eol . $eol;
      $headers .= $content . $eol . $eol;
      $headers .= "--" . $separator . "--";
}
$ress = array('error' => NULL, 'msg' => NULL);
// check captcha first;
if (isset($_SESSION['simpleCaptchaAnswer']) && $_POST['captchaSelection'] 
 == $_SESSION['simpleCaptchaAnswer']) {
    //SEND Mail
    if (mail($mailto, $subject, "", $headers)) {
        $ress['msg'] = "Thanks, I will get back to you ASAP";
    } else {
        $ress['error'] = "error : email not sent";
    }
} else {
    $ress['error'] = "Please check your answer!";
}
//respond to json
echo json_encode($ress);
 
     
    
Warning: mail(): Multiple or malformed newlines found in additional_header in /home/rodcurvelo/public_html/php/sending_mail.php on line 43
{"error":"Please check your answer!","msg":null} """. I've found this potential solution. https://stackoverflow.com/questions/30887610/error-with-php-mail-multiple-or-malformed-newlines-found-in-additional-header. My guess is each header should contain one $eol. – Karl Graham Mar 19 '18 at 15:56