| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > Вопрос о работе скрипта |
| Автор: Goph 2.4.2003, 05:57 |
| Подскажите почему может быть ошибка HTTP 500! Установлен Apache/1.3.23 Значит есть index.html лежит в www И есть скрипт registrar.cgi который обрабатывает данные переданные из index.html методом GET! Когда просто запускаешь http://localhost/index.html выдает 404 А когда из html перелает в cgi ошибка HTTP 505! А вот код index.html <html><head><title>ffff</title></head> <body> <h2>Регистрационная страница Клуба любителей фантастики</h2> Заполнив анкету, вы сможете пользоваться нашей электронной библиотекой. <br> <form method="get" action="/cgi-bin/registrar.cgi"> <pre> Введите регистрационное имя: <input type="text" name="regname"> Введите пароль: <input type="password" name="password1" max- length=8> Подтвердите пароль: <input type="password" name="password2" max- length=8> </pre> Ваш возраст: <input type="radio" name="age" value="lt20" checked>До 20 <input type="radio" name="age" value="20_30">20-30 <input type="radio" name="age" value="30_50">30-50 <input type="radio" name="age" value="gt50">Старше 50 <br><br> На каких языках читаете: <input type="checkbox" name="language" value="russian" checked>русский <input type="checkbox" name="language" value="english">английский <input type="checkbox" name="language" value="french">французский <input type="checkbox" name="language" value="german">немецкий <br><br> Какой формат данных является для вас предпочительным <br> <select name="format" size=2> <option selected value="HTML">HTML <option value="Plain text">Plain text <option value="PostScript">PostScript <option value="PDF">PDF </select> <br><br> Ваши любимые автора: <br> <textarea name"wish" cols=40 rows=3> </textarea> <br><br> <input type="submit" value="OK"> <input type="reset" value="Отменить"> </form> </body> </html> А вот registrar.cgi #!Perl print "Content-type:text/html\n\n"; $mathod = $ENV{'REQUEST_METHOD'}; if ($method eq "GET") { $form_data = $ENV{'QUERY_STRING'}; } else { read (STDIN, $form_data, $ENV{'CONTENT_LENGTH'}); } $form_data =~ s/%(..)/pack ("C", hex ($1))/eg; $form_data =~ tr/+/ /; @pairs = split (/&/, $form_data); foreach $pair (@pairs) { ($name, $value)=split(/=/,$pair); $FORM{$name}=$value; } if (!$FORM{'regname'} || !$FORM{'password1'}) { print<<goback <html> <head><title>Неполные данные</title></head> <body><h2>Извини, Вы пропустили обязательные данные</h2> <br> <a href="http://localhost/index.html">Попробуйте еще раз, пожайлуста</a> </body> </html> goback ;} elsif ($FORM{'password1'} eq $FORM{'password2'}) { print<<confirmation <html> <head><title>Поздравляем!</title></head> <body><h2>Поздравляем!</h2><br> Ваша регистрация прошла успешно. Вы можете пользоваться нашей библиотекой. Спасибо за внимание. </body> </html> confirmation :} else { print<<new_form <html><head><title>Ошибка при ввводе пароля</title></head> <body><h3>Введенные Вами значения пароля не совпадают <br><form method="get" action="/cgi-bin/registrar.cgi"> <pre> Введите пароль: <input type="password" name="password1"> Подтвердите пароль: <input type="password" name="password2"> </pre> new_form ; foreach $key (keys %FORM) { if ($key ne "password1" && $key ne "password2") { print "<input type=\"hidden\" name=$key value=$FORM{$key}>\n"; } } print<<EndOfHTML <br><br> <input type="submit" value="OK"> <input type="reset" value="Отменить"> </form></body></html> EndOfHTML ;} Подскажите!!!!! СПАСИБО!!!! |
| Автор: acp 2.4.2003, 08:16 |
| Можеть быть почитать хоть немножечко документации по Апачу? 1. По дефолту, директория, куда кладутся документы называется htdocs, а никак не www. Скорее всего, ты не туда кладёшь... (если не менял конечно) 2. Есть такой файлик в одной из поддиректорий апача logs\error.log вот там написано, что конкретно у тебя глючит... 3. Нечитабелен совершенно твой код. Может его лучше было бы вставить как "[code ]"? |
| Автор: HalkaR 2.4.2003, 16:29 |
| 1. В принципе можно попробовать писать не localhost а 127.0.0.1. Но скорее всего у тебяя действительно не сконфигурирован сервер. 2. 505 это что за ошибка? У меня после установки 2-ого Апача скрипты стали запускаться откуда не попадя. |
| Автор: Goph 2.4.2003, 22:16 |
| Да ну просто ошибка в скрипте! |
| Автор: NightGoblin 13.4.2003, 10:24 |
| Дык посмотри в логах апачи - /etc/httpd/logs/error_log - там должно быть сообщение об ошибке, сам по себе код 500 тебе, само собой, ничего не скажет... Кстати, правда, что за 505? или это очепятка? |