Автор Тема: Помогите чайнику!!!  (Прочитано 4483 раз)

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

Оффлайн Strat

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите чайнику!!!
« : 02 Сентября 2002, 22:38:25 »
Здравствуйте, уважаемые профессионалы.

Пожалуйста, помогите!

Мне нужно, чтобы данные из формы записывались в txt файл не в дир. cgi-bin, а в дир. mydomain/ , и после завершения скрипта браузер отправлялся на др. сайт. Мой скрипт чо-то глючит:
 
#usr/bin/perl

&GetFormInput;

$name=$field{\'name\'};
$pass=$field{\'pass\'};

sub GetFormInput {

(*fval) = @_ if @_ ;
local ($buf);
if ($ENV{\'REQUEST_METHOD\'} eq \'POST\') {
read(STDIN,$buf,$ENV{\'CONTENT_LENGTH\'});
}
else {
$buf=$ENV{\'QUERY_STRING\'};
}
if ($buf eq "") {
return 0 ;
}
else {
@fval=split(/&/,$buf);
foreach $i (0 .. $#fval){
($name,$val)=split (/=/,$fval[$i],2);
$val=~tr/+/ /;
$val=~ s/%(..)/pack("c",hex($1))/ge;
$name=~tr/+/ /;
$name=~ s/%(..)/pack("c",hex($1))/ge;

if (!defined($field{$name})) {
$field{$name}=$val;
}
else {
$field{$name} .= ",$val";
}
}
}
return 1;
}
open (OUTFILE, ">>type.txt");
print OUTFILE "$name";
print OUTFILE "\\n$type";
print OUTFILE "\\n=======END=======\\n\\n";
close (OUTFILE);
print "Location: [url]http://redirect_URL\\n[/url]" ;



Спасибо

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Помогите чайнику!!!
« Ответ #1 : 03 Сентября 2002, 14:19:19 »
perldoc CGI в части param
2B OR NOT 2B = FF

Оффлайн Serchey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 216
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rivne.ukrtelecom.ua
Помогите чайнику!!!
« Ответ #2 : 03 Сентября 2002, 15:29:07 »
print "Location: http://redirect_URL\\n\\n";

Оффлайн Strat

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите чайнику!!!
« Ответ #3 : 03 Сентября 2002, 22:04:33 »
Serchey, спасибо

Цитировать
print "Location: http://redirect_URL\\n\\n";


но как сделать чтобы файл создавался не в дир. cgi-bin?

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
Помогите чайнику!!!
« Ответ #4 : 03 Сентября 2002, 23:58:06 »
Цитировать
но как сделать чтобы файл создавался не в дир. cgi-bin?

Цитировать
open (OUTFILE, ">>type.txt");

open (OUTFILE, ">>direktoriya/type.txt");
каталог "direktoriya" должен существовать, если его не будет, будет ошибка:-). В принципе можно скриптом создать директорию функцией mkdir();
Ну к чему все это, лучше бы водки выпили...

Оффлайн Serchey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 216
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rivne.ukrtelecom.ua
Помогите чайнику!!!
« Ответ #5 : 04 Сентября 2002, 00:40:04 »
Плюс к тому ты должен быть его владельцом.

Оффлайн Serchey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 216
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rivne.ukrtelecom.ua
Помогите чайнику!!!
« Ответ #6 : 04 Сентября 2002, 00:43:28 »
Чуть не забыл - спроси у кого-то, где физически расположена твоя директория(не путай с УРЛом). Это также можна сделать скриптом:
#!/usr/bin/perl -w
use strict;

print "Content-type: text/html\\n\\n";
my $sit = `pwd`;
print "

$sit

\\n";

Но это только если ты под ...ксом работаешь.

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
Помогите чайнику!!!
« Ответ #7 : 04 Сентября 2002, 02:09:34 »
Цитировать
Плюс к тому ты должен быть его владельцом

это ты к чему... Разъясни, не понял? Для чего должен быть обязательно владелецем? Для скрипта достаточно права на выполнение, для cgi-bin прав на чтение-запись(или установка sticky bit)-выполнение? разве не так?
Цитировать
Это также можна сделать скриптом:

а ещё можно указывать относительные пути, хоть переносимость с сайта на сайт ухудшается, зато изменение операционной системы тебе паралельно.
Ну к чему все это, лучше бы водки выпили...

Оффлайн Serchey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 216
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rivne.ukrtelecom.ua
Помогите чайнику!!!
« Ответ #8 : 04 Сентября 2002, 11:41:44 »
Цитировать
это ты к чему...
Ты знешь, что на каталог права должны быть -rwxr-xr-x (это у нормальных людей)? А причем тут твои sticky bit-ы и т..д.? Если он хочет записать куда-то, он должен иметь право. Что тут может быть не ясно?

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
Помогите чайнику!!!
« Ответ #9 : 05 Сентября 2002, 22:41:40 »
Цитировать
-rwxr-xr-x

а если ---rwx--x То что? Если я, например, не владелец, а член группы владельца? Что это меняет? Я скрипт не могу редактировать и запускать?
Цитировать
это у нормальных людей

интересное определение нормальных людей...
Цитировать
А причем тут твои sticky bit-ы и т..д.?

Поясню на примере: Если кто-нибудь имеет право на запись в каталог, то он может добавлять и удалять файлы в этом каталоге, причём удалять не только свои файлы, а разом весь каталог, в котором могут находится файлы, к которым он доступа не имеет. Установка
Цитировать
sticky bit
позволяет разрешить пользователю добавление и удаление своих файлов из каталога, НО не даёт возможности удалить весь каталог(!).
Цитировать
он должен иметь право

В этом ты прав, вот только в системе юникс права имеет не только владелец, но и группа, и мир.
Уф... Врятли понятно объяснил, но надеюсь кто-то чего-то понял:-)
Ну к чему все это, лучше бы водки выпили...

 

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