I'm trying to send a form via AJAX and PHP but I'm having an error saying : Use of undefined constant php - assumed 'php'.
I've checked the quotes and the dollar signs and everything seems alright. What am I doing wrong here please?
<?php
$formData = $_POST;
$formFields = escapeAndGetFormFields($formData);
$response = array();
if('form1' == $formFields['form-type']['value']){
validateNoEmpty($formFields['first_name']);
validateNoEmpty($formFields['last_name']);
validateEmail($formFields['email']);
if(checkResponse($response)){
sendContact($formFields);
}
echo json_encode($response);
}
if('form2' == $formFields['form-type']['value']){
validateEmail($formFields['email']);
if(checkResponse($response)){
sendNewsletter($formFields);
}
echo json_encode($response);
}
function validateNoEmpty($field){
$value = trim($field['value']);
if (empty($value)) {
setResponse('error', $field, 'Is required');
}
}
function validateEmail($field){
if(!$field['value']){
setResponse('error', $field, 'No email address provided');
}elseif(!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $field['value'])) {
setResponse('error', $field, 'Email address is invalid');
}
}
function escapeAndGetFormFields($formData)
{
$formFields = array();
foreach ($formData as $name => $value) {
$formFields[$name] = array('name' => $name, 'value' => htmlspecialchars($value));
}
return $formFields;
}
function setResponse($status, $field, $msg)
{
if(!is_null($field)){
$field = $field['name'];
}else{
$field = null;
}
$result = array('status' => $status, 'field' => $field, 'msg' => $msg);
$GLOBALS['response'][] = $result;
}
function checkResponse($response)
{
foreach ($response as $key => $value) {
if('error' == $value['status']){
return false;
}
}
return true;
}
function sendNewsletter($formFields){
$body = "You have got new email : <br><br>";
$body .= "Email: ".$formFields['email']['value'];
$headers = "From: ".$formFields['email']['value']. "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$subject = "New Subscribe";
mail('mail@mail.com', $subject, $body, $headers);
setResponse('success', null, 'Success! Thanks for sign up.');
}
function sendContact($formFields){
$body = "You have got a new registration : <br><br>";
$body .= "First Name: ".$formFields['first_name']['value']." <br><br>";
$body .= "Last Name: ".$formFields['last_name']['value']." <br><br>";
$body .= "Email: ".$formFields['email']['value']." <br><br>";
$headers = "From: ".$formFields['email']['value']. "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$subject = "New Registration";
mail('mail@mail.com', $subject, $body, $headers );
setResponse('success', null, 'Success! Thanks for registration.');
}
?>
Update : I've noticed that another error appear sometimes : PHP Parse error: syntax error, unexpected '$formData' (T_VARIABLE) ... on Line 1