termit1987
Новичок
Проверка имени и создание .txt файла на php
Привет всем. Я с недавних пор начал интересоваться языками php и html, но пока познания в этом ооочень малы. И вот у меня возник к Вам вопрос. Мне необходимо сделать следующее: разработать форму, позволяющую вводить название файла. При помощи регулярных выражений проверить имя файла, если корректно, то создать файл с указанным именем, иначе – выделить недопустимые символы. Имя файла не должно превышать 255 символов и содержать \ / : * ? " < > |.
Я сделал работающую программу, но есть две проблемы:
1) файл создается без расширения. Можно ли как нибудь сделать что бы расширение было txt
2) после нажатия на кнопку Создать файл, файл создается но в окне браузера появляеться странный код:
Вот собственно сам код программы:
Буду всем признателен за помощь!
Привет всем. Я с недавних пор начал интересоваться языками php и html, но пока познания в этом ооочень малы. И вот у меня возник к Вам вопрос. Мне необходимо сделать следующее: разработать форму, позволяющую вводить название файла. При помощи регулярных выражений проверить имя файла, если корректно, то создать файл с указанным именем, иначе – выделить недопустимые символы. Имя файла не должно превышать 255 символов и содержать \ / : * ? " < > |.
Я сделал работающую программу, но есть две проблемы:
1) файл создается без расширения. Можно ли как нибудь сделать что бы расширение было txt
2) после нажатия на кнопку Создать файл, файл создается но в окне браузера появляеться странный код:
Версия PHP: Денвер-2 2005-10-06Warning: Wrong parameter count for strpos() in y:\home\localhost\www\lab2.php on line 25
Warning: Wrong parameter count for strpos() in y:\home\localhost\www\lab2.php on line 25
Warning: Wrong parameter count for strpos() in y:\home\localhost\www\lab2.php on line 25
Warning: Wrong parameter count for strpos() in y:\home\localhost\www\lab2.php on line 25
Warning: Wrong parameter count for strpos() in y:\home\localhost\www\lab2.php on line 25
Warning: Wrong parameter count for strpos() in y:\home\localhost\www\lab2.php on line 25
Warning: Wrong parameter count for strpos() in y:\home\localhost\www\lab2.php on line 25
Warning: Wrong parameter count for strpos() in y:\home\localhost\www\lab2.php on line 25
Warning: Wrong parameter count for strpos() in y:\home\localhost\www\lab2.php on line 25
Неверное имя файла! Плохие символы выделены: cvx>><>>font color=red>>><>>b>\>><>>>><>>font color=red>>><>>b>/>><>>/b>>><>>/font>b>>><>>>><>>font color=red>>><>>b>/>><>>/b>>><>>/font>font>
Вот собственно сам код программы:
Можно ли это как нибудь решить?<html>
<form action="proba.php" >
<table align="center" width="620" height="80" border="1">
<tr>
Введите имя файла: <input type="text" name="imya" size="70" maxlength="255" value=""><br><br>
<FONT COLOR="red">Внимание:</FONT> имя файла не должно превышать <FONT COLOR="red">255</FONT> символов и содержать
знаки <FONT COLOR="red"> \ / : * ? " < > | </FONT>
<br><br>
<center><input type="submit" name="create" value="Создать файл">
</td></tr>
<?php
if (isSet($_GET['imya']))
{
$name = $_GET['imya'];
$symbols = array('\\', '/', '"', '?', ':', '*', '<', '>', '|');
foreach ($symbols as $symbol)
if (strpos($name)!==FALSE)
$name = str_replace($symbol, '<font color=red><b>'.htmlSpecialChars($symbol).'</b></font>', $name);
if ($name != $_GET['imya'])
{
echo "Неверное имя файла! Плохие символы выделены красным: $name";
}
else
{
$f = fopen($name, 'w');
fclose($f);
echo 'OK!';
}
}
?>
</form>
</html>
Буду всем признателен за помощь!