Автор Тема: Помогите разобраться со скриптом  (Прочитано 3652 раз)

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

Оффлайн prodis

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 36
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Этот скрипт из учебника. Я пытаюсь его запустить но не получается. Я уже начал грешить на свой локальный сервер. Сервер в порядке скрипты типа Hello работают. Может опечатка в учебнике не знаю. Вот прошу вас помочь мне разобраться.    

Это HTML форма


Регистрация пользователя


Внимательно заполните поля и нажмите кнопку "Регистрации"


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Имя псевдоним
 
 
Возраст
 
 
e-mail
 
 

 


     
 
 



Это скрипт registration.cgi
 #!/usr/bin/perl

 use CGI;
$objectCGI = new CGI;

$polz=$objectCGI->param("polz");
$email=$objectCGI->param("email");
$vek=$objectCGI->param("vek");

print $objectCGI->header(- charset=>\'windows-1251\');

 if (&provdan())
   {
    &zapdan()
    }
    else {
      errdan()
      }
  sub provdan() {
   $errpole="";
   $pravform=1;
   $pravpole=$polz=~/^[a-zA-Za-яА-Я]+$/;
    unless($pravpole) {
      $errpole="polz,";
      $pravform=0;
      }
      $pravpole=$email=~/[a-zA-Zа-яА-Я]+\\@[a-zA-Zа-яА-Я\\-]+\\.[a-zA-Z]+/;
        unless($pravpole) {
          $errpole="email,";
          $pravform=0;
          }
           return $pravform
           }

 sub errban() {
   chop($errpole);
   print $objectCGI->start_html (-TITLE=>"Проблемы с регистрацией",-BGCOLOR=>"blue");
   print $objectCGI->h2 ("Следущие поля были неправельно заполнены:
");
   print $objectCGI->h3 ("errpole
");
   print "Вернутся к предыдущей странице и попытатся снова.";
   print $objectCGI->end_html();
   }

 sub zapdan() {
   unless (open(LOGFILE,">> registr.log")) {
     print "Проблемы во время открытия файла!";
     exit;
     }
     seek (LOGFILE, 0, 2);
     print LOGFILE "$polz\\t\\t\\t$email\\t\\t\\t$vek\\n";
       unless (close (LOGFILE)) {
         print "Проблемы во время закрытия файла!";
         exit;
         }
         print $objectCGI->start_html();
         print $objectCGI->(\'Регистрация выполнена. СПАСИБО!!!\');
         }

Оффлайн ESE

  • Фанат
  • Постоялец
  • ***
  • Сообщений: 172
  • +0/-0
  • 2
    • Просмотр профиля
    • http://comp.hobi.ru
Помогите разобраться со скриптом
« Ответ #1 : 15 Июля 2007, 16:35:14 »
У тебя функция называется errban а вызываешь errdan()
Еще тут
print $objectCGI->h3 ("errpole
");
а нужно наверное
print $objectCGI->h3 ("$errpole
");

Внимательней!
У програмиста две руки: левая и !левая
welcome

Оффлайн prodis

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 36
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите разобраться со скриптом
« Ответ #2 : 15 Июля 2007, 18:34:32 »
Цитировать
ESE:
У тебя функция называется errban а вызываешь errdan()
Еще тут
print $objectCGI->h3 ("errpole
");
а нужно наверное
print $objectCGI->h3 ("$errpole
");

Внимательней!


Спасибо. Я исправил свою ошибку,  но скрипт почему-то  не хочет запускаться.
Какие могут еще быть ошибки, подскажи.

Оффлайн prodis

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 36
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите разобраться со скриптом
« Ответ #3 : 15 Июля 2007, 20:49:51 »
Проблему вроде бы нашел мне нужно было в скипте у казать путь в место
#!/usr/bin/perl
Заменить на этот
#!d:/server/perl/bin/perl
Теперь скрипт запускается в registr.log данные заносит но не  указывает (Регистрация выполнена. СПАСИБО!!!)

 

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