thaiall logomy background
coding : cgi. gallery.pl.
my town
Source : Perl | PHP | ASP | JSP | HTML | HTML5 | JavaScript | Java | COBOL | C++ | MS Access | VBNet | VB | Python | โค้ดดี
File : gallery.pl. ID : 9101
Skin : Default | Sons-of-obsidian | Sunburst | Highlighter | Full
#!/usr/bin/perl
# Source Code นี้ใช้งานจริงที่ http://www.thaiall.com/cgi/gallery.pl
$update = "ปรับปรุง : 2549-03-04 (ใช้ตัวหลักที่ thaiall.com)";    
##########
# ขั้นตอนการนำ Perl Script ไปใช้
# 1. มี Server ที่รองรับภาษา Perl ลองศึกษาได้ที่ http://www.thaiall.com/perl
# 2. หาภาพมาจัดเก็บ เช่น dog001.jpg เก็บในห้อง dog
# 3. ลดขนาดภาพ แล้วจัดเก็บ เช่น dog001t.jpg เก็บในห้อง dogt
# 4. กำหนดตัวแปล เช่น $title[$i]="Dog"; $galt[$i]="dog"; $gale[$i]="dogt"; $i++;
# 5. เปลี่ยนตัวแปร $webaddr ตาม Url ที่เก็บภาพของท่าน
##########
# Main Configuration
# $title[$i]="ชื่อตัวเลือก"; $galt[$i]="ห้องเก็บ Thumbnail"; $gale[$i]="ห้องเก็บ Enlarge"; $i++;
$i=0;
$title[$i]="Pokemon"; $galt[$i]="pokemon"; $gale[$i]="pokemon"; $i++;
$title[$i]="Girl"; $galt[$i]="girlt"; $gale[$i]="girl"; $i++;
$title[$i]="Actress"; $galt[$i]="actresst"; $gale[$i]="actresse"; $i++;
$title[$i]="People"; $galt[$i]="idt"; $gale[$i]="id"; $i++;
$title[$i]="Lampang"; $galt[$i]="nwt"; $gale[$i]="nw"; $i++;
$title[$i]="Coolanime"; $galt[$i]="prettyanimet"; $gale[$i]="prettyanime"; $i++;
$title[$i]="Wallpaper"; $galt[$i]="wanimet"; $gale[$i]="wanime"; $i++;
##########
# กำหนด Server ที่เก็บภาพ 
# 1. อ่าน Thumbnail จากแฟ้มใน Directory ใน Server เดียวกับที่เก็บ Script
# 2. นำ Thumbnail และ Enlarge มาจาก http://www.thaiabc.com 
# สามารถกำหนดตำแหน่งของภาพด้วย if ($title[$gal] eq "actress") { $webaddr = "http://www.thaiabc.com"}
$webaddr = "http://www.thaiabc.com";
##########
# Process Configuration
$imax=$i-1;
$droot = join '',$ENV{DOCUMENT_ROOT},"/";
&parse_form;
##########
# Default of cat
# ถ้าไม่กำหนด ?cat=xxx ทำให้ค่าของ $gal เป็น 0 ทำให้กลุ่มแรกคือ "Pokemon" กลายเป็นค่าเริ่มต้น
for $j(0..$imax) { if ($v{'cat'} eq $title[$j]) { $gal=$j; } }
$gdire=join '',"/",$gale[$gal],"/";
# if ($title[$gal] eq "Pokemon") { $gdire=join '',"/",$v{'cat'},"/"; } else { $gdire=join '',"/",$gale[$gal],"/"; } 
&getf;
##########
$trowcol = $v{'row'} * $v{'col'};
$tot_page = ($tot_pro - ($tot_pro % $trowcol)) / $trowcol + 1;
if ($v{'res'} eq '640') {
  if ($v{'col'} eq '6') {$wd = 80;}
  if ($v{'col'} eq '7') {$wd = 70;}
  if ($v{'col'} eq '8') {$wd = 60;}
  if ($v{'col'} eq '9') {$wd = 55;}
}
if ($v{'res'} eq '800') {
  if ($v{'col'} eq '6') {$wd = 110;}
  if ($v{'col'} eq '7') {$wd = 95;}
  if ($v{'col'} eq '8') {$wd = 80;}
  if ($v{'col'} eq '9') {$wd = 70;}
}
if ($v{'res'} eq '1024') {
  if ($v{'col'} eq '6') {$wd = 140;}
  if ($v{'col'} eq '7') {$wd = 120;}
  if ($v{'col'} eq '8') {$wd = 110;}
  if ($v{'col'} eq '9') {$wd = 105;}
}
##########
# Start Content
print"Content-type:text/html\n\n";   
print'<html><head><title>รวมภาพ ',$title[$gal],'</title>';
print'<meta http-equiv=content-type content="text/html; charset=windows-874">';
print"<meta name=keywords content='gallery,photo,image'>";
print"<meta name=description content='รวมภาพ ห้องสะสมภาพ (Image Gallery)'>";
print'<style type="text/css">',"\n";
print'a:link{color:#ff0000;text-decoration:none;}',"\n";
print'a:visited{color:#800000;text-decoration:none;}',"\n";
print'td{font-size:10pt;font-family:ms sans serif;}',"\n";
print'</style>',"\n";
print'<base target=_blank>';
print'</head><body topmargin=0 leftmargin=0 link="#04669C" vlink="#04669C" alink="#04669C" bgcolor="#046193">';
##########
# Header Title
print'<table width=',$v{'res'},' align=center border=0 cellspacing=0 cellpadding=0 bgcolor=#dddddd><tr><td>';
if ($v{'file'}) { 
  print"<font size=6>ภาพขยาย</font>"; 
} else { 
  print'ห้องสะสมภาพ<br>';
  print'เว็บเพจสำรอง (Backup webpages) : ';
  print'<a href=http://www.thaiall.com/cgi/gallery.pl?row=4&col=6&res=800&seq=asc&cat=actress>thaiall.com</a> | ';
  print'<a href=http://www.thaiabc.com/ext/gallery.php>thaiabc.com</a> | ';
  print'<a href=http://www.perlphpasp.com/cgi-bin/gallery.pl>perlphpasp.com</a><br>';
  print'</td><td align=right valign=top><a href=http://www.thaiall.com/me>ทีมงาน</a> Tel.0-1992-7223';
  print'<br>View : <a href=http://www.thaiall.com/perlphpasp/source.pl?key=9101>Source Code</a></font>';
}
print'</td></tr></table>';
##########
# Header menu
print'<table width=',$v{'res'},' align=center bgcolor=#808080 border=0 cellpadding=1 cellspacing=1><form action="" action=post target=_top><tr bgcolor=#ddffff>';
if (!$v{'file'}) {
  print'<td align=center width=100>เลือกหน้าแบบด่วน</td><td align=center>จำนวนบรรทัด</td><td align=center>จำนวนหลัก</td>';
  print'<td align=center>ความละเอียด</td><td align=center>จัดเรียง<br>ตามเวลาของแฟ้ม</td><td align=center>ปรับค่าเริ่มต้นใหม่</td>';
  print'<td align=center>หน้าที่/ทั้งหมด</td><td align=center>จำนวนภาพ<br>ต่อหน้า</td><td align=center>จำนวน<br>ทั้งหมด</td>';
  print"</tr><tr bgcolor=#ffffdd><td align=center>";
  if ($tot_page ne '1' and $v{'page'} ne '1') {
    print'<input type=submit name=page value=1> ';
  } 
  if ($v{'page'} > "2") {
    print'<input type=submit name=page value=',$v{'page'}-1,'> ';
  } 
  if ($tot_page > $v{'page'} and ($tot_page ne $v{'page'} + 1)) {
    print'<input type=submit name=page value=',$v{'page'} + 1,'> ';
  }
  if ($tot_page ne '1' and $tot_page ne $v{'page'}) {
    print'<input type=submit name=page value=',$tot_page,'> ';
  } 
  print'</td><td align=center>';
  print'<select name=row size=1>';
  print'<option value=3 ';
  if ($v{'row'} eq '3') { print'selected';} print'>3 row';  
  print'<option value=4 ';
  if ($v{'row'} eq '4') { print'selected';} print'>4 row';
  print'<option value=5 ';
  if ($v{'row'} eq '5') { print'selected';} print'>5 row';
  print'<option value=6 ';
  if ($v{'row'} eq '6') { print'selected';} print'>6 row';
  print'<option value=7 ';
  if ($v{'row'} eq '7') { print'selected';} print'>7 row';
  print'<option value=8 ';
  if ($v{'row'} eq '8') { print'selected';} print'>8 row';
  print'<option value=9 ';
  if ($v{'row'} eq '9') { print'selected';} print'>9 row';
  print'</select></td><td align=center>';
  print'<select name=col size=1>';
  print'<option value=6 ';
  if ($v{'col'} eq '6') { print'selected';} print'>6 col';
  print'<option value=7 ';
  if ($v{'col'} eq '7') { print'selected';} print'>7 col';
  print'<option value=8 ';
  if ($v{'col'} eq '8') { print'selected';} print'>8 col';
  print'<option value=9 ';
  if ($v{'col'} eq '9') { print'selected';} print'>9 col';
  print'</select></td><td align=center>';
  print'<select name=res size=1>';
  print'<option value=640 ';
  if ($v{'res'} eq '640') { print'selected';} print'>640*480';
  print'<option value=800 ';
  if ($v{'res'} eq '800') { print'selected';} print'>800*600';
  print'<option value=1024 ';
  if ($v{'res'} eq '1024') { print'selected';} print'>1024*768';
  print'</select></td><td align=center>';
  print'<select name=seq size=1>';
  print'<option value=asc ';
  if ($v{'seq'} eq 'asc') { print'selected';} print'>Ascending';
  print'<option value=des ';
  if ($v{'seq'} eq 'des') { print'selected';} print'>Descending';
  print'</select></td><td align=center>';
  print'<input type=submit value="Update gallery"></td>';
  print"<td align=center>$v{'page'} / $tot_page</td><td align=center>", $v{'row'} * $v{'col'} ,"</td><td align=center>$tot_pro</td>";
}
print'</tr></table>';
##########
# Left menu
print'<table  width=',$v{'res'},' align=center border=0 cellpadding=0 cellspacing=0>';
print'<tr><td valign=top width=100 align=center bgcolor=#808080>';
$hr="<hr noshade color=#0000ff>";
print"$hr<input type=submit value='Go gallery'>";
print'<select name=cat size=8>';
for $i(0..$imax) {
  print"<option value=$title[$i]";
  if ($title[$gal] eq $title[$i]) { print" selected";} 
  print">$title[$i]";
}
print"</select>$hr เลือกหน้า<div align=left>";
for $i(1..$tot_page) { print'<input type=submit name=page value=',$i,'> '; }
print'</div>',$hr,'</form><form action="" target=top><input type=text name=cat size=10 value=Actress><br><input type=submit value="Go directly"></form>';
print'</td><td bgcolor=#000000 width=1></td>';
print'<td bgcolor=#fffffd align=center valign=top><table border=0 cellspacing=0 cellpadding=5 width=100%><td>';
if ($v{'file'}) {
  # ส่วนนี้แก้ปัญหา thumbnail ชื่อไม่ตรงกับ ภาพขยาย
  $frn=$v{'file'};
  # if ($title[$gal] eq "Actress" or $title[$gal] eq "Girl" or $title[$gal] eq "People" or $title[$gal] eq "Lampang") {
  if ($title[$gal] ne "Pokemon") {  
    @fr = split ('t\.',$frn);
    if (@fr > 1) { $frn=join'.',$fr[0],$fr[1]; }
  }
  #
  print"<center><img src=$webaddr$gdire$frn></center>"; 
} else {  
  for $i(1..$trowcol) {
    $p = $v{'page'}*$trowcol-$trowcol+$i-1; 
    if ($p<10) { $p=join'','00',$p; } else { if ($p<100) { $p=join'','0',$p; }} 
    if ($p < $tot_pro) {
	  @filetr = split ("\/",$okr[$p]);
	  $filet = $filetr[@filetr - 1];
      print'<a href=?cat=',$v{'cat'},'&file=',$filet;
	  print'><img border=0 src=',$webaddr,$okr[$p],' width=',$wd,'></a> ',"\n";
    }
  }    
}
print'</td></tr></table>';
print'</td></tr></table>';
##########
# Footer
print'<table  width=',$v{'res'},' align=center border=0 cellpadding=0 cellspacing=0 bgcolor=black><td align=center>';
print'<script language=javascript>',"\n";
print'<!--',"\n";
print'url=document.location.href.substr(7,11)',"\n";
print'page="cgi_gallery"',"\n";
print'if(url == "lampang.thc") document.write("<script language=\'javascript1.1\' src=\'http://truehits1.gits.net.th/data/h0013199.js\'></script>")',"\n";
print'if(url == "www.yonok.a") document.write("<script language=\'javascript1.1\' src=\'http://truehits1.gits.net.th/data/c0001943.js\'></script>")',"\n";
print'if(url == "www.thaiall") document.write("<script language=\'javascript1.1\' src=\'http://truehits1.gits.net.th/data/c0001941.js\'></script>")',"\n";
print'if(url == "www.perlphp") document.write("<script language=\'javascript1.1\' src=\'http://truehits1.gits.net.th/data/h0013336.js\'></script>")',"\n";
print'if(url == "thaiall.tha") document.write("<script language=\'javascript1.1\' src=\'http://truehits.gits.net.th/data/k0020653.js\'></script>")',"\n";
print'if(url == "www.thaiabc") document.write("<script language=\'javascript1.1\' src=\'http://truehits1.gits.net.th/data/h0014200.js\'></script>")',"\n";
print'-->',"\n";
print'</script> ';
print'<font color=white><a href=http://www.101-idea.com/counterr.php><img src=http://www.101-idea.com/counter1.php border=0></a> ',$update;
print'<br>Open Source : ห้องสะสมภาพ (Photo Gallery)</td></table></body></html>',"\n";

##########
sub parse_form {
  if ($ENV{'REQUEST_METHOD'} eq 'GET') {
    @pairs = split(/&/, $ENV{'QUERY_STRING'});
  } elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {
    read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
    @pairs = split(/&/, $buffer);
  }  
  foreach $pair (@pairs) {
    local($name, $value) = split(/=/, $pair);
    $name =~ tr/+/ /;
    $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    $value =~ tr/+/ /;
    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    $value =~ s/<!--(.|\n)*-->//g; 
    $v{$name} = $value;
  }
  if (!$v{'cat'})  { $v{'cat'}=$title[0]; }
  if (!$v{'seq'})  { $v{'seq'}='des'; }
  if (!$v{'res'})  { $v{'res'}=800; }
  if (!$v{'col'})  { $v{'col'}=6; }
  if (!$v{'row'})  { $v{'row'}=3; }
  if (!$v{'page'}) { $v{'page'}=1; }
}
##########
sub getf {
  $gdirt=join '',$droot,$galt[$gal],"/.";
  opendir(click,"$gdirt");
  @allf = readdir click;	
  closedir(click);   
  for $i (0 .. @allf) {		
    $r4 = lc substr($allf[$i],length($allf[$i])-4,4);
    if (length($allf[$i]) > 4 and  ($r4 eq ".jpg" or $r4 eq ".gif")) { 
      $pp = join '',"/",$galt[$gal],"/",$allf[$i];
      push @okr,$pp; 
    }
  }
  if ($v{'seq'} eq "des") { @okr = reverse( sort { $a <=> $b } @okr ); }
  $tot_pro = @okr;
}
จำนวน : 253 บรรทัด
าษาเฮชทีเอ็มแอล (HTML = HyperText Markup Language) คือ ภาษาคอมพิวเตอร์ที่ออกแบบมาเพื่อใช้ในการสร้างเว็บเพจที่เรียกดูผ่านทางเว็บเบราว์เซอร์ (Web Browser) เริ่มพัฒนาโดย ทิม เบอร์เนอรส์ ลี (Tim Berners Lee) ในปัจจุบัน HTML ล่าสุดคือ รุ่น 5 เป็นมาตรฐานหนึ่งของ ISO ซึ่งจัดการโดย World Wide Web Consortium (W3C) ในปัจจุบัน ทาง W3C ผลักดัน รูปแบบของ HTML แบบใหม่ ที่เรียกว่า XHTML รุ่นแรกคือ 1.0 (ม.ค.2543) ซึ่งมีโครงสร้างเป็นแบบ XML (eXtensible Markup Language)
าษาพีเอชพี (PHP Language) คือ ภาษาคอมพิวเตอร์ประเภทโอเพนท์ซอร์ท (Open Source Computer Language) สำหรับพัฒนาเว็บเพจแบบไดนามิก เมื่อเครื่องบริการได้รับคำร้องจากผู้ใช้ก็จะส่งให้กับ ตัวแปลภาษา ทำหน้าที่ประมวลผลและส่งข้อมูลกลับไปยังเครื่องของผู้ใช้ที่ร้องขอ ในรูปเอชทีเอ็มแอล ภาพ หรือแฟ้มดิจิทอลอื่นใด ลักษณะของภาษามีรากฐานคำสั่งมาจากภาษาซี เป็นภาษาที่สามารถพัฒนาให้ใช้งานแบบโต้ตอบกับผู้ใช้ได้
าษาไพทอน (Python Language) คือ ภาษาคอมพิวเตอร์ประเภทโอเพนท์ซอร์ท (Open Source Computer Language) สำหรับพัฒนาแอพพลิเคชั่นโดยไม่ยึดติดกับแพลตฟอร์ม (Platform) และใช้ในงานได้หลายประเภท ทั้งใช้ในการประมวลผลผ่านคอมมานด์ไลน์ หรือเป็นเว็บเพจแบบไดนามิก เมื่อเครื่องบริการได้รับคำร้องจากผู้ใช้ก็จะส่งให้โค้ดให้กับตัวแปลภาษา เพื่อทำหน้าที่ประมวลผลและส่งข้อมูลกลับไปยังเครื่องของผู้ใช้ที่ร้องขอ ในรูปข้อความ เอชทีเอ็มแอล ภาพ หรือแฟ้มดิจิทอลอื่นใด ลักษณะของภาษามีรากฐานคำสั่งมาจากภาษาซี เป็นภาษาที่สามารถพัฒนาให้ใช้งานแบบโต้ตอบกับผู้ใช้ได้ จุดที่แตกต่างกับภาษาอื่น คือ การรวบรวมจุดเด่นของแต่ละภาษามารวมเข้าด้วยกัน
อสคิวแอล (SQL = Structured Query Language) คือ ภาษาสอบถามข้อมูล หรือภาษาจัดการข้อมูลอย่างมีโครงสร้าง มีการพัฒนาภาษาคอมพิวเตอร์ และโปรแกรมฐานข้อมูลที่รองรับมากมาย เพราะจัดการข้อมูลได้ง่าย เช่น MySQL, MariaDB, MsSQL, PostgreSQL หรือ MS Access เป็นต้น สำหรับโปรแกรมฐานข้อมูลที่ได้รับความนิยมคือ MySQL หรือ MariaDB เป็น Open Source ที่ใช้งานได้ทั้งใน Linux และ Windows
วัสดีชาวโลก (Hello World) คือ ผลลัพธ์ครั้งแรกที่นักพัฒนาโปรแกรมนิยมเลือกใช้แสดงผลในโปรแกรมแรกที่เขียนขึ้นเพื่อทดสอบการทำงาน ข้อความนี้ทำให้นึกถึงมนุษย์ต่างดาวที่มาเยือนโลกและกล่าวกับมนุษย์เมื่อพบกันครั้งแรกในภาพยนตร์
ตัวอย่าง Hello World
ปรับปรุงโปรแกรม source.pl : 2565-07-24
Thaiall.com