我开发了一个文本框,我正在尝试将此数据写入文本文件。 PHP代码生成文件但数据未被写入。 下面是我的代码:
<html>
<body>
<form name="form" method="post">
<input type="text" name="text_box" size="50"/>
<input type="submit" id="search-submit" value="submit" />
<?
$a=@$_POST["text_box"];
$myFile = "t.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh,$a);
fclose($fh);
?>
答案 0 :(得分:3)
我看到你的代码最大的问题是你没有打开php标签。你做了
<?
但它应该是
<?php
然后,你调用$ _POST并编写文件和东西的方式意味着当你第一次将表单加载到浏览器时它将被执行。 php引擎在首次运行和连续运行之间没有区别。这意味着即使用户没有提交任何内容,仍然会有一个空文件,它是从显示表单的脚本运行中创建的。这是副作用。我已经修改了你的代码。这是我对此的看法:
<html>
<body>
<form name="form" method="post">
<input type="text" name="text_box" size="50"/>
<input type="submit" id="search-submit" value="submit" />
</form>
</body>
</html>
<?php
if(isset($_POST['text_box'])) { //only do file operations when appropriate
$a = $_POST['text_box'];
$myFile = "t.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $a);
fclose($fh);
}
?>
答案 1 :(得分:1)
表单正在发送GET请求,但您尝试访问$_POST["text_box"]
。尝试将其更改为$_GET['text_box']
,或使用表单方法POST。
答案 2 :(得分:1)
您只需使用以下代码替换PHP代码:
if ($_REQUEST) {
file_put_contents("t.txt", $_REQUEST["text_box"]);
}
这将确保文件仅在实际提交表单时被覆盖,而不是在显示表单时覆盖。
答案 3 :(得分:1)
表单的提交操作是“get”,但在PHP代码中,您可以通过$ _POST获取变量。请尝试$ _GET。
答案 4 :(得分:0)
$a
是否有数据?试试echo
吧。或者,试试print_r
。{/ 1}}。{/ p>
编辑:您的表单方法为$_POST
,但您尝试使用get
。使用$_POST
或$_GET
。