Как указать расширение создаваемое для файла

Статус
Закрыто для дальнейших ответов.

dvitaly

Well-Known Member
Регистрация
22.05.2008
Сообщения
71
Здравствуйте, вот придумал для закрепления темы "Файлы", такой скрипт, но он у меня создаёт файлы без расширения, как сделать, чтоб файлы были с расширением нужным?
<?php
$filename=$_POST['name'];
$post_message=$_POST['message'];
$handle= fopen ("$filename","w+") or die ("Не могу открыть файл!!!");
if ($handle==TRUE)
print ("Файл <b>$filename</b> -успешно открылся<br>");
$fwrite= fwrite($handle,$post_message);
if ($fwrite==TRUE)
print ("<b>$post_message</b> -записано в файл<br>");
print ("Файл "."<b>$filename<b>=".filesize($filename)." байта<br>");
print "<u><a href='$filename'>-Перейти на созданный файл >>></a></u>";
$fclose= fclose($handle);

?>
А вот сама форма:
<html>
<body>
<form action="work.php" method="POST">
Название документа<br><input type="text" name="name"><br>
Содержание<br><input type="text" name="message"><br>
<input type="submit" value="Создать">
</form>
</body>
</html>

Спасибо
 

Protva

Active Member
Регистрация
14.11.2007
Сообщения
32
Вот так все работает.

<?php
$filename=$_POST['name'];
$post_message=$_POST['message'];
$handle= fopen ($filename.".txt","w+") or die ("Не могу открыть файл!!!");
if ($handle==TRUE)
print ("Файл <b>$filename</b> -успешно открылся<br>");
$fwrite= fwrite($handle,$post_message);
if ($fwrite==TRUE)
print ("<b>$post_message</b> -записано в файл<br>");
print ("Файл <b>$filename.txt<b>=filesize($filename.txt) байта<br>");
print "<u><a href='$filename'>-Перейти на созданный файл >>></a></u>";
$fclose= fclose($handle);
?>
 

dvitaly

Well-Known Member
Регистрация
22.05.2008
Сообщения
71
Благодарю, всё сделал, спасибо большое)))
 

Protva

Active Member
Регистрация
14.11.2007
Сообщения
32
Почему-то не получается отредактировать свой пост.
Даже лучше сделать так

<?php
$filename=$_POST['name'].".txt";
$post_message=$_POST['message'];
$handle= fopen ($filename,"w+") or die ("Не могу открыть файл!!!");
if ($handle==TRUE)
print ("Файл <b>$filename</b> -успешно открылся<br>");
$fwrite= fwrite($handle,$post_message);
if ($fwrite==TRUE)
print ("<b>$post_message</b> -записано в файл<br>");
print ("Файл <b>$filename<b>=filesize($filename) байта<br>");
print "<u><a href='$filename'>-Перейти на созданный файл >>></a></u>";
$fclose= fclose($handle);
?>
 

dvitaly

Well-Known Member
Регистрация
22.05.2008
Сообщения
71
Вот, всё получается, теперь осталось мне придумать следующее:
1)Нельзя создать файл больше указанной мною длины
2)Хочу чтобы нельзя было вводить тэги и пхп код

Насчёт хтмл тэгов вроде подходит strip_tags, хотя ничего не получилось ((
А вот про остальное незнаю даже

Могли бы подсказать какие функции нужно использовать, чтобы вырезались теги, пхп код, если пользователю очень захочется их вписать, чтоб это не получилось)), а насчёт длины файла кажется придумал... Я новичок в пхп, как уже догадались, извините за такие тупые вопросы,спасибо
 

Protva

Active Member
Регистрация
14.11.2007
Сообщения
32
Да я и сам не большой спец в РНР. Так что все в норме.
Есть такая функция strip_tags (строка из которой нужно удалить HTML-теги [, допустимые теги])
Второй параметр позволяет указать теги, которые не нужно удалять. Если этого списка нет, то удалятся все теги.
Ну,а РНР я бы удалил отслеживая в получаемом тексте < ? ? > $, поскольку другого варианта не знаю.
 

dvitaly

Well-Known Member
Регистрация
22.05.2008
Сообщения
71
Можно, думаю, попробывать strpos типо так

if (strpos($str,"<?")) !==FALSE)
echo "......";


Но вопрос вот в чём, как Вы подали идею отследить пхп код, вроде должно получится по этому методу,
а вот что потом с ним делать? Не писать же "Вы не можете вводить <? код" )))))
Собственно, что должно выполняться если это условие ложно, как у меня в примере?


Типо {
exit;
}

Хотя нет, exit это уже слишком))) :laugh:
Спасибо
 

dvitaly

Well-Known Member
Регистрация
22.05.2008
Сообщения
71
Хотя можно через что то подобное str_replace думаю
 

Protva

Active Member
Регистрация
14.11.2007
Сообщения
32
а вот что потом с ним делать? Не писать же "Вы не можете вводить <? код" )))))
Думаю, что нужно в форме ввода сразу указать пользователю, что использование кодов не допустимо. А уж если он введет, это будут его трудности. Тогда можно будет применять любые санкции. :) А можно просто удалить теги и < ? > $, а что осталось записать в файл. Можно вернуть к странице с формой, пояснив в чем дело и напечатав введенные им коды. Это уж на Ваше усмотрение.
 

dvitaly

Well-Known Member
Регистрация
22.05.2008
Сообщения
71
Точно, идея редиректа в таком случае мне нравится, спасибо :)
 
Статус
Закрыто для дальнейших ответов.
Верх Низ