将数据保存在JSON对象中并在线发送

时间:2016-01-28 13:58:51

标签: php json

我的想法是让联系表单将所有输入数据编码为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部分以供更好的参考。

1 个答案:

答案 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);并将其用作关联数组,就像编码之前一样。