【问题标题】:Email not sent when submitting form提交表单时未发送电子邮件
【发布时间】:2013-10-30 19:24:13
【问题描述】:

我创建的网站有一个非常奇怪的问题。

基本上,我有一个使用“穷人路由器”构建的网站,因此当我访问 site.com/contact 时,它会在该目录中找到 index.php,该目录中设置了一些变量,并且包含一个抓取我网站的骨架(主要结构)。在骨架内部,我有另一个包含特定页面的内容,该内容由我之前提到的 index.php 文件中设置的变量指定。

所以问题是,当我进入这个联系页面时,我有一个联系表格,一旦提交就应该发送一封电子邮件。一切看起来都很好,但是联系页面内容文件中的 PHP 从未执行过。所以我似乎已经把它缩小到一个问题,如果内容文件比骨架文件的目录更深,它就不起作用。让我告诉你目录是怎样的:

/
--skeleton.php

--/content
----contact.php

--/contact
----index.php

所以它是 index.php -> skeleton.php -> contact.php

contact.php 中的 PHP 不工作,除非我把它放在根目录下。为什么这样做?我知道我正在做的不是最理想的方式,但这不是我寻求帮助的方式。我只需要知道为什么以这种方式组织文件时没有执行 PHP。

//INDEX.PHP

$content = 'contact.php';

include('../skeleton.php');
//SKELETON.PHP

include($site . 'content/' . $content);
//CONTACT.PHP

if($send_info == 1) {
    // send email
} else {
    // show form
}

【问题讨论】:

  • 请过去一个代码,代码是最好的解释。人们不使用英语编程是有原因的 :)
  • 我添加了代码,但代码不是问题。这是一个文件包含另一个文件,该文件包含另一个文件,但它的代码没有运行,我已将问题缩小到文件所在的位置。它在根目录中有效,但在内容目录中时无效。

标签: php forms


【解决方案1】:

如果没有看到更多代码,一个建议是您的包含文件引用了不正确的路径。你知道skeleton.php 和contact.php 文件正在加载吗?您能否在每个文件中放置一些调试行来回显输出消息以显示文件正在加载以及它们到达的位置?能否将 include('filename') 更改为 require('filename') 以查看它们是否真的被包含在内?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-01
    • 2015-03-28
    • 2016-07-26
    • 1970-01-01
    • 2021-05-09
    • 2019-04-24
    • 2016-11-23
    相关资源
    最近更新 更多