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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Непонятные глюки ssi+cgi, ГЛЮКИ!!! 
V
    Опции темы
Marlik
Дата 14.6.2007, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Преужасные какие-то проблемы!!!

Я использую ssi и по чуть-чуть использую Перл. То есть если сайт у меня собирается по кусочкам, и я туда к примеру воткнул:
Код

<!--#exec cgi="/cgi-bin/admin.pl"-->

То получаются интересные вещи, как то: что я уже не могу выудить значение поля hidden, и до кучи почему-то не работают циклы!!!
Код

for(my $I; $I>=10;$I++){
print "bla-bla";
}

Вот и не работает такая простая конструкция. Может какие-то специфические проблеммы есть ssi+Perl
PM WWW Skype   Вверх
nitr
Дата 14.6.2007, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



Marlik, воспользуйтесь поиском, тут прехороший человек с ником korob2001 очень подробно описывал и решал любые проблемы с SSI+Perl smile

И гляньте внизу - http://forum.vingrad.ru/forum/topic-159256...817/0.html#look


--------------------
PM   Вверх
Marlik
Дата 15.6.2007, 06:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Тут даже дело не ssi, вот простая конструкция, и не пашет, и вообще цикл не могу запустить, может Перл переустановить?

Код

#!C:\perl\bin\perl -w
use strict;
use CGI::Carp 'fatalsToBrowser';
use CGI::Session;
use CGI qw(:standard);
my $cgi = new CGI;


  sub gen_html{
  while(my $i=1;$i==10;$i++){
   print "test...";
  }
     }

 print $cgi->header( -charset => 'Windows-1251');
 print $cgi->start_html( -title => "", -onLoad => "history.forward()" );

if( defined $cgi->param('') ){
  gen_sid();
}elsif ( defined $cgi->param('') ){

}else {
gen_html();
}

PM WWW Skype   Вверх
Marlik
Дата 17.6.2007, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ошибочка, вот так правильней. 
Код

sub gen_html{
my $i=1;
  for($i;$i==10;$i++){
   print "test...";
  }
     }


PM WWW Skype   Вверх
nitr
Дата 17.6.2007, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



Marlik, честно?! ерунда написана... и это и тот код - можно сказать верный! именно КАК он указан здесь smile первый случай даже лучше... а второй - если $i используется вне цикла... но всё равно неясно будет, зачем...

Если решили проблему, то плиз подробней, чтобы в дальнейшем люди не мучались...


--------------------
PM   Вверх
amg
Дата 18.6.2007, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

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



Цитата(Marlik @ 17.6.2007,  11:58)
Ошибочка, вот так правильней. 
Код

sub gen_html{
my $i=1;
  for($i;$i==10;$i++){
   print "test...";
  }
     }
Хм... Любопытное использование цикла. Думал-думал, но так и не понял смысла этого кода, несмотря на то, что "вот так правильней".

Логично было бы, если use strict и значение $i дальше нужно
Код

my $i=1;
for (; $i != 10; $i++) {
  print "test...";
}



Это сообщение отредактировал(а) amg - 18.6.2007, 08:57
PM MAIL   Вверх
nitr
Дата 18.6.2007, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



amg, верно =) , но у него там далее не юзается $i, хотя, думаю, твой код ему нужнее...

Код

for (my $i; $i < 10; $i++) {
  print "test...";
}

в двух словах:
for (наша переменная с начальным значением; условие "работы" цикла, т.е. пока оно выполняется - выполняется и цикл; изменение нашей переменной) {


--------------------
PM   Вверх
Nab
Дата 20.6.2007, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

foreach (0..10) { print "test...\n" }

 smile 


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
Marlik
Дата 22.6.2007, 05:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Да, какие-то глюки что-ли были, или у меня в голове что-то не так....

Стало вроде получатся, но есть небольшая проблема, не могу авторизовать пользователя.
К примеру втыкаю идентификатор ему в страницу как hidden, а вынуть уже не получается!!!
Вот образец главной страницы:
Код

<html>
<head> 
<title>Main</title>
<meta name="Keywords" content="">
</head>
<!--#include virtual="styles.css" --> 
<body>

<table width="80%" align="center" border="0">
<tr valign="top">
    <td align="center"><!--#include virtual='/src/top.shtml' --></td> 
</tr>
</table>
<table width="80%" align="center" border="0">
<tr>
    <td width="5%" align="center" valign="top"><!--#include virtual="/src/left.shtml" --></td> 
             <!--#if expr="$QUERY_STRING" -->
    <td width="80%" valign="top"><!--#include virtual='/src/$QUERY_STRING.shtml' --></td>
             <!--#else -->
    <td width="80%" align="center" valign="top"><!--#exec cgi="/cgi-bin/admin.pl"--><!--#include virtual='/src/middle.shtml' --></td>  
            <!--#endif -->
</tr>
</table> 

<table width="100%" align="center" border="0">
<tr>
<td><!--#include virtual="/src/bot.shtml" --> </td>
</tr>
</table> 


И теперь используя ssi даже не понимаю как проверять пользователей, идентификатор не могу выудить из hidden.
Куки использовать не надежно! Как люди делают?
PM WWW Skype   Вверх
Marlik
Дата 30.6.2007, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Извиняюсь, наверное неправильно все-таки обрисовал проблемму, вот так вставляю скрипт в страницу:

Код

<!--#exec cgi="/cgi-bin/admin.pl"-->
 

Сам скрипт:

Код

#!C:\perl\bin\perl -w
use strict;
use CGI::Carp 'fatalsToBrowser';
use CGI::Session;
use CGI qw(:standard);
my $cgi = new CGI;

sub gen_sid{
my $sess_ID = new CGI::Session("driver:File", undef, {Directory=>'tmp/'}) || die;
$sess_ID -> param('count','1');
$sess_ID -> expire('+10m');
my $id = $sess_ID->id();
$sess_ID -> close();
 print $cgi->hidden('sid',"$id");
 }

 sub check{
my $id = $cgi->param('sid');
 if($id){
 print "ONE";
 gen_sid();
 }else{
 print "TWO";
  }
  exit();
   }

 print $cgi->header(-charset => 'Windows-1251');
 #print $cgi->start_html( -title => "", -onLoad => "history.forward()" );




if( defined $cgi->param('') ){

}elsif ( defined $cgi->param('') ){

}else {
 check();
}


Таким образом пытаюсь при заходе пользователя вставить ему в скрытое поле идентификатор сессии, но вынуть идентификатор уже не получается проблемма по моему из-за того что я использую ssi, может кто встречался с такой проблемой.
PM WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


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

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


 




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


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

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