يه اسكريپت ظاهرا ساده نياز دارم

سلام به همه ي دوستان.
من مي خوام يه سايت رو هاردم بسازم براي نمايش يه سري اطلاعات.
حالا چجوريه؟؟ اين جوري!
يه صفحه هست كه توش يه تكست باكس هست و يه فريم خالي.
مي خوام هر كي تو اين تكست باكي مثلا بزنه 123 بره و صفحه ي 123.html را از تو یه فولدر مشخص بخونه و تو فریم پایینی نشون بده.
برا هر عدد از 1 تا 120 یه صفحه ساخته شده. فقط کار این دکمه این باشه که بره و صفحه ای که شمارش تو تکست باکس وارد شده را بخونه و نشون بده.

اگه منظورم رو خوب منتقل نکردم- اینجا قالبی که منظورمه رو گذاشتم.
قالب
 

saman_sweden

Active Member
AmiraliOnline گفت:
سلام به همه ي دوستان.
من مي خوام يه سايت رو هاردم بسازم براي نمايش يه سري اطلاعات.
حالا چجوريه؟؟ اين جوري!
يه صفحه هست كه توش يه تكست باكس هست و يه فريم خالي.
مي خوام هر كي تو اين تكست باكي مثلا بزنه 123 بره و صفحه ي 123.html را از تو یه فولدر مشخص بخونه و تو فریم پایینی نشون بده.
برا هر عدد از 1 تا 120 یه صفحه ساخته شده. فقط کار این دکمه این باشه که بره و صفحه ای که شمارش تو تکست باکس وارد شده را بخونه و نشون بده.

اگه منظورم رو خوب منتقل نکردم- اینجا قالبی که منظورمه رو گذاشتم.
قالب

من دقيقا منظور شما را مي فهمم اين لينك را سال 87 من نوشته ام فقط تو اون فسمت سفيد tectbox در سمت راست صفحه كه سياه رنگ است يه شماره از 1 تا 700 بنويسيد و enter ا بزنيد
http://www.svt.se/texttv/


اوني كه شما مي خواهيدزياد هم ساده نيست چون چنين برنامه هايي فروم مي خواهند كه از سرور اون شماره يا نام صفحه را بخونه اين همونكاري كه مد نظر شماست منتها با cgi نوشته شده سرور شما بايد cgi را ساپورت كنه كه ما سال 97 شبيه اينو براي راديو تلويزيون سويد نوشته بودم اينم شبيه اون كد

کد:
use CGI qw(:standard escapeHTML);
use CGI::Carp 'fatalsToBrowser';
use LWP::UserAgent;
use strict;
use s_vars;

$CGI::POST_MAX=1024 * 700;  # max 700K posts
$CGI::DISABLE_UPLOADS = 0;  # uploads

my $script_name=script_name;

my $keywords=param('keywords');
my $start=param('start');

my $DMOZ_PER_PAGE=20;

print header;
my $next;
my @a;

if($keywords) {
	@a=@{get_file($keywords)};

	if($start+$RESULTS_PER_PAGE>=@a) {

		@a=(@a, @{get_pathole($keywords)});
	}

	my $as=scalar(@a);
	splice (@a, 0, $start) if $start;

	my $s=$start-$as;
	$s=0 if $s<0;

	if($RESULTS_PER_PAGE>=@a) {
		my @d=@{get_dmoz($keywords, $s)};
			@a=( @a, @d);
			if(@a<=$RESULTS_PER_PAGE && @d==$DMOZ_PER_PAGE) {
				@a=(@a, @{get_dmoz($keywords, $s+$DMOZ_PER_PAGE)});
			}
		}

	my $p=$start-$RESULTS_PER_PAGE;

	if($p>=0) {
		$next=qq(<a href="$script_name?keywords=$keywords&start=$p">Previous</a>);
	}

	if(@a>$RESULTS_PER_PAGE) {
		my $n=$start+$RESULTS_PER_PAGE;
		$next.=qq( <a href="$script_name?keywords=$keywords&start=$n">Next</a>);
	}

}

open(F,"<footer.html");
my @f=F>;
close(F);
my $footer=join('', @f);
open(F,"<header.html");
my @f=F>;
close(F);
my $header=join('', @f);


print $header;

my $c=0;
for(@a) {
	print;
	$c++;
	last if $c==$RESULTS_PER_PAGE;
}

$keywords=escapeHTML($keywords);

print qq(
<center>
$next
	<form action="$script_name" method="get">
		<input type="text" name="keywords" value="$keywords" size="25">
		<input type="submit" value="Search">
	</form>
</center>
$footer
);

