2013-12-06 6 views
-4

Заполнение формы, в которой указаны две части, имя файла и текст. Мне нужно создать файл в каталоге html, который будет иметь имя $ filename и получить текст внутри него, который я вставляю в $ text , unfortinatly я не могу заставить его работать любую помощь, пожалуйста:создать файл с именем, используя форму php

ФОРМА КОД:

<form method="post" action="createfile.php"> 
<font size"3"><b>File name:</b> </font> 
<br /><input type="text" size="15" name="filename" id="filename"><br /> 
<font size"3"><b>File data:</b> </font> 
<div id="dat"><textarea name="thedata" id="thedata" cols="30" rows="15"></textarea></div> 
<div id="sub" style="position:absolute; left: 25"> 
<input type="submit" value=" Create "> 
</div> 
</form> 

createfile.php КОД:

<?php 
$name= $filename; 
$data= $thedata; 
if ($file && $data) { 
$fp = fopen($file, "w"); 
fwrite($fp, "<br>"); 
fwrite($fp, $data); 
fclose($fp); 
} 
else 
{ echo 'no text entered'; 
} 
?> 

Спасибо за помощь

+3

Что такое '$ file'.? –

+1

«Несчастливо я не могу заставить его работать, пожалуйста, помогите». На самом деле это не описание проблемы. – PeeHaa

+2

Если вы об этом не подумали, вы должны понимать, что любой может использовать этот код для перезаписи всех файлов, к которым имеет доступ пользователь вашего веб-сервера. Это довольно большой кошмар безопасности. Что делать, если кто-то поставляет файл типа 'createfile.php' и перезаписывает ваш собственный сайт? – meagar

ответ

0

HTML будет таким же :

<form method="post" action="createfile.php"> 
<font size"3"><b>File name:</b> </font> 
<br /><input type="text" size="15" name="filename" id="filename"><br /> 
<font size"3"><b>File data:</b> </font> 
<div id="dat"><textarea name="thedata" id="thedata" cols="30" rows="15"></textarea></div> 
<div id="sub" style="position:absolute; left: 25"> 
<input type="submit" value=" Create "> 
</div> 
</form> 

PHP:

<?php 
$filename = $_POST['filename']; 
$content = $_POST['thedata'] ; 
$if(!isset($_POST['filename'])){ 
    //i leave the filename && content validation to the client side 

    $handle = fopen("/files/$filename.txt", "w"); 
    fwrite($handle, $content); 
    fclose($handle); 
}else{ 
    //your `else` code here. 
} 
?> 
+0

Спасибо за ваш ответ, он отлично работал. Итак, теперь я хотел бы выполнить команду для этого созданного файла, поэтому я делаю команду , который изменит файл .txt на .bin-файл и сохранит его снова в том же каталоге? С уважением – user3074540

0

Используйте следующий код:

<?php 
$name= isset($_POST['filename'])?$_POST['filename']:0; 
$data= isset($_POST['thedata'])?$_POST['thedata']:0; 
if ($name && $data) { 
$fp = fopen($name, "w"); 
fwrite($fp, "<br>"); 
fwrite($fp, $data); 
fclose($fp); 
} 
else { 
echo 'no text entered'; 
} 
?> 
Смежные вопросы