【问题标题】:Unable to write to txt file in php无法在php中写入txt文件
【发布时间】:2016-10-07 19:05:12
【问题描述】:

我试图简单地用在 PHP 的文本框中输入的数字覆盖一个 txt 文件。 PHP 和文本文件都在我的 apache2 服务器的 html 目录中。每次执行时它只显示 die() 字符串。我也尝试使用 fwrite() 获得相同的结果。任何帮助将非常感激。

<HTML>
<TITLE>Home Automation Interface</TITLE>
<BODY>
    <H1>Air Conditioning Power(Relay 1)</H1>
    <H2>Turn AC On/Off</H2>
    <H3>
        <p> 
            <form action="relayToggle.php" method="get"> 
            <input type="submit" value="AC Power">
            </form>
        </p>
        <form method= "post" action = "homeInter.php">
        <p>
            <label for="acTemp">AC temperature (F):</label><br/>
            <input type="text" id="temp" name="temp">
        </p>
        <button type="submit" name="submit" value="send">Change Temperature</button>
        </form>
        <p><strong>
          <?php

              $temp= $_POST['temp'];
              echo $temp;
              file_put_contents("/var/www/html/temp.txt", (string)$temp) or die("Unable to open file!");
           ?>
                    }
                }
            ?>
            </strong>
            </p>
        </H3>
    </BODY>
</HTML>

【问题讨论】:

  • 什么杀死字符串? “无法打开”?然后你必须弄清楚为什么你不能写入那个文件。这几乎肯定是一个许可问题。请注意,无论是否提交了表单,您的代码都会在表单加载时每次运行。您可能应该在将未定义/不存在的值写入文件之前测试实际帖子。
  • 另外,由于您在同一个文件中使用此代码,请使用isset() 和/或!empty()。您应该在这里立即获得未定义的索引通知。 php.net/manual/en/function.error-reporting.php
  • “任何帮助将不胜感激。” - 你有。 ^

标签: php linux apache file-io


【解决方案1】:

将您的 PHP 代码包装在一个有效的检查器中以查看表单是否已提交

像这样:

if ($_POST):
    //All functions go here
endif;

如果该文件与您的 PHP 文件位于同一目录中,只需将目录更改为 file_put_content() 中的文件名.file 扩展名

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多