Armenian Knowledge Base  

Go Back   Armenian Knowledge Base > Technical sections > Webmaster Zone > Web Development
Register

Reply
 
LinkBack Thread Tools
Old 20.07.2002, 02:02   #1
Младенец
 
Join Date: 07 2002
Location: Интернет
Posts: 13
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Question Знатокам перл-а

Кто может написать скрипт на перл-е? который бы делал следующее :

Генерировал бы 5 разных чисел от 10 до 99 & рядом с этими числами выбирал из фотографий(на каждой фотографии нарисованны числа от 10 до 99) и показывал фотографию на которой будет число которое есть в 5-и генерированных числах, если потом нажать на число показанное на фотографии он отправлял по одному УРЛ-у(например : хттп://имяхоста/логин.хтмл), а если нажать на ошибочное число(которое не нарисованно на фотографии) он отправлял по другому УРЛ-у(например : хттп://имяхоста/эррор.хтмл).

З.Ы. если это сложно написать то могу сказать другой способ более лёгкий как мне кажется.

З.Ы.Ы. Перловцы плз помогите.
Reply With Quote
Old 20.07.2002, 04:54   #2
Студент
 
Join Date: 06 2002
Location: Yerevan
Posts: 258
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Ya na perle ne pisal tak chto znaniya chisto teoreticheskie no dumayu the following should work:
Code:
# v tvoem cgi-e vyzyvaesh' vo pervyx
srand ( time );
# t.k. tebe nado budet znat' kakie imenno cifry narisovanny na kartinke, postav' eti kartinki na html-e v <form method=&quot;post&quot; action=&quot;thiscgi.cgi&quot;>, i kartinki stav' pri pomoschi <input type=&quot;image&quot;>.
# v input-e value napishi cifry kotorye est' na kartinke: e.g. _10_54_90_ (esli na kartinke cifry 10, 54 i 90 ), a name napishi dlya vse say &quot;img&quot; i kogda budesh' click delat' na kartinku, on pridet v etot cgi s $img ravnym &quot;_10_54_90_&quot;
# i tebe nado budet vsego lish' prochitat' eti cifry, i.e. smth like this:
for ( $i = 0; $i < 5; $i++ ) {
  $num = 10 + int( rand( 90 ) );

  if ( $img =~ m/_($num)_/ ) {
    # and here I have no idea how to redirect to some page, but this will work I guess
    print &quot;Content-type: text/html\n\n&quot;;
    open (PAGE, &quot;http://www.rightpage.com&quot;);
    while (<PAGE>) {
      print;
    }
    exit(0);
  }
}
# didn't find the number, open the wrong page:
print &quot;Content-type: text/html\n\n&quot;;
open (PAGE, &quot;http://www.wrongpage.com&quot;);
while (<PAGE>) {
  print;
}
exit(0);
Hope this helps.
Reply With Quote
Old 21.07.2002, 14:15   #3
Младенец
 
Join Date: 07 2002
Location: Интернет
Posts: 13
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

сорри, можеш мне полностью написать, я перл незнаю.
Reply With Quote
Old 21.07.2002, 18:18   #4
Консервативн
 
VX's Avatar
 
Join Date: 01 2002
Location: Кавказская Албания
Posts: 889
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

>>> open (PAGE, "http://www.rightpage.com"); <<<<
VNIMANIE TAKOY KONSTUKCTSII V PERKE NE SUSHESTVUET!
Reply With Quote
Old 21.07.2002, 18:19   #5
Консервативн
 
VX's Avatar
 
Join Date: 01 2002
Location: Кавказская Албания
Posts: 889
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Quote:
Originally posted by WaReZ:
сорри, можеш мне полностью написать, я перл незнаю.
A zachem togda vasbhe na perle sprashiwat', ili tebe gotowoe reshenie "pod kluch" nujno??

Oswobojues' mojet i napishu
Reply With Quote
Old 21.07.2002, 21:33   #6
Студент
 
Join Date: 06 2002
Location: Yerevan
Posts: 258
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

It is a full code (you'll probably need to add #!/usr/bin/perl in the beginning, the main ideas are written inside the comments - strings beginning with #), but one more time, it's fully theoretical.

This is smth else, you can try for web page redirection part:
Code:
print <<EOF;
Content-type: text/html
Location: http://www.whatever.com
(tut enter vmesto etoj strochki - prosto ubb ego ubiraet, esli prosto enter budet)
EOF
2 VX
Dear VX, naschet open-a - eto pervoe chto ya nashel v inete i esli ty znaesh' chto eto nepravil'no, ty dolgen znat' kak open sdelat' web page pravil'no, i mog by napisat', vmesto togo chtoby abstraktno obeschat' sdelat' kogda/esli osvobodish'sya.
__________________
http://www.d-brane.com
Reply With Quote
Old 22.07.2002, 13:36   #7
Младенец
 
Join Date: 07 2002
Location: Интернет
Posts: 13
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

"под ключ" - это за бабло чтоли ?
мне нужно фрии. Неужели это так трудно сделать ?
Reply With Quote
Old 22.07.2002, 16:48   #8
Студент
 
Join Date: 06 2002
Location: Yerevan
Posts: 258
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

2 WaReZ
Ty to chto napisano xot' poproboval-to?!
Reply With Quote
Old 23.07.2002, 03:02   #9
Младенец
 
Join Date: 07 2002
Location: Интернет
Posts: 13
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Cорри, непробовал т.к. мне нужен полный скрипт а не кусочек. Cпасибки, что хоть стока написал.
Reply With Quote
Old 23.07.2002, 09:04   #10
Дошкольник
 
Dark Abyss of Yerevan's Avatar
 
Join Date: 01 2002
Location: hell
Posts: 124
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Вот. Имена картинок должны быть в формате X.gif, где
X - соответствующая цифра.

С тебя пиво!

Code:
#!/usr/bin/perl

    # Visual verification by abyss
    # Tue Jul 23 02:39:41 2002
    
    # S E T T I N G S #######################################
    $number_of_nums=5;
    $min_number=10;
    $max_number=99;
    $url1=&quot;http://www.yahoo.com&quot;;	# correct answer
    $url2=&quot;http://www.google.com&quot;;	# wrong answer
    $images_path=&quot;&quot;;			# images folder '/' ended
					# e.g. &quot;images/&quot; 
    # S C R I P T   B O D Y #################################


    # get the query string
    $num=$ENV{'QUERY_STRING'};


    if ($num){
	# $num is set so we have a query string
	($n1,$n2)=split /&/,$num;
	if ($n1==$n2){
	    print &quot;Location:$url1\n\n&quot;;
	} else {
	    print &quot;Location:$url2\n\n&quot;;
	}
    
    } else {	
	# generate html

        print &quot;Content-Type: text/html\n\n&quot;;
	# paste all your html that should appear before the image
        # and the numbers here
        print <<HTML_START;

<html>
 <head><title>Visual verification</title></head>
 <body>
HTML_START

        # generate 5 numbers
	srand (time);
	for ($i=0;$i<$number_of_nums;$i++){
	    # make sure we wont have duplicate numbers
	    do {
		$new_number= $min_number+int rand($max_number-$min_number+1);
	    } until (@numbers!~/$new_number/);
	    push @numbers,$new_number
	}	# end for
	$image_number=$numbers[int rand $number_of_nums];
	print &quot;<img src='$images_path$image_number.gif'>\n&quot;;
	print <<HTML_MIDDLE;
Click on the number that is highlighted on the image

HTML_MIDDLE

	# $0 contains script name with full address, 
	# parse it and get the script name without address.
	$0 =~ /([^\/]+$)/;
	$script_name=$1;

	foreach(@numbers){
	    print &quot;<a href='$script_name?$_&$image_number'>$_</a> \n&quot;;
	}
	


    }
    print <<HTML_END;

 </body>
</html>

HTML_END

    # E N D   S C R I P T   B O D Y #########################
Reply With Quote
Old 24.07.2002, 15:08   #11
Младенец
 
Join Date: 07 2002
Location: Интернет
Posts: 13
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Спасибо Dark Abyss of Yerevan, скрипт работает.
& ещё вопрос ту алл : как проверить включена ли графика ? на джаваскрипте я знаю как это делается а вот на перле нет.
Reply With Quote
Old 25.07.2002, 08:26   #12
Дошкольник
 
Dark Abyss of Yerevan's Avatar
 
Join Date: 01 2002
Location: hell
Posts: 124
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Quote:
Originally posted by WaReZ:
Спасибо Dark Abyss of Yerevan, скрипт работает.
& ещё вопрос ту алл : как проверить включена ли графика ? на джаваскрипте я знаю как это делается а вот на перле нет.
Не уверен что можно напрямую получить конфигурацию броузера.
Обычно в таких случаях используют javascript+cgi. Например,
спайлог использует именно этот метод, а именно javascriptom
собирает всю инфу а потом передает ее cgi скрипту через
QUERY_STRING. This should work.
Reply With Quote
Old 25.07.2002, 08:34   #13
Консервативн
 
VX's Avatar
 
Join Date: 01 2002
Location: Кавказская Албания
Posts: 889
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Abyss jan ya dumau cto poluchenie patha=a scripta ludshe delate' pro pomohsi $script_name = $ENV{SCRIPT_NAME}, tak bezopasnie
Reply With Quote
Sponsored Links
Reply

Thread Tools


На правах рекламы:
реклама

All times are GMT. The time now is 23:20.


Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.