В этом случае вы должны использовать ресурс дескриптора файла $fp
, а не имя.
Так вот:
$name = $_POST['fname'];
$fp = fopen("file.txt","w") or die("Can not open file");
fwrite("file.txt",$name) or die ("can not write to file");
Должно быть:
//if(!empty($_POST['fname'])){ ..you should really check this
$name = $_POST['fname'];
$fp = fopen("file.txt","w") or die("Can not open file");
fwrite($fp,$name) or die ("can not write to file");
Для справки:
http://php.net/manual/en/function.fwrite.php
int fwrite (ресурс $ handle , строка $ строка [, int $ length ])
При этом в таком случае пишется одна строка.
if(!file_put_contents("file.txt", $name)) die ("can not write to file");
Немного проще в использовании.Но в любом случае эти 2 вещи, которые вам не нужно делать:
fclose($fp);
?>
Файл закрывается после завершения PHP, и конечный тег может вызвать больше проблем, чем он того стоит.Единственный раз, когда я использую fclose
, это когда я открываю файл и читаю из него, а затем удаляю его с помощью unlink
, вы не можете unlink
его открыть, иначе я просто позволю PHP закрыть его.Конечный тег нужен только в том случае, если вы планируете следовать коду PHP с чем-то вроде HTML.Наличие пробела (например) после конечного тега может повредить загрузку файлов, поскольку любой выводимый контент будет включен в загрузку.Что еще хуже, если вы включили файл с пробелом (или другим материалом), может быть действительно трудно понять, почему вы не можете открыть ZIP-файл, который вы отправили для загрузки (например).
Ура и удачи.