sub get_dmoz {
	my $keywords=shift;
	my $start=shift;
	my $ua = new LWP::UserAgent;
	#$ua->proxy(['http', 'ftp'], 'http://192.168.106.1:3128/');
	my $url='http://search.dmoz.org/cgi-bin/search?search='.$keywords.'&utf8=1&locale=en_us&start='.$start;
	my $request=new HTTP::Request ('GET', $url);
	my $res=$ua->request($request);
	my $data;
	if($res->is_success) {
		my $content=$res->content;
		while($content=~/<ol.*?>(.*?)<\/ol>/gs) { 
			$data=$1;
		}
	}
	$data=~s/<img.*?>//gs;
	$data=~s/<b>//gs;
	$data=~s/<\/b>//gs;
	$data=~s/<\/a> -/<\/a><br>/gs;
	$data=~s/<a/<b><a/gs;
	$data=~s/<\/a>/<\/a><\/b>/gs;

	my @a;
	$data.='<li>';
	while($data=~/(.*?)<li>/gis) {
		my $f=$1;
		if($f!~/^\s+$/) {

		    $f=~s/<small>.*/<p>/gis;
			push @a, $f;
		}
	}

	return \@a;
}

sub get_file {
	my $word4search=shift;
	my $start=shift;

	open(F, "<$BASE");
	my @b=<F>;
	close F;
	
	my @a;		
	my @k_array=split(/[\.\,\`\'\"\s]+/, $word4search);
	for(@b) {
		my ($keyword, $title, $description, $url)=split(/\t/,$_);
		my $c=0;
		foreach my $k (@k_array) {
			if($k) {
				if($keyword!~/$k/si) {
					last;
				}
			}
			$c++;
		}
		push @a, qq(<b><a href="$url">$title</a></b><br>$description<p>) if @k_array==$c;
	}
	return \@a;
}

sub get_pathole {
	my $keywords=shift;
	my $start=shift;
	my $ua = new LWP::UserAgent;
	#$ua->proxy(['http', 'ftp'], 'http://192.168.106.1:3128/');
	my $url=qq(http://www.internetsearchnetwork.com/cgi-bin/search/dbfeed.cgi?keywords=$keywords&username=$USERNAME&db=1&external=1&show=$RESULTS_PER_PAGE);
	my $request=new HTTP::Request ('GET', $url);
	my $res=$ua->request($request);
	my $data;
	my @a;	
	if($res->is_success) {
		my $content=$res->content;
		foreach my $s(split(/\n/, $content)) {
			my($n, $title, $aurl ,$describe, $url)=split(/\t/, $s);
			push @a, qq(<b><a href="$url"onmouseover="window.status='$aurl';return true;" onmouseout="window.status='';return true;"  onclick="window.status='$aurl';return true;">$title</a></b><br>$describe<p>);
		}
	}

	return \@a;

}
توجه كنيد اين اون برنامه بالايي نيست شبيه اون است درست است اون برنامه را من نوشته ام اما كپي رايت مال شركت است

در ضمن مي توانيد از زبانهاي برنامه نويسي ساده تري مانند asp يا php استفاده كنيد شبيه اين برنامه در اون زبانها هم نوشته شده كافيه دنبال search server بگرديد
 
سلام - ممنون
نميشه دستي به دكمه وليو داد؟
ايف 1 اپن 1 دات اچ تي ام
ايف 2 اپن 2 دات اچ تي ام ...........

بعدشم من مي خوام رو هاردم اجرا بشه نه روي وب!

اگه راه (ايده) ديگري براي نمايش اطلاعات به اين صورت داريد راهنماييم كنيد.

با تشكر مجدد.
 

m_ziba

Member
ببخشيد من فكر مي كنم اين راه ساده تري داشته باشه.

شما مي تونين با ASP اين كار رو بكنين:

در هر صفحه (1-120)قبل از اينكه كدهاي HTML ظاهر بشن يك session (متغير سراسري)تعريف كنين.
مثلاْ در صفحه 1:
<%"Session("pagenumber")="1 %>
به همين ترتيب براي هر 120 صفحه.

بعد در صفحه اصلي اين طور مي شه:

<form method=post action="find.asp" target="I1">
<input type="text" name=mytext>


صفحه find.asp:
if Session("pegenumber")="1" then response.request("page1.asp ")

به همين ترتيب تا 120.


البته براي اجراي ASP روي هاردتون شما نياز به نصب IIS دارين. اگر سيستم عامل شما ويندوزXP است توي همون سيدي نصب ويندوز IIS هم هست. ونصبش هم خيلي راحته.

اميدوارم موفق باشيد.

من در خدمت هستم.
 

m_ziba

Member
سلام
AmiraliOnline
من يه اشتباهي كروم بوي اون كد قبلي كه براتون توضيح دادم.
حالا رفتم و يك كد درست نوشتم!
براي اطمينان روي كامپيوتر خودم هم امتحان كردم. درست جواب مي داد.
من براي 10 تا صفحه نوشتم.شما مي تونين خودتون تا 120 تاش رو بنويسيد.

يك صفحه داريم كه در اين صفحه شماره 1 تا 10 (شماره يكي از صفحات) رو وارد مي كنيم. و دكمه رو submit مي زنيم.
[hr:0994fc3c93]

test.htm:

<html>

<head>
<title>Enter number of page</title>
</head>

<body>

<form method="POST" action="find.asp">
Enter number of page:<input type="text" name="mytext" size="20"></p>
<p><input type="submit" value="Submit" name="submit"></p>
</form>

</body>

</html>


مي شه كه قراره صفحه مقصد رو پيداكنه find.asp خوب حالا نوبت صفحه

[hr:0994fc3c93]

find.asp:

<%
Select Case Request.Form("mytext")
Case 1
Response.Redirect("page1.htm")
Case 2
Response.Redirect("page2.htm")
Case 3
Response.Redirect("page3.htm")
Case 4
Response.Redirect("page4.htm")
Case 5
Response.Redirect("page5.htm")
Case 6
Response.Redirect("page6.htm")
Case 7
Response.Redirect("page7.htm")
Case 8
Response.Redirect("page8.htm")
Case 9
Response.Redirect("page9.htm")
Case 10
Response.Redirect("page10.htm")
Case Else
Response.Redirect("Error.htm")

End Select

%>

رو نصب كنبد. ْIIS شما براي اينكه اجراي درستي از برنامتون داشته باشيد بايد


همون طور كه قبلاْ من گفتم اگر ويندوز اكس پي دارين توي همون سي دي نصب ويندوز اكس پي
هم هستش.IIS

رو نصب كنيد. IIS. پس شما قبل از هر كاري بايد
اگر در نصب دجار مشكلي شديد باز من در خدمتم.
 

m_ziba

Member
يه كم ترتيب كلمات موقع پست به هم ريخت.
اميدوارم خودتون درست سر هم كنيد!
اون آخر گفتم كه شما بايد ّّIISّّّرو نصب كنيد.
 
ممنون - واقعن ممنون!
IIS رو نصب دارم. امتحان می کنم - خبر ميدم.
---------------------------------------

امتحانش كردم. وقتي كه سابميت مي كنيم مي خواد فايل find.asp رو دانلود کنه :cry:
اون کد Section رو هم بالای صفحه ها Paste کردم ببینم درست میشه یا نه -->درست نشد.
بعدش IIS رو چک کردم. نصبه!

IIS.gif


چی کار باید بکنم؟

ممنون
 

m_ziba

Member
اون كد session رو ولش كن كفتم كه اشتباه نوشتم.

همون برنامه test.htm رو بنويس.
و برنامهfind.asp

عيناْ همين ها رو كپي كن.

هر دو به همراه اون 120 صفحه بايد در يك مسير باشند.

ببين ! فكر كنم فهميدم اشتباهت در كجاست :wink:

شما مي ياي روي خود صفحه كليك مي كني انتظار داري برنامه اجرا بشه!
اين طوري فقط صفحه كد رو باز مي كنه(نه اجراي اونو)

براي ديدن اجراي برنامه تو بايد virtual directory بسازي.
اين كارهايي رو كه بهت مي گم مرحله به مرحله انجام بده:

1.تست IIS:
صفحه Internet Explorer رو باز كن. در منوي آدرس اينو بنويس:

http://localhost
اگر IIS درست نصبيده باشه صفحه مخصوص شركت مايكروسافت نشون داده مي شه.(بدون نياز به connect شدن به اينترنت)
وگرنه مي گه:The page cannot be displayed

خوب حالا ما مي فرضيم كه IIS كار مي كنه.

2.اين مسير رو در كامپيوترت پي گيري كن(ويندوز XP):
Start Menu-->Control Panel [switch to classic view ]--> Administrative tools -->Internet Information Services


اين IIS توست!

علامت هاي + رو به ترتيب باز كن تا برسي به:Default Web Site
(واي ديگه حالشو ندارم!!)

حالا روي اين Default Web site كليك راست كن.
خوب حالا: New > Virtual directory

خوب حالا يه صفحه باز مي شه بهت مي گه:Welcome to virtual Creation Wizard

Next رو بزن!
حالا توي Aliasهر اسمي دلت خواست بنويس.(خيلي بي ربط نباشه!)
حالاNext!

حالا همون مسيري كه فايل هاي برنامه هات توش هست اينجا برا Directory بيار.

next!
اين صفحه مال permission هاست. هر چي دوست داري برا خودت بذار!(فقط تيك دوتاي اولي رو برندار)

Next !

Finish !

حالا اون اسمي رو كه گذاشتي تو ليست Default Web Site مي بيني.
يه بار روش كليك بزن تا سمت راست file هات رو ببيني.

برو رو test.htm.
كليك راست:brows

حالا مي توني برنامت رو پي گيري كني.
(از كت و كول افتادم ننه! واي!)
اميدوارم مفيد باشه!

برنامه هايي كه بهت دادم تغييرشون نده. تستشون كردم درست جواب مي دن.

اميدوارم موفق باشي!
باز اگه مشكلي داشتي من در خدمتم! :cry:
(به شرطي كه خودت بياي تايپ كني!!) :wink:
 
ممنون - ممنون - ممنون
خيلي خيلي ممنون
ببخشيد دستتون درد گرفت!
خيلي كمكم كرديد!
امتحان كردم درسته!!
 

جدیدترین ارسال ها

بالا