为什么调用错误回调函数?

时间:2015-08-19 17:45:50

标签: php ajax email

我正在试图弄清楚为什么我的 500(内部服务器错误)和我的...?mode=manageAccount函数被调用。代码中是否有任何明显的错误

error

调用
// $nameMap is a map of input names to table cells in the email
// e.g. <input name="email" value="somedude@gmail.com"/> gets made into the row <tr><td><b>Email Address:<b></td><td>somedude@gmail.com</td></tr>
// by the mapping 'email' => 'Email Address' in the array 
$nameMap = array( 'name' => 'Name', 'email' => 'Email Address', 'phone' => 'Phone Number', 'comments' => 'Comments');

// https://css-tricks.com/sending-nice-html-email-with-php/
$headers = "MIME-Version: 1.0\r\nContent-Type: text/html; charset=ISO-8859-1\r\n"; 
function contact ( )
{
    global $nameMap, $headers;

    $info = array('validName' => (strlen(trim($_POST['name'])) > 0 ? true : false), // name good as long as its not empty
                  'validEmail' => (preg_match("!^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$!",trim($_POST['email'])) == 1 ? true : false), // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address
                  'validPhoneNumber' => (preg_match("!^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$!",trim($_POST['phone'])) == 1 ? true : false) // http://stackoverflow.com/questions/123559/a-comprehensive-regex-for-phone-number-validation
                  );
    // see http://stackoverflow.com/questions/482377/php-regex-delimiter-whats-the-point about why "!" is around the regexes

    if (!$info['validName'] || !$info['validEmail'] || !$info['validPhoneNumber']) // if invalid name, email or phone number
    {
        $info['sentEmail'] = false;
    }
    else // inputs contained valid values
    {
        // contstruct email body
        $emailMsg = '<html><body><h3>Someone submitted a contact form ...</h3><table>';
        foreach ( $_POST as $key => $value ) if (array_key_exists($key, $nameMap)) $emailMsg .= '<tr><td><b>' . $nameMap[$key] . ':</b></td><td>' . $value . '</td></tr>';
        $emailMsg .= '</table></body></html>';

        // attempt to send email and set 'sentEmail' key accordingly
        $info['sentEmail'] = email("myemail@gmail.com","A Comment Was Submitted",$emailMsg,$headers) ? true : false;

    }

    echo json_encode($info);    
    die();
}

0 个答案:

没有答案