我可以通过mailto提交表单:如果我无法在服务器上处理它?

时间:2012-12-13 01:14:06

标签: php javascript jquery html forms

我正在为一个带有PHP表单处理器的客户端创建一个小型网站。如果Web服务器中没有PHP,我希望联系表单回退到mailto方法。这看起来很奇怪,但我只需要确保他们可以在任何地方部署它。

现在我有:

form method="post" action="my_form_processor.php"

无论如何都要处理这个问题?

3 个答案:

答案 0 :(得分:1)

您可以在目录中提供两个文件:index.html和index.php。除了表单的工作方式外,内容是相同的。

如果安装了php,它将(通常可以根据服务器配置进行更改)在index.html服务主页时更喜欢index.php。如果不存在php,服务器将改为服务index.html。

链接时,只需转到目录而不是文件。例如链接到example.com/foo/而不是example.com/foo/index.php。

虽然我同意评论说你可能想做别的事情,比如需要php,因为表单mailto有点糟糕,而且php很常见。

答案 1 :(得分:1)

这听起来不错,但技术上难以解决:

  • 使用php:var myVar = "<?php echo 'php'; ?>";
  • 设置javascript变量
  • myVar === 'php'的javascript中进行测试,如果结果为action,则更改表单的false属性。

当然,如果访问者已禁用javascript,这也会失败,因此您最好向客户端提供服务器要求列表。

答案 2 :(得分:1)

这是一个坏主意。如果您的客户拒绝安装服务器端语言,他们将无法获得动态网站。

只是为了好玩,你可能会做这样的事情:

<script>
    if ('<?php ?>'.length != 0) {
        $('#form').attr('action', 'mailto:fallback@example.com');
    }
</script>