0

正如我们所有人所做的那样,我正在冒险进入另一个编程项目。我正在使用 xhtml 标准 1.0、CSS、Javascript 和 PHP 手动构建一个网站。这里没什么特别的,但是我在 PHP 开发过程中遇到了一个非常有趣的问题。

我编写了工作代码以将电子邮件发送到网站联系电子邮件,并通过表格发送给发件人。我还想在服务器内部记录这些事务。从我的研究来看,这应该很容易。这就是我所拥有的。

    $fileVar = fopen("../data/feedback.txt", "a")
    or die("Error: Could not open the log file.");
    fwrite($fileVar, "\n-------------------------------------------------------\n")
    or die("Error: Could not write to the log file.");
    fwrite($fileVar, "Date received: ".date("jS \of F, Y \a\\t H:i:s\n"))
    or die("Error: Could not write to the log file.");
    fwrite($fileVar, $messageToBusiness)
    or die("Error: Could not write to the log file.");

我存储反馈文本的目录是我的 public_html(主目录,然后是 easy peasy...data/feedback.txt。

我正在使用标准权限......从字面上看,755 用于目录,644 用于文件,没什么特别的。但是,每次执行时,我都会收到第一个错误。

(“错误:无法打开日志文件。”)

我需要帮助,更重要的是如果你知道为什么,你能给我一个简单的解释,或者如果你没有时间,你可以稍后提供资源链接吗?我似乎无法解决这个问题。

感谢您的阅读,如果我先找到答案,我会发布它。

编辑:我决定包含整个代码,希望错误源于上面。我将不胜感激任何信息和建设性的反馈。我不是唯一一个,所以我的问题也集中在为其他人提供资源上。

<?php
//SendEmail.php

$messageToBusiness = 
    "From: ".$_POST['firstname']." "
            .$_POST['lastname']."\r\n" .
    "E-mail address: ".$_POST['email']."\r\n".
    "Phone number: ".$_POST['phone']."\r\n".
    "Subject: ".$_POST['Please_Choose']."\r\n".
    "Message Text: \r\n".$_POST['Message']."\r\n";

$headerToBusiness = "From: $_POST[email]\r\n";
mail("emailreplacement@gmail.com", $_POST['subject'], $messageToBusiness, $headerToBusiness);

$messageToClient =
    "Dear " .$_POST['lastname'].":\r\n".
    "The following message was received from you by website:\r\n\r\n".
    $messageToBusiness.
    "------------------------\r\nThank you for the taking the time to contact us, our representatives will respond as soon as we have the appropriate information for you. 
    Thank you for your patronage.\r\n" .

    "Business Rep \r\n------------------------\r\n";
if ($_POST['reply'])
    $messageToClient .= "Please feel free to contact us with any more concerns you may have!";

$headerToClient = "From: fakeemail@fake.com\r\n";
mail($_POST['email'], "Re: ".$_POST['subject'], $messageToClient, $headerToClient);

$display = str_replace("\r\n", "<br />\r\n", $messageToClient);
$display =
    "<html><head><title>Your Message</title></head><body><tt>".
    $display.
    "</tt></body></html>";
echo $display;

$fileVar =fopen("../data/feedback.txt", "a")
    or die("Error: Could not open the log file.");
fwrite($fileVar, "\n-------------------------------------------------------\n")
    or die("Error: Could not write to the log file.");
fwrite($fileVar, "Date received: ".date("jS \of F, Y \a\\t H:i:s\n"))
    or die("Error: Could not write to the log file.");
fwrite($fileVar, $messageToBusiness)
    or die("Error: Could not write to the log file.");
?>
4

1 回答 1

4

错过了一个/

$fileVar = fopen("..data/feedback.txt", "a")
                    ^--- here

应该是../data/feedback.txt。如果没有那个额外的斜线,您将尝试使用..data在 CURRENT 目录中命名的目录。由于该子目录与您存在的不同,因此您无法在其中打开文件,因此出现“无法打开文件”错误。

于 2013-05-15T21:37:43.760 回答