Forum Webscript.Ru

Разное => Поиск, изготовление скриптов и прочее... => Тема начата: Chopchic от 24 Января 2007, 22:45:41

Название: Несложный PHP скрипт. Часть 2.
Отправлено: Chopchic от 24 Января 2007, 22:45:41
Опять нужна ваша помошь. Нужно дописать скрипт.
В пхп полный нуль.

Есть скрипт:

$dir_name=$_GET[\'id\'];
if(!is_numeric($dir_name))die();
if(!is_dir($dir_name))mkdir($dir_name);
$f=fopen($dir_name.\'/log.txt\',\'a\');
$text = str_replace(\'***\', "\\r\\n", ((!empty($_GET[\'text\']) ) ? $_GET[\'text\'] :\'\'));
$text = str_replace(\' \', "\\n", ((!empty($text) ) ? $text : \'\'));
fwrite($f,$text."\\n");
fclose($f);


Из моей программы происходит GET запрос к скрипту.
Таким образом:
stat.php?id={уникальный номер}&country={страна}&date={дата}+&text={текст}

Что делает скрипт:
В папке со скриптом создается папка с именем {номер}, который передает моя программа. В папке создается текстовый файл log.txt и в его конец дописывается текст, который передает моя программа {текст}. Если папка с таким именем уже существует, то в этой папке создается текстовый файл и в него пишется текст. Если файл существует, то в него пишется текст, передаваемый моей программой.

Что хотелось бы, чтобы делал скрипт:
Сортировка по странам.
Сортировка по датам в контексте уникальной папки.

stat.php?id={уникальный номер}&country={страна}&date={дата}+&text={текст}

В папке со скриптом создается папка с именем {страна}, которую передает программа. В созданной папке создается папка с именем {номер}, который передает моя программа. Далее в папке {номер} создается папка с именем {дата}, которую передает моя программа. В папке {дата} создается текстовый файл log.txt и в его конец дописывается текст, который передает моя программа {текст}.

Если папка с именем {страна} существует, то в ней создается папка с именем {номер}. Если папка {номер} существует, то в ней создается папка с именем {дата}. Если папка с именем {дата} существует, то в ней создается файл log.txt и в него пишется {текст}, передаваемый моей программой. . Если и файл существует, то в конец файла пишется текст, передаваемый моей программой.

Вот такой алгоритм.
Название: Несложный PHP скрипт. Часть 2.
Отправлено: Chopchic от 25 Января 2007, 12:45:15
f(!isset($_GET[\'id\']) || !is_numeric($_GET[\'id\'])) die();
if(!isset($_GET[\'country\'])) die();
$_GET[\'country\'] = str_replace(array(\'..\',\'/\',\'\\\\\'), \'\', $_GET[\'country\']);
$dir_name = $_GET[\'country\'].\'/\'.$_GET[\'id\'].\'/\'.date(\'d.m.Y\');
if(!file_exists($dir_name)) mkdir($dir_name, 0777, true);
$f=fopen($dir_name.\'/log.txt\',\'a\');
$text = str_replace(\'***\', "\\r\\n", ((!empty($_GET[\'text\']) ) ? $_GET[\'text\'] :\'\'));
$text = str_replace(\' \', "\\n", ((!empty($text) ) ? $text : \'\'));
fwrite($f, $text."\\n");
fclose($f);

Вот это должно работать. Но выдает кучу ошибок.
Название: Несложный PHP скрипт. Часть 2.
Отправлено: CGVictor от 25 Января 2007, 13:45:00
Chopchic
Цитировать
Chopchic:
кучу ошибок

Ошибки в студию?
Название: Несложный PHP скрипт. Часть 2.
Отправлено: Chopchic от 25 Января 2007, 18:14:48
stat3.php?id=387461823&country=Russia&text=dkfmdfklmv

Warning: mkdir() expects at most 2 parameters, 3 given in /usr/local/www/wwwroot/~security/stat3.php on line 6

Warning: fopen(Russia/387461823/25.01.2007/log.txt): failed to open stream: No such file or directory in /usr/local/www/wwwroot/~security/stat3.php on line 7

Warning: fwrite(): supplied argument is not a valid stream resource in /usr/local/www/wwwroot/~security/stat3.php on line 10

Warning: fclose(): supplied argument is not a valid stream resource in /usr/local/www/wwwroot/~security/stat3.php on line 11
Название: Несложный PHP скрипт. Часть 2.
Отправлено: CGVictor от 25 Января 2007, 21:29:50
Chopchic
Цитировать
Chopchic:
mkdir() expects at most 2 parameters

[p]mkdir[/p] начинает принимать параметр рекурсии только с PHP5.
В четверке нужно проверять существование каждой из поддиректорий; там же в мануале есть примеры заменителей.

Остальные ошибки - следствие.
Название: Несложный PHP скрипт. Часть 2.
Отправлено: Chopchic от 25 Января 2007, 23:03:11
большое спасибо.

очень помог.