PHP代码有问题,尝试回显一些html并打开文件并打印

PHP代码有问题,尝试回显一些html并打开文件并打印,php,html,Php,Html,我对PHP非常陌生,我尝试使用一些PHP代码来响应一些按钮,然后当按钮按下时,它会打开一个文件并在该文件中写入一个数字。这个代码似乎不起作用,我不明白为什么。非常感谢您的帮助 <?php echo ' <form method="post"> <input type="Submit" name="button1" value="Led1 On" /> </form><br>';

我对PHP非常陌生,我尝试使用一些PHP代码来响应一些按钮,然后当按钮按下时,它会打开一个文件并在该文件中写入一个数字。这个代码似乎不起作用,我不明白为什么。非常感谢您的帮助

<?php
    echo '
        <form method="post">
        <input type="Submit" name="button1" value="Led1 On" />
        </form><br>';

    echo '
        <form method="post">
        <input type="submit" name="button2" value="Led1 OFF" />
        </form><br>';

    echo '
        <form method="post">
        <input type="submit" name="button3" value="Led2 On" />
        </form><br>';

    echo '
        <form method="post">
        <input type="submit" name="button4" value="Led2 OFF" />
        </form><br>';

    if (isset($_POST["button1"])){
        echo "LED 1 is ON";
        $myFile = 'data.txt';
        $fh = fopen($myFile, 'w');
        fwrite($fh, "1*");
        fclose($fh);
    }

    if (isset($_POST["button2"])){
        echo "LED 1 is OFF";
        $myFile = 'data.txt';
        $fh = fopen($myFile, 'w');
        fwrite($fh, "2*");
        fclose($fh);
    }

    if (isset($_POST["button3"])){
        echo "LED 2 is ON";
        $myFile = 'data.txt';
        $fh = fopen($myFile, 'w');
        fwrite($fh, "3*");
        fclose($fh);
    }

    if (isset($_POST["button4"])){
        echo "LED 2 is OFF";
        $myFile = 'data.txt';
        $fh = fopen($myFile, 'w');
        fwrite($fh, "4*");
        fclose($fh);
    }
?>

创建data.txt并设置权限777

以下是编写此代码的简单方法:

$myFile = 'data.txt';   

if (is_writable($myFile)) {
    $fh = fopen($myFile, 'w');

    if (isset($_POST["button1"])){
        echo "LED 1 is ON";
        $string = "1*";
    }

    if (isset($_POST["button2"])){
        echo "LED 1 is OFF";
        $string = "2*";
    }

    if (isset($_POST["button3"])){
        echo "LED 2 is ON";
        $string = "3*";
    }

    if (isset($_POST["button4"])){
        echo "LED 2 is OFF";
        $string = "4*";
    }

    fwrite($fh, $string);
    fclose($fh);

} else {
    echo "The file $myFile is not writable.";
}

您需要在Web服务器(如Microsoft IIS或Apache HTTP)中运行php


尝试查看

您是否收到任何警告/错误?错误报告打开了吗?所以当您执行
打印\u r$\u POST
时,它显示了什么?:)这对我来说很好。什么是不起作用的?在“如果”条件之前和之后,您可以使用fopen()和fclose,而不是在每个“如果”中打开和关闭。您是否将其保存到本地计算机或web服务器?如果是您的本地计算机,您是否有正在运行的web服务器应用程序?(Apache、IIS等)您如何知道它是基于Linux的环境?代码正在运行(使用权限为777的data.txt文件),什么是“基于Linux的环境”?这就是Windows用户的基本答案。777权限是邪恶的,它将一切授予所有人,为什么任何人都会无缘无故地这样做?即使出于测试目的,这也不能解决问题:之后仍然需要适当的权限。OP需要确保web服务器(www数据)对文件具有写入权限,对所有父目录具有执行权限。这不适用于基于Windows的web服务器(WAMP)。它是txt文件,如果为其设置权限777会发生什么?如果此文件确定应用程序的行为会发生什么?想象一下,一个应用程序读取这个文件,当它看到其中的“全部删除”时,只会删除web根目录(或者www数据可以处理的任何其他内容)。任何人都可以使用777权限将“全部删除”添加到此文件,然后爆炸。这不是一个实际的解决方案,它几乎不能用于测试目的(因此,一个注释更合适)。另外:.txt文件不需要设置它们的执行位,除非在特定情况下。
是可写的
调用+1:因此与权限相关的问题更容易检测。我不认为OP的HTTP请求实际上失败了;他的服务器设置是正确的。