如何证明这种联系表格的结果?

时间:2013-10-10 02:21:03

标签: php html forms html-email

我已经制作了我的联系表格并且工作得很好,除非当有人给我发消息时,它没有任何格式,如下图所示:

e-mail without any style, just row text

这是我使用的.php代码:

    $formdata = array (
       'name' => $name,
       'city' => $city,
       'message' => $message
    );

    if ( !( $formerrors ) ) :
        $to  = "me@sipledomain.com";// input my name address to get mail to
        $subject = "From $name";
        $message =  json_encode($formdata);

        if ( mail( $to, $subject, $message ) ):
           $msg = "Thanks for filling out the form, i will contact you soon";
        else:
           $msg = "Problem sending the message";
        endif; // mail form data
    endif; // check for form errors
 endif; //form submitted

提前致谢

2 个答案:

答案 0 :(得分:1)

json_encode()将您的数组编码为一行文本,以便稍后解码,而不是供人类阅读。

相反,我会通过编写您自己的HTML或给它换行来自己构建您的电子邮件。您可以通过解析/迭代数组来以编程方式执行此操作。

例如:

$message = 'Name: '.$formdata['name'].'<br />'.$formdata['city'].'<br />'.'...';


如果你真的想要编码为JSON,你需要在编码后解析JSON并做同样的事情。

当您调用名为json_encode()的{​​{1}}来保留空格时,您可能需要查看一个标记。更多信息:http://www.php.net/manual/en/json.constants.php

使用中:JSON_PRETTY_PRINT


为了使用JSON,我喜欢使用像http://jsonmate.com/这样的工具将JSON格式化为一个整洁的树。

答案 1 :(得分:0)

如果需要,可以通过将所有内容包装在标准HTML标记中,将电子邮件作为格式化HTML发送。否则,PHP会将消息发送为未格式化,因此请使用\n来破坏行等。