function send_newsletter() {
$name = $_POST['name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$city = $_POST['city'];
$address = 'n/a';
$doc = new DOMDocument();
$doc->load('xml/lead.xml');
$doc->formatOutput = true;
$tags = $doc->getElementsByTagName('lead');
$r = $tags->item(0);
$b = $doc->createElement( 'contact' );
$b->setAttribute('FirstName', ''.$name.'');
$b->setAttribute('LastName', ''.$last_name.'');
$b->setAttribute('Email', ''.$email.'');
$b->setAttribute('StreetAddress', ''.$address.'');
$b->setAttribute('City', ''.$city.'');
$r->appendChild( $b );
if($doc->save("xml/lead.xml")) {
$the_return = array('request'=>'success');
echo json_encode($the_return);
}
else{
$prompt = "Sign up failed. Please try again.";
$the_return = array('request'=>'failed','prompt'=>$prompt);
echo json_encode($the_return);
}
die();
}
Этот код работает на нескольких моих серверах, однако я использую предоставленный мне тестовый сервер и по какой-то причине выдает внутреннюю ошибку сервера 500, поэтому я не знаю, что не так с кодом,У меня были похожие проблемы с рабочим кодом на моем сервере, который не работал на этом сервере, и причина обычно была в синтаксисе.
Путем проб и ошибок я определил, что $doc->save("xml/lead.xml")
- это проблема.Хотя я не знаю почему.
Может кто-нибудь, пожалуйста, посмотрите на меня?это может быть что-то глупое, например пропущенная цитата.
Спасибо