Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Help, Чайнику снова нужна помощь 
:(
    Опции темы
X-Team
Дата 17.10.2004, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.10.2004

Репутация: нет
Всего: нет



Как можно при нажатие на линк открыть новую страницу и на лету создать там скрипт
вот сам скрипт
Цитата

#!/usr/bin/perl
# Админ панель
# add.cgi


use CGI qw(:standard);
use CGI::Carp qw/fatalsToBrowser/;
use strict;

if (param('act') eq 'login'){
      login();
}
elsif (param('act') eq 'add'){
      ch_pass();
      my $phrase = param('phrase');
      $phrase =~ s/\r\n/<br>/ig;
      open (FILE, ">>worphrase.db") or die("Невозможно открыть файл для чтения :( ",$!);
            print FILE "$phrase\n";
      close (FILE);
      print "Location: manage.cgi\n\n";
      exit;

}
elsif (param('act') eq 'del'){
      ch_pass();
      my $id = param('id');
      open (FILE, "<worphrase.db") or die(" Невозможно открыть файл для чтения :( ",$!);
            my @lines = FILE>;
      close (FILE);
      $lines[$id] = '';
      open (FILE, ">worphrase.db") or die("Невозможно открыть файл для чтения :( ",$!);
            print FILE @lines;
      close (FILE);
      print "Location: manage.cgi\n\n";
      exit;
}
elsif (param('act') eq 'edit'){
      ch_pass();
      my $id = param('id');
      open (FILE, "<worphrase.db") or die(" Невозможно открыть файл для чтения :( " ,$!);
            my @lines = FILE>;
      close (FILE);
      chomp @lines;

      print qq~
            <html>
            <head>
            <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
            <title>Менеджер фраз</title>
            <style>
            INPUT, TEXTAREA, SELECT  {color:navy; font-size:9pt; border:1px solid black; background-color:#F3F3F3;}
            td, body {font-family: verdana, arial, helvetica; font-size:11px;}
            </style>
            </head>
            <body topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0">
            <form method="POST" action="manage.cgi">
            <table border="0" cellpadding="0" cellspacing="1" width="100%">
            <tr>
            <td width="100%" align="center"><b>РЕДАКТИРОВАНИЕ ФРАЗЫ</b></td>
            </tr>
            <tr>
            <td width="100%" align="center"><textarea rows="8" name="phrase" cols="60">$lines[$id]</textarea></td>
            </tr>
            <tr>
            <td width="100%" align="center"><input type="submit" value=":: Изменить ::" name="submit"></td>
            </tr>
            </table>
            <input type="hidden" name="act" value="edit_end">
            <input type="hidden" name="id" value="$id">
            </form>
           
            </body>
            </html>
      ~;
      exit;
}
elsif (param('act') eq 'edit_end'){
      ch_pass();
      my $id = param('id');
      my $phrase = param('phrase');
      $phrase =~ s/\r\n/<br>/ig;
      open (FILE, "<worphrase.db") or die("Невозможно открыть файл для чтения :( ",$!);
            my @lines = FILE>;
      close (FILE);
      $lines[$id] = $phrase;
      open (FILE, ">worphrase.db") or die("Невозможно открыть файл для чтения :( ",$!);
            print FILE @lines;
      close (FILE);
      print "Location: manage.cgi\n\n";
      exit;
}
else {
      ch_pass();
      open (FILE, "<worphrase.db") or die("Невозможно открыть файл для чтения :( ",$!);
            my @lines = FILE>;
      close (FILE);
      my $phrases = qq~<table border="0" cellpadding="3" cellspacing="0" width="100%">\n~;
      my $num = 1;
      my $id = 0;
      my $i = 1;
      my $bg = '';
      foreach (@lines){
            if ($i == 1){
                  $bg = '#E6E9FB';
                  $i--;
            }
            else {
                  $bg = '#FFFFFF';
                  $i++;
            }
            $phrases .= qq~
                  <tr>
                  <td bgcolor="$bg" width="5%"><b>$num</b></td>
                  <td bgcolor="$bg" width="88%"><a title="Edit" href="manage.cgi?act=edit&id=$id">$_</a></td>
                  <td bgcolor="$bg" width="7%" align="right"><a title="Delete" href="manage.cgi?act=del&id=$id">Del</a></td>
                  </tr>
            ~;
            $num++;
            $id++;
      }
      $phrases .= '</table>';
      print "Content-type: text/html\n\n";
      print qq~
            <html>
            <head>
            <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
            <title>Менеджер фраз</title>
            <style>
            INPUT, TEXTAREA, SELECT  {color:navy; font-size:9pt; border:1px solid black; background-color:#F3F3F3;}
            td, body {font-family: verdana, arial, helvetica; font-size:11px;}
            </style>
            </head>
            <body topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0">

            <form method="POST" action="manage.cgi">

            <table border="0" cellpadding="0" cellspacing="1" width="100%">
            <tr>
            <td width="100%" align="center"><b>ДОБАВЛЕНИЕ ФРАЗЫ</b></td>
            </tr>
            <tr>
            <td width="100%" align="center"><textarea rows="8" name="phrase" cols="60"></textarea></td>
            </tr>
            <tr>
            <td width="100%" align="center"><input type="submit" value=":: Добавить ::" name="submit"></td>
            </tr>
            </table>
            <input type="hidden" name="act" value="add">
            </form>
            <br>
            <center>
            $phrases
            </center>
            <br>

           

            </body>

            </html>
      ~;
      exit;
}
# ====================== Логин форма ======================== #
sub login_form {
      print qq~
            <html>
            <head>
            <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
            <title>Менеджер фраз</title>
            <style>
            td, body {font-family: verdana, arial, helvetica; font-size:11px;}
            </style>
            </head>
            <body topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0">
            <form method="POST" action="manage.cgi">
            <p>&nbsp;</p>
            <table border="0" cellpadding="0" cellspacing="1" width="300" align="center" style="border:2px outset">
            <tr>
            <td width="100%" align="center" bgcolor="#E6E9FB"><b>LOGIN</b></td>
            </tr>
            <tr>
            <td width="100%" bgcolor="#E6E9FB" align="center"><input style="width:100%; font-size:9pt; font-weight:bold; border:1px solid black; background-color:#E6E9FB;" type="text" name="password" size="20"></td>
            </tr>
            <tr>
            <td width="100%" bgcolor="#E6E9FB" align="center"><input style="width:100%; font-size:9pt; font-weight:bold; border:1px solid black; background-color:#E6E9FB;" type="submit" value=":: Log in ::" name="B1"></td>
            </tr>
            </table>
            <input type="hidden" name="act" value="login">
            </form>
         

            </body>

            </html>
      ~;
}
# =========================== Конект к логину  ======================== #
sub login {

      my $password = param('password');
      open (FILE, "<pass.dat") or die "Невозможно открыть файл хранения паролей :( \n$!";
            my $i = 1;
            my $cookie = '';
            my $p = FILE>;
            if ($password eq $p){
                  $i++;
                  $cookie=cookie(
                              -name => "WOPhrase",
                              -value => "password=$password");

                  print header(-cookie => $cookie);
            }
      close(FILE);

      if ($i == 1){
            print "Location: manage.cgi\n\n";
      }
      else {
            print qq~
                  <html><head><META HTTP-EQUIV="Refresh" CONTENT="0; URL=manage.cgi"></head><body></body></html>
            ~;
      }
}
# ************************** SUB ch_pass *********************
sub ch_pass {
      my $cookie=cookie('WOPhrase');
      my @cook = split(/\,/, $cookie);
      my %cook = ();
      foreach (@cook){
          my ($n,$v)=split(/\=/,$_);
          $cook{$n}=$v;
      }
      open (PF, "<pass.dat") or die "Невозможно открыть файл хранения паролей :(";
            my $p = PF>;
      close(PF);

      if ($cook{'password'} ne $p){
            login_form();
            exit;
      }
}

Большое спасибо ;)
PM MAIL   Вверх
Secandr
Дата 17.10.2004, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: нет
Всего: 39



Скрипт на лету в окне не создаётся!!!!
Perl серверный язык!


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
korob2001
Дата 17.10.2004, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



Что ты подразумеваешь под новым окном? Какой именно линк?


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
X-Team
Дата 17.10.2004, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.10.2004

Репутация: нет
Всего: нет



Открыть новое окно и внем просто загрузить скрипт
<!--#include virtual="cgi-bin/sript.pl"-->
окно определеноого азимера допустим 500/500
линк самый обыкновенный.
Спасибо. :sample
PM MAIL   Вверх
GoodBoy
Дата 18.10.2004, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 4
Всего: 83



X-Team
Послушай, чайник!!! Почитай правила форума!!! Одно из основных прявил гласит:
Цитата
1) Заголовок сообщения должен кратко отражать суть проблемы, нельзя давать заголовки типа "Помогите", "Срочно нужна помощь", "Есть вопрос", "Очень надо", "Сложный вопрос по программированию" и тому подобное.



--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
HalkaR
Дата 19.10.2004, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: нет
Всего: 42



Нежнее, GoodBoy, нежнее надо :D
PM MAIL   Вверх
GoodBoy
Дата 19.10.2004, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 4
Всего: 83



HalkaR
Аря яша, надаэла!!!!! Он уже три темы с такими тупыми заголовками создал!!!!!!
Пусть читает правила!!!!!! :rtfm Вот!!!


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0474 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.