سئوال در رابطه با cgi

AmirOmidvar

New Member
لطفا کمک کنید!!! در رابطه با cgi

سلام.
ببخشید من تازه وارد هستم، نمیدونم توی انجمن درستی تاپیک زدم یا نه.
ولی بهرحال

یه کد اچ تی ام ال دارم:

کد:
<FORM action=http://10.4.12.55/index.cgi method=post encType=multipart/form-data><INPUT type=submit value=restartppp name=action></FORM></TD></TR>

این کد در واقع یه دکمه هست مثلا به اسم restartppp

وقتی کاربر این دکمه رو فشار میده، این اتفاق میافته:
پارامتر action با مقدار restartppp با انکدینگ تایپ multipart/form برای صفحه index.cgi فرستاده میشه.

حالا من میخوام این دکمه دیگه نباشه! یعنی مثلا بتونم با یه url همین کار رو انجام بدم.

مثلا توی Php میدونیم که این عمل اینطوری انجام پذیره:
test.php?action=restartppp
اما توی این cgi این عمل اینطوری امکان پذیر نشد.
شاید بخاطر اون انکدینگ تایپ باشه؟ (enctype)؟ و یا شاید هم متد پست (post)
چجوری این کد رو به یه Url تبدیل کنم؟؟؟؟؟؟؟؟؟ یا هر چیز دیگه ای که دیگه به کلیک کاربر نیاز نباشه. مثلا توی لود صفحه این کد اجرا بشه و من بتونم با فراخوانی این صفحه این کد رو هم اجرا کنم.

چیکار کنم؟

من در نهایت میخوام این عمل رو هر 2 دقیقه یکبار بصورت اتومات انجام بدم؟ چیکار کنم؟

پیشاپیش ممنون از کمکتون

موفق باشید.
 
آخرین ویرایش:

k2-4u

Well-Known Member
سلام دوست عزیز
هنوز یک دقیقه نشده !!! کمی صبر !!

اگر می خواهین عمل به صورت اتوماتیک انجام بشه
به perl بیچاره . ربطی نداره . این کارو با جاوا اسکریپ انجام میدن

مشکل اول شما هم به html مربوط میشه
شما فقط کافیه از متد GET استفاده کنید
PHP:
<FORM action="http://10.4.12.55/index.cgi" method="GET">
به همین راحتی

(البته اگر منظور رو دست فهمیده باشم )
 

AmirOmidvar

New Member
خیلی ممنون
از اینکه یه نفر پیدا شد، خیلی خوشحال شدم!!
دوست من سلام.
خیلی ممنون هستم از راهنماییتون، اما:

اون کد، گفتم کارش اینه که یه دکمه میسازه، که اون دکمه کار رو انجام میده. (هیچ مشکلی هم نداره و به خوبی اجرا میشه و نیاز به تغییر متد نداره) اما:

من میخوام اون دکمه نباشه. مثلا با لود صفحه این کار انجام پذیر بشه! یا این کار رو با یک url انجام بشه، که بتونم بعد با یه برنامه ساده این کار رو بصورت متناوب (مثلا هر 2 دقیقه) انجام بدم.

این url رو امتحان کردم: index.cgi?action=restartppp ولی جواب نداد. فکر میکنم مشکل از اون انکدینگ تایپ باشه!

جاوا اسکریپتی که فرمودید چجوریه؟

ببخشید، خیلی مزاحم شدم.!

ممنون از راهنماییتون
موفق باشید.
 

k2-4u

Well-Known Member
خیلی ممنون
از اینکه یه نفر پیدا شد، خیلی خوشحال شدم!!
دوست من سلام.
خیلی ممنون هستم از راهنماییتون، اما:

اون کد، گفتم کارش اینه که یه دکمه میسازه، که اون دکمه کار رو انجام میده. (هیچ مشکلی هم نداره و به خوبی اجرا میشه و نیاز به تغییر متد نداره) اما:

من میخوام اون دکمه نباشه. مثلا با لود صفحه این کار انجام پذیر بشه! یا این کار رو با یک url انجام بشه، که بتونم بعد با یه برنامه ساده این کار رو بصورت متناوب (مثلا هر 2 دقیقه) انجام بدم.

این url رو امتحان کردم: index.cgi?action=restartppp ولی جواب نداد. فکر میکنم مشکل از اون انکدینگ تایپ باشه!

جاوا اسکریپتی که فرمودید چجوریه؟

ببخشید، خیلی مزاحم شدم.!

ممنون از راهنماییتون
موفق باشید.

خواهش می کنم .
والا perl یه زبونه که . زیاد آدم کار کردش نیست .
یا شایدم بگیم طرف دارش کمه .
این موضوع کاری شما هم به بحث javascript مربوط میشه
اگر این تاپیک رو در قسمت Javascript ارسال می کردی
الان جواب و توجه بیشتری می شد

کار شما نیاز به html و javascript داره . به صورت زیر

HTML:
<html>
<head>
<script>
function OnBodyLoad(){
	setInterval("document.getElementById('form1').submit();",2000);

}
</script>
</head>
<body onload="OnBodyLoad()">
<FORM target="frame1" id="form1" action="http://10.4.12.55/index.cgi" method="GET"> 
<input type="text" name="hello"> 
</FORM>
<iframe name="frame1"></iframe>
<body>
</html>

این رو به صورت html زخیره کنید
عدد 2000 نشانه
2000 میکرو ثانیه معادل 2 ثانیه هست
به هر عددی دوست داشتی تغییر بده
:rose: موفق باشی
 

AmirOmidvar

New Member
دوباره سلام.
واقعا شرمنده کردید.
خیلی ممنون

ولی جواب نداد
الان متوجه شدم چجوری باید سئوال رو بپرسم
من کد شما رو بصورت زیر تغییر دادم:

HTML:
       <html>
<head>
<script>
function OnBodyLoad(){
 setInterval("document.getElementById('form1').submit();",7000);
}
</script>
</head>
<body onload="OnBodyLoad()">
<FORM target="frame1" id="form1" action=http://10.4.12.55/index.cgi method=post  enctype=multipart/form-data> 
<input type=submit value=restartppp name=action> 
</FORM>
<iframe name="frame1" width="761" height="495"></iframe>
<body>
</html>


الان سئوال من مشخص شد.
من یه دکمه دارم توی این صفحه (از نوع submit)
و این صفحه هم هر مثلا 7 ثانیه یک بار اجرا میشه
میخوام کاری کنم که توی هر 7 ثانیه که صفحه دوباره لود میشه، اون دکمه هم خود به خود کلیک بشه.

فکر کنم این سئوال گویا تر شد، درسته؟
نظرتون اینه که همین سئوال رو ببرم توی انجمن javascript، درسته؟

دوباره از توجه و کمک واقعا خوبتون سپاسگذارم.
موفق باشید.
 

k2-4u

Well-Known Member
ولی جواب نداد
من تست کردم کار کرد . مشکلی هم نداشت

فکر کنم این سئوال گویا تر شد، درسته؟
خیر


نظرتون اینه که همین سئوال رو ببرم توی انجمن javascript، درسته؟
بله .


اگر شما می خواهید . مقدار ها در بالای Url باشه
چرا از post استفاده می کنید ؟!؟! .
multipart/form-data هم فقط به متد POST مربوط میشه
method=post enctype=multipart/form-data

کد زیر باید کار کنه ولی چون متد POST هست
مقادیر به صورت مخفی ارسال می شوند

کد:
       <html>
<head>
<script>
function OnBodyLoad(){
 setInterval("document.getElementById('form1').submit();",7000);
}
</script>
</head>
<body onload="OnBodyLoad()">
<FORM target="frame1" id="form1" action=http://10.4.12.55/index.cgi method="post"  enctype="multipart/form-data"> 
<input type="submit" value="restartppp" name="action"> 
</FORM>
<iframe name="frame1" width="761" height="495"></iframe>
<body>
</html>


شما یک راه دیگه هم داری
اونم استفاده از php
است (با perl هم میشه )
به صورتی که . همه این کد ها رو بگذاری کنار و
یک . روبات درست کنی . بره مقدار POST یا GET رو
به یک صفحه ارسال کنه
 

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

بالا