【发布时间】:2020-11-28 00:32:29
【问题描述】:
我想发送一封带有表单参数的电子邮件,使用 AngularJs 和 PHP,电子邮件正在发送,但参数(名称、电子邮件等)为空。错误在哪里? 我对 AngularJS 很陌生,并试图建立一个联系表格。我做了一些研究来验证角度,这很好用。但是将输入发送到我的电子邮件帐户仍然是一个谜。
HMTl 代码:
<form id="myform" name="myForm" data-abide role="form" ng-submit="processForm()">
<div class="formData.name">
<label>Your name <small>required</small>
<input type="text" name="formData.name" id="formData.name" required pattern="[a-zA-Z]+" ng-model="formData.name">
</label>
<small class="error">Name is required.</small>
</div>
<div class="formData.name">
<label>Your subject <small>required</small>
<input type="text" name="formData.subject" id="formData.subject" required pattern="[a-zA-Z]+" ng-model="formData.subject">
</label>
<small class="error">subject is required.</small>
</div>
<div class="formData.inputEmail-field">
<label>Email <small>required</small>
<input type="email" name="formData.email" id="formData.email" required ng-model="formData.email">
</label>
<small class="error">An email address is required.</small>
</div>
<div class="formData.tel">
<label>Phone #
<input type="text" name="formData.tel" id="formData.tel"required pattern="^([0-9]( |-)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-)?([0-9]{3}( |-)?[0-9]{4}|[a-zA-Z0-9]{7})$" ng-model="formData.tel">
</label>
<small class="error">Please enter your number in the format '123-456-7890'.</small>
</div>
<div class="formData.message">
<label>Message
<textarea name="formData.message" id="formData.message" ng-model="formData.message"></textarea> </label></div>
<button type="submit" class="columns small-centered">Submit</button>
<div class="panel">
<p>{{formData}}</p>
<p>{{codeStatus}}</p>
</div>
</form>
我的控制器中的代码:
$scope.processForm = function() {
$http({
method : 'POST',
url : 'process.php',
data : $.param($scope.formData),
headers : { 'Content-Type': 'application/x-www-form-urlencoded' },
}).success(function(formData) {
console.log(formData);
if (formData.success) {
console.log('Success');
} else {
console.log('Fail');
}
});
};
PHP 代码:
<?php
$postdata = file_get_contents("php://input");
if(!isset($postdata)) {
$response = array('status' => 'error', 'value'=>'Eroare de server - 0.');
die(json_encode($response));
}
$request = json_decode($postdata);
$name = htmlspecialchars($request->name);
$tel = htmlspecialchars($request->tel);
$email = htmlspecialchars($request->email);
$subject = htmlspecialchars($request->subject);
$mess = htmlspecialchars($request->message);
$to = "cristina@yahoo.com";
$subject = $subject;
$message = "The user: $name contacted you using the contact form. His details are:\r\nPhone: $tel\r\nEmail: $email\r\nMessage: $mess";
$headers = "From: <".$email.">". "\r\n";
$headers .= "Reply-To: <".$email.">". "\r\n";
$headers .= 'MIME-Version: 1.0'. "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8'. "\r\n";
if(mail($to, $subject, $message, $headers)) {
$response = array('status' => 'success', 'value'=>'Mail trimis');
echo json_encode($response);
} else {
$response = array('status' => 'error', 'value'=>'Mail netrimis');
die(json_encode($response));
}
?>
【问题讨论】: