我在php $_POST代码有问题。这是我的密码?我做错了什么?
this is index.php
<form action="upload.php" method="post" id="form">
<input type="text" name="fname" size="87" />
<input type="submit" style="display:none" />
如果我点击提交,页面会跳转到upload.php和白屏。我看一下sample。txt,就像a:
<h1></h1>
这是upload.php
$yazi=$_POST['fname'];
$fo = fopen("sample".".txt", "a");
fwrite($fo, '<h1>'.$yazi.'</h1>');
fclose($fo);
我能做些什么来修复?我使用jquery提交。所以没问题display:none
没有什么问题发生,白屏是它应该如何工作的。
在upload.php
中完成处理后,可以使用Location头指令将浏览器重定向到某个地方。例如:
header("Location: http://mypage.com/where_to_go_after.php");
$var空的问题,尝试使用"
:
fwrite($fo, "<h1>".$yazi."</h1>");
我在你的代码中没有看到任何东西可以阻止表单字段在文件中结束,所以错误很可能是在其他地方。以下是一些可以帮助您找到问题的技巧:
-
将此添加到所有脚本的顶部:
ini_set('display_errors', TRUE); error_reporting(E_ALL);
-
将此添加到
upload.php
:var_dump($_POST);
…然后打开浏览器的"View-> Source"菜单,看看你的数据是什么样子的
-
使用W3C在线验证器验证生成的HTML
变化
$fo = fopen(sample.".txt", "a");
$fo = fopen("sample.txt", "a");
完整代码:
<?php
var_dump($_POST);
$filename = 'sample.txt';
$yazi = '<h1>'.$_POST['fname'].'</h1>';
if (is_writable($filename)) {
if (!$fo = fopen($filename, 'a')) {
echo "Cannot open file ($filename)";
exit;
}
if (fwrite($fo, $yazi) === FALSE) {
echo "Cannot write to file ($filename)";
exit;
}
echo "Success, wrote ($yazi) to file ($filename)";
fclose($fo);
} else {
echo "The file $filename is not writable";
}
?>
在执行upload.php操作之前,可以先验证$_POST方法
<php>
if(isset($_POST['fname'])){
//your echo or any code here..
//this is to test your method
}
?>