Автор Тема: Название файла из директории!!!!!!!!!!!  (Прочитано 3243 раз)

0 Пользователей и 1 Гость просматривают эту тему.

  • Гость
Подскажите, пожалуйста правильный синтекс и всего остального этого сабжа:

Есть форма для отправки ID(В виде цифр), причем в зависимости от ID перенаправляет на нужную страницу
$cards_url/$cardnumber$cardext

HTML:







Кусок Перл-скрипта:

sub get_card {
opendir (IDIR, $cards_directory);
@files = IDIR;
$file = "$FORM{\'getcards\'}$cardext";
foreach $files (@files) {
if (($file = @files) & ($FORM{\'getcards\'} ne "")){
$cardnumber = $FORM{\'getcards\'};
print "Location: $cards_url/$cardnumber$cardext

";
}
else {print &Error(\'Такого ID-номера Не существует, или, просто, он не введен!\');      exit; }
}
closedir (IDIR);
}

Нужно, чтобы скрипт проверил на наличие файла
$FORM{\'getcards\'}$cardext в директории $cards_directory, где
$FORM{\'getcards\'}   -   любое число выводимое из формы
$cardext                -  .html
$cards_directory      -   c:/что-угодно/postcards

Я еще ЧАЙНИК в это деле, так что сильно не судите....

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Название файла из директории!!!!!!!!!!!
« Ответ #1 : 22 Марта 2001, 17:10:06 »
что то типа того

if ( open(FILE, \'путь_и_имя_файла\') ){
 print "нашел файл!";
 close(FILE);
}else{
 print "не нашел";
}
ну, будем исповедоваться?

Оффлайн lodevar

  • Сеньор-Помидор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 757
  • +0/-0
  • 2
    • Просмотр профиля
    • http://lodevar.hut.ru
Название файла из директории!!!!!!!!!!!
« Ответ #2 : 22 Марта 2001, 17:19:31 »
>>opendir (IDIR, $cards_directory);

Откуда берешь $cards_directory?

>>@files = IDIR;
>>$file = "$FORM{\'getcards\'}$cardext";

А это что за $cardext ?

>>if (($file = @files) & ($FORM{\'getcards\'} ne "")){

А что значит $file = @files ?  Может имеешь ввиду $file = $files ?

>>$cardnumber = $FORM{\'getcards\'};

Ты вроде это значение уже брал. Или я что-то не понимаю???

>>print "Location: $cards_url/$cardnumber$cardext

";
>>}
>>else {print &Error(\'Такого ID-номера Не существует, или, просто, он не введен!\');      exit; }
>>}
>>closedir (IDIR);

Закрывать IDIR нужно до возможного exit\'а. Ну это просто так, для порядку.
С наилучшими пожеланиями. LODEVAR

  • Гость
Название файла из директории!!!!!!!!!!!
« Ответ #3 : 22 Марта 2001, 18:04:05 »
$cardext - это расширение файла НАПРИМЕР, .html с точкой впереди

Оффлайн lodevar

  • Сеньор-Помидор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 757
  • +0/-0
  • 2
    • Просмотр профиля
    • http://lodevar.hut.ru
Название файла из директории!!!!!!!!!!!
« Ответ #4 : 22 Марта 2001, 18:30:29 »
Ты бы конкретно обрисовал бы задачку. А то не понятно, откуда берутся у тебя эти переменные...

И почему тебе не нравится, например @params=split(/&/,$ENV{\'QUERY_STRING\'})

а такая любовь к $FORM{...} ?
С наилучшими пожеланиями. LODEVAR

  • Гость
Название файла из директории!!!!!!!!!!!
« Ответ #5 : 22 Марта 2001, 18:58:07 »
Есть скрипт В.открыток, и я решил зарядить туда форму для Pick-up
Которая находится выше, но не знаю как!!!
При отправлении открытки, скрипт создает файл в директории
$cards_directory (например /usr/bin/postcards в конфиге), где имя файла должно быть что-то вроде этого  $FORM{\'getcards\'}$cardext
(в конфиге $cardext=".html"     $FORM{\'getcards\'} - это некое число генерируемое скриптом). Так вот я хочу, что пользователь вводил в pick-up форму это число и скрипт редиректил его на страницу в указанной директории, с проверкой на существующий файл

Пример,
Создалась у меня открытка в каталоге $cards_directory
С именем файла  53475484.html  
($FORM{\'getcards\'} - 53475484   a   $cardext  -  .html   т.е получаем
$FORM{\'getcards\'}$cardext)
В форме ввожу число 53475484,
Это число подставляется  $FORM{\'getcards\'}  и проверяется наличие файла $FORM{\'getcards\'}$cardext)  в директории $cards_directory
Если файл обнаружен, то перенаправляем пользователя на указанный ХТМЛ
Если же нет то пишем Сообщение об Ошибке

Оффлайн lodevar

  • Сеньор-Помидор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 757
  • +0/-0
  • 2
    • Просмотр профиля
    • http://lodevar.hut.ru
Название файла из директории!!!!!!!!!!!
« Ответ #6 : 22 Марта 2001, 19:16:54 »
#!/usr/bin/perl
print "Content-type: text/html

";

$extension=".html";
$catalog="new";

@params=split(/&/,$ENV{\'QUERY_STRING\'}); #берет коммандную строку
foreach (@params)
{
  ($key,$val)=split(/=/,$_); # переписываем все параметры
  $param{$key}=$val;         # в хэш
}
$nomer = $param{\'getcards\'}; # берем введенный номер
$name=$nomer.$extension;

opendir (IDIR,$catalog);
$found=0;
while(defined($file=readdir(IDIR))) #перебираем весь каталог (не очень полезная затея)
{
 if($file==$name)  # если нашли, то
 {
   $found=1;       # делаем вот так
   closedir(IDIR); # закрываем каталог
 }
}
if($found)  # и проверяем - нашли или не нашли
{
 print "Ура! Нашли файлик!";
}
else
{
 print "Ну нет такого файла!";
}

#А вообще-то - храни ссылки на файлы в твоем каталоге в каком нибудь файле (на худой конец), а

в лучшем случае в базе (типа mySQL). :-)
С наилучшими пожеланиями. LODEVAR

  • Гость
Название файла из директории!!!!!!!!!!!
« Ответ #7 : 22 Марта 2001, 19:26:25 »
Большое Спасибо Lodevar!!!
Сейчас буду пробовать!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28