Forum Webscript.Ru

Программирование => Perl => Тема начата: Dimchik от 04 Декабря 2003, 02:41:15

Название: Создание что-то типа аккаунта...
Отправлено: Dimchik от 04 Декабря 2003, 02:41:15
Пожалуйста, помогите написать такой файл на PERLе, чтобы запрашивалось IMYA_KATALOGA, и после ввода имени и нажатия SUBMIT на сервере появлялся каталог с этим именем в папке C:/VAR/HOME/, и еще, чтобы одновременно с появлением папки IMYA_KATALOGA, в нее автоматически скопировалась группа файлов INDEX.HTML, ABOUT.HTM, INTRO.JPG, PHOTO.JPG, допустим из C:/VAR/HOME/SHABLON/.
т.е. мне нужно сделать такую системку создания аккаунтов с рабочего места администратора, чтобы на сервере появлялся сайт (HTTP://MY.SERVER.RU/WWW.IMYA_KATALOGA/), а в нем, как по шаблону, уже лежали несколько файлов, которые пользователь потом сможет отредактировать по своему усмотрению.

Еще хотелось бы проверку: если папка с именем IMYA_KATALOGA уже существует, предложить ввести другое имя, и так в цикле, пока не будет найдено свободное имя.

Очень надеюсь на участников этого форума.
Я новичок в программировании, и мне трудно с постановкой задачи, но возможно кто-то поймет и поможет. Заранее благодарен.
Название: Создание что-то типа аккаунта...
Отправлено: ondr от 04 Декабря 2003, 10:46:50
Dimchik
Я вижу только один "способ" решения твоей задачи. Ты пробуешь что нибудь написать, мы помогаем, советуем, вместе решаем проблемы.
Если постараешься - мы вместе решим задачу, но делать все за тебя врядли найдутся желающие, т.к. для заказа скрипта здесь есть отдельный форум.
Название: Создание что-то типа аккаунта...
Отправлено: ondr от 04 Декабря 2003, 11:17:22
В догонку:
Цитировать
C:/VAR/HOME/SHABLON/

Я сначала подумал, что это виндовс у тебя, но сейчас сомневаюсь. Дело в том, что ежели ты сидишь под *nix, то есть возможность создать "скелет" (каталог тут "/etc/skel", описание в инете), где всё, тобою запрошенное будет работать.
Название: Создание что-то типа аккаунта...
Отправлено: Dimchik от 05 Декабря 2003, 04:58:05
У меня XLinux. Ладно, я все понял ;) Постараюсь че-нить накарябать сам, а если будет глючить, попрошу совета. thnx!

А что за скелет? (/etc/skel) где? Мона посмотреть?
Название: Создание что-то типа аккаунта...
Отправлено: Mog. от 05 Декабря 2003, 07:49:04
Цитировать
Dimchik:
А что за скелет

Яндекс рулит, я проверял.
http://www.yandex.ru/yandsearch?text=/etc/skel
Название: Создание что-то типа аккаунта...
Отправлено: Dimchik от 06 Декабря 2003, 04:04:03
мдя... я че-то первый раз такое вижу. Плохо быть чайником.

А если все же попробовать запрограммировать? Например, мне нужно создать каталог (пусть просто на C:/), с именем, как у введенной переменной LOGIN. Какую команду надо использовать в pl? Помогите plzzz...

Содержимое NEWSITE.HTM









 





Содержимое NEWSITE.PL
#!/usr/bin/perl
read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
  ($name, $value) = split(/=/, $pair);
  $value =~ tr/+/ /;
  $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  $value =~ s///g;
  $input{$name} = $value;
}

print "Content-Type: text/html\\n\\n";
print "Поздравляем, на диске создана папка с имнем $input{\'LOGIN\'}";
print "\\n";
Название: Создание что-то типа аккаунта...
Отправлено: Phoinix от 06 Декабря 2003, 11:29:34
$dir = "C:/".$input{\'LOGIN\'};
mkdir $dir, 0777;

И начинаем читать книжки... или учимся искать в них...
Название: Создание что-то типа аккаунта...
Отправлено: Dimchik от 07 Декабря 2003, 02:30:07
Phoinix, СПАСИБО!!!
А мне можно будет еще спрашивать или всё, тему закроют?

[OFF]З.Ы. Какую книгу посоветуете купить? (назв./автор)[/OFF]
Название: Создание что-то типа аккаунта...
Отправлено: Dimchik от 07 Декабря 2003, 14:42:44
И мне опять нужен маленький совет: напишите, пожалуйста, как скопировать файл "C:/IMAGES/GIRL.PNG" в "$dir"
Название: Создание что-то типа аккаунта...
Отправлено: Chs от 07 Декабря 2003, 17:55:03
perldoc File::Copy
Название: Создание что-то типа аккаунта...
Отправлено: Dimchik от 08 Декабря 2003, 05:21:50
Chs, это какой-то модуль? Если да, то я могу достать всеь дистрибутив, но как он называется (сам модульный файл для этого случая)?
И как записать функцию копирования для моего примера (Сообщение № 95738)?


[OFF]Простите, что задаю так много вопросов. Мне очень стыдно, но больше негде искать поддержки. It\'s a pity, у нас в политехе Перлу не учат :([/OFF]
Название: Создание что-то типа аккаунта...
Отправлено: Mog. от 08 Декабря 2003, 08:52:25
Dimchik, почитай http://faq.webscript.ru/PerlFAQ
Название: Создание что-то типа аккаунта...
Отправлено: Dimchik от 28 Декабря 2003, 19:40:55
Чтение фаQа пока не принесло ощутимых результатов...
Ошибка за ошибкой...
Люди, я уж ActivePerl поставил, и вот прошу только маленький кусочек, неужели никто не умеет???
Как скопировать файл "C:/IMAGES/GIRL.PNG" в "$dir" ?
Что нужно писать в заголовке use?
perldoc File::Copy - т.е. сначала файл потом путь потом команда или как???

Цитировать
надежда умирает последней
Название: Создание что-то типа аккаунта...
Отправлено: Dimchik от 28 Декабря 2003, 21:58:31
#!/usr/bin/perl
use File::Copy;
my $sourcedir = "C:/1";
........

copy("$sourcedir","$dir");

можно ли таким образом скопировать все файлы из каталога C:/1/ в $dir?
Название: Создание что-то типа аккаунта...
Отправлено: Phoinix от 29 Декабря 2003, 10:01:22
Dimchik
Может стоит один раз попробовать? Или религия не позволяет?
Название: Создание что-то типа аккаунта...
Отправлено: Dimchik от 30 Декабря 2003, 00:50:58
Так дело в том, что нифига не копируются... или вы о чём-то другом ;)
Название: Создание что-то типа аккаунта...
Отправлено: ondr от 30 Декабря 2003, 10:40:31
Dimchik

Временно вместо "copy("$sourcedir","$dir");"

1: print "$sourcedir\\n$dir\\n"; # И смотри, что не так с путями,
2: print `cp $sourcedir $dir`; # Если скопируется, то возможно File::Copy ничего не знает про твою файловую систему (врядли конечно, но мало ли).

ps: обязательно "use warnings;" и смотри, что в логи пишется
Название: Создание что-то типа аккаунта...
Отправлено: NeoNox от 30 Декабря 2003, 11:08:58
ondr 2. сразу нарвешся на cp: omitting directory
man cp -> cp -R $source $destination
Название: Создание что-то типа аккаунта...
Отправлено: ondr от 30 Декабря 2003, 11:18:49
Dimchik
В догонку:

До меня только, что дошло - ты пытаешся директорию скопировать! :) File::Copy копирует только файлы! Рекурсию придется самому делать. Можно воспользоваться File::Find

По случаю праздника держи чем я пользуюсь.
http://www.andrey.kaliningrad.fio.ru/ExtCM.pm
http://www.andrey.kaliningrad.fio.ru/Util.pm

Размести в каталоге STD и поправь @INC(если надо)

Синтаксис

use STD::ExtCM;

my $src = "/src/dir";
my $dest = "/dest/dir";
my $type = 1; (1 - без замещения, 2 - с замещением, 3 - с расчищением), по умолчанию 1

ExtCp($src, $dest, $type) && print \'Cool !\'; (ExtMv - перемещение)

ps: Данный модуль автоматом определяет файл это либо директория, нужна ли рекурсия либо нет. Только нужно в директории назначения обязательно(!) использовать путь вместе желаемым названием директории(файла) !!!.
Название: Создание что-то типа аккаунта...
Отправлено: ondr от 30 Декабря 2003, 11:21:43
NeoNox
Гы :) Уже увидел.
Название: Создание что-то типа аккаунта...
Отправлено: ondr от 30 Декабря 2003, 11:56:14
Dimchik
Упс. Чуть не забыл. Перед использованием желательно употребить "umask 0";
Название: Создание что-то типа аккаунта...
Отправлено: Dimchik от 02 Января 2004, 01:07:16
Прошу прощения, только сейчас появился доступ в инэт. Ого-го сколько сразу :) Искренне спасибо вам, ondr и NeoNox. Сейчас все это дело переварю и напишу что получилось. Оказывается, мир не без добрых и щедрых людей.
--
С прошедшим праздником!