我的想法是让联系表单将所有输入数据编码为JSON文件,然后将其发送到某个地方,我可以使用Google电子表格访问它,使用this method.
这是我当前形式的php部分:
<?php
$errors = array();
$data = array();
if (empty($_POST['name']))
$errors['name'] = 'Name is required.';
if (empty($_POST['email']))
$errors['email'] = 'Email is required.';
if (empty($_POST['superheroAlias']))
$errors['superheroAlias'] = 'Superhero alias is required.';
if ( ! empty($errors)) {
$data['success'] = false;
$data['errors'] = $errors;
} else {
$data['success'] = true;
$data['message'] = 'Success!';}
echo json_encode($data);
这会在表单上显示成功消息,但就是这样。现在我需要用信息做某事。我试图添加一个POST电子邮件功能,只是为了看看我是否真的收到邮件..
$to = "email@email.com";
$from = $_POST['email'];
$first_name = $_POST['name'];
$last_name = $_POST['name2'];
$subject = "Form submission";
$message = $first_name . " " . $last_name . " wrote the following:" . "\n\n" . $_POST['message'];
$message2 = "Here is a copy of your message " . $first_name . "\n\n" . $_POST['message'];
$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2);
然而,现在我甚至没有看到成功的消息,而且我现在陷入困境。
1。邮件没有发送的原因是什么?
2。我如何实际处理我(希望)使用echo json_encode($ data)生成的JSON对象; ?
如果需要,我可以提供表单的html和js部分以供更好的参考。
答案 0 :(得分:0)
如果您正确启用了PHP错误日志,则应该会收到错误/警告。 确保在Web服务器配置中正确设置日志文件路径。 验证是否在php.ini配置中设置了display_errors = On,以及error_reporting = E_ALL
如果没有发送邮件,则可能需要设置SMTP服务。此外,如果您使用的是Linux,则可以检查/var/log/mail.log下的邮件日志,看看是否发生了任何错误。
如果您希望处理您生成的JSON数据,您可以执行:$jsonData = json_decode($data, TRUE);
并将其用作关联数组,就像编码之前一样。