Php 使用fopen创建一个文件

Php 使用fopen创建一个文件,php,html,mysql,Php,Html,Mysql,我试图在按下HTML页面上的按钮时创建一个文件。 按下按钮时,调用一个应该执行此任务的php文件。 我的问题是没有创建文件,但没有收到错误。我注意到的一件奇怪的事情是,如果我通过CLI调用PHP文件(例如“PHP update_file.PHP”),就会生成一个文件。怎么了? 下面是我正在使用的代码的一部分: <form action="update_file.php" method="post"> <div class=&quo

我试图在按下HTML页面上的按钮时创建一个文件。 按下按钮时,调用一个应该执行此任务的php文件。 我的问题是没有创建文件,但没有收到错误。我注意到的一件奇怪的事情是,如果我通过CLI调用PHP文件(例如“PHP update_file.PHP”),就会生成一个文件。怎么了? 下面是我正在使用的代码的一部分:

<form action="update_file.php" method="post">
    <div class="container">
        <div class="text-center">
            <button type="submit" name="submit" value="submit" id="submit" class="btn btn-primary"><i class="fa fa-fw fa-edit"></i> UPDATE </button>
        </div>
    </div>
</form>


UPDATE_FILE.php

<?php
$conn = new mysqli("localhost","user","pass","db");
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sets   = "SELECT grp_phone FROM groups WHERE grp_onoff='YES'ORDER BY id ASC";

if ($result = mysqli_query($conn,$sets)){
    $array = array();
    while($r = mysqli_fetch_array($result))
        $array[] = $r[0];
        
   }

$group = fopen("/tmp/group_70000.txt", "w+") or die("Unable to open file!");
    $txt = 'SET Station_Group   "1": "1": "70000"
    {
    Attached_Stations = {".$array[0]"}
    }';
    fwrite($group, $txt);
    fclose($group);
$conn->close();


更新
更新_FILE.php

只是为了帮助别人,这个问题是一个许可。 我必须将通缉文件夹的组所有者设置为“www数据”,当然还有rw权限

/tmp文件夹的as组为“根”


关于

仅仅为了帮助别人,问题是许可。 我必须将通缉文件夹的组所有者设置为“www数据”,当然还有rw权限

/tmp文件夹的as组为“根”


关于

您是否尝试将其存储在与
/tmp/
不同的位置?(可能有一些临时目录设置的自动清理机制或其他什么?)可能是权限问题。控制台用户通常在FS中具有读写权限,而web用户具有受限访问权限。对于测试,您可以尝试添加
错误报告(E\u ALL);ini_集(“显示错误”,“1”)fopen()
之前,检查是否看到任何警告。您好,还尝试更改文件夹。同样的问题。当然可以。按“按钮”什么也不会发生。试图在$group=fopen(…)之前放置“error_reporting(E_ALL);ini_set(“display_errors”,“1”);”,但在控制台中,我看不到任何内容您是否尝试将其存储在与
/tmp/
不同的位置?(可能有一些临时目录设置的自动清理机制或其他什么?)可能是权限问题。控制台用户通常在FS中具有读写权限,而web用户具有受限访问权限。对于测试,您可以尝试添加
错误报告(E\u ALL);ini_集(“显示错误”,“1”)fopen()
之前,检查是否看到任何警告。您好,还尝试更改文件夹。同样的问题。当然可以。按“按钮”什么也不会发生。试图在$group=fopen(…)之前放置“error_reporting(E_ALL);ini_set(“display_errors”,“1”);”,但在控制台中我看不到任何内容