PHP代码有问题,尝试回显一些html并打开文件并打印
我对PHP非常陌生,我尝试使用一些PHP代码来响应一些按钮,然后当按钮按下时,它会打开一个文件并在该文件中写入一个数字。这个代码似乎不起作用,我不明白为什么。非常感谢您的帮助PHP代码有问题,尝试回显一些html并打开文件并打印,php,html,Php,Html,我对PHP非常陌生,我尝试使用一些PHP代码来响应一些按钮,然后当按钮按下时,它会打开一个文件并在该文件中写入一个数字。这个代码似乎不起作用,我不明白为什么。非常感谢您的帮助 <?php echo ' <form method="post"> <input type="Submit" name="button1" value="Led1 On" /> </form><br>';
<?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请求实际上失败了;他的服务器设置是正确的。