ورود

View Full Version : Internet applications



kia1349
چهارشنبه 18 شهریور 1383, 06:49 صبح
موضوعات مربوط به برنامه نویسی web base و اینترنت را در این قسمت مطرح کنید

binyaz2003
دوشنبه 06 مهر 1383, 22:13 عصر
سلام به همه
کسی هست که با فاکس برنامه تحت وب نوشته باشه ؟
یک برنامه تحت شبکه که هر چند وقت یکبار به بانک رو وب وصل شه و اطلاعات جدید رو دانلود و آپدیت کنه؟
فوریییییییییییییییییییییی ییییییییییییییییی :(

kia1349
سه شنبه 07 مهر 1383, 06:02 صبح
راستی آقای بی نیاز اینم بگم که که یکی از بهترین روشهای آپدیت اطلاعات کمک گرفتن فاکس از فایلهای vbs است که خیلی خوب ارتباطات اینترنتی رو هندل میکنه
توی این زمینه در کتاب 1002 thinks abouty visual foxpro مثالهائی وجود دارد

rezaTavak
سه شنبه 07 مهر 1383, 14:34 عصر
سلام

این کتاب کجاست؟

kia1349
چهارشنبه 08 مهر 1383, 05:55 صبح
توی briefcase یاهو
در همین فروم (فکر کنم در قسمت نمونه برنامه های کاربردی) مسیر و روش دسترسی بهش رو نوشته ام

rezaTavak
چهارشنبه 08 مهر 1383, 15:14 عصر
ممنون

binyaz2003
یک شنبه 12 مهر 1383, 10:11 صبح
چی شد هیچ کس نیست؟

kia1349
یک شنبه 12 مهر 1383, 10:36 صبح
http://www.west-wind.com/presentations/foxWebDataService/foxwebdataservice.asp

binyaz2003
یک شنبه 01 آذر 1383, 22:45 عصر
سلام به همگی
کسی می دونه چه جوری مقادیر key/val که از یک فرم به foxisapi برنامه ما فرستاده میشه رو بازیابی کرد البته غیر از west wind؟

binyaz2003
دوشنبه 02 آذر 1383, 10:18 صبح
سلام دوباره
یک سوال دیگه اینکه بانک ها رو چه جوری باز کنم رو وب با فاکس ایز آپی آی یعنی به صورت share باشه یا نه؟

binyaz2003
شنبه 07 آذر 1383, 09:41 صبح
کسی نیست؟تا حالا هیچ کس کار نکرده؟

rezamim
یک شنبه 08 آذر 1383, 10:46 صبح
سلام
بنظر من ساده ترین راه استفاده از ActiveVFP هست . البته من فقط یکبار برای تست انجام اون باهاش کار کردم و فوق العاده بود. تنها دلیلی که دیگه ادامه ندادم این بود که سرورها اونو پشتیبانی نمیکردن . البته یک سرور خوب با قیمت مناسب پیدا کردم ولی هنوز خیلی مناسب نیست!
من یکی از برنامه های ساده بانک اطلاعاتی خودم رو با این ActiveVFP تحت وب نوشتم واقعا عالی بود.
الان هم چند تا برنامه تحت وب عالی توی نظرم هست که فعلا دنبال هاست خوب و ارزون هستم .

binyaz2003
یک شنبه 08 آذر 1383, 19:44 عصر
بله درست اما وقتی نمیشه استفاده کرد چکار کنیم؟
من بالاخره تونستم جواب یکی از سوالهام رو پیدا کنم.البته هر چی تو foxite سوال کردم من و پاس دادن طرف west wind جالبه که کل سایت foxite هم با foxisapi کار شده.حالا نحوه گرفتن مقدار و دیکد کردن هر کدوم از فیلد های توی صفحه htm رو توضیح می دم.
اول که تعریغات مربوط به کلاس رو انجام می دیم


*** System Defines
#Define CR Chr(13)+Chr(10)
Define Class TFirstServer As Custom OlePublic

حالا توابع رو می نویسیم :


************************************************** **********************
Function URLDecode
******************
*** Function: URLDecodes a text string to normal text.
*** Assume: Uses wwIPStuff.dll
*** Pass: lcText - Text string to decode
*** Return: Decoded string or ""
************************************************** **********************
Lparameters lcText
Local lnSize

*** First convert + to spaces
lcText=Strtran(lcText,"+"," ")
*** Handle Hex Encoded Control chars
lcRetval = ""
Do While .T.
*** Format: %0A ( CHR(10) )
lnLoc = At('%',lcText)
*** No Hex chars
If lnLoc > Len(lcText) - 2 Or lnLoc < 1
lcRetval = lcRetval + lcText
Exit
Endif
*** Now read the next 2 characters
*** Check for digits - at this point we must have hex pair!
lcHex=Substr(lcText,lnLoc+1,2)
*** Now concat the string plus the evaled hex code
lcRetval = lcRetval + Left(lcText,lnLoc-1) + ;
CHR( Eval("0x"+lcHex) )
*** Trim out the input string
If Len(lcText) > lnLoc + 2
lcText = Substr(lcText,lnLoc+3)
Else
Exit
Endif
Enddo
Return lcRetval
Endfunc
* EOF URLDecod

این کد رو از تو کتاب Internet Applications with Visual FoxPro® 6.0Rick Strahl برداشتم که برای دیکد کردن مقدارها بکار می ره البته قبلش باید اون مقدار ها و اسم فیلدشون رو هم بگیریم که با استفاده از تابع بعدی این کار انجام می شه:


Function getval
Lparameters m.p1
Local m.tt,m.tf,m.tv,m.ctype
m.ctype=''
Do While .T.
tt = At("=",m.p1)
If tt = 0
Exit
Endif
tf = Alltrim(Left(m.p1,m.tt - 1))
m.tv = Alltrim(Substr(m.p1,tt+1))
m.tt = At("&",m.tv)
If m.tt > 0
m.p1 = Substr(m.tv,m.tt +1)
m.tv = Alltrim(Left(m.tv,m.tt-1))
Else
m.p1 = ""
Endif
If m.tf = "&"
m.tf = Alltrim(Substr(m.tf,2))
Endif
m.tf = Strtran(m.tf," ","_")
m.tv=this.URLDecode(m.tv)
m.ctype=m.ctype+'field :'+m.tf+' value:'+m.tv

Enddo
Return m.ctype
Endfunc

این کد رو هم از مثال foxis خود ویژوال فاکس برداشتم که خیلی بهتر از روش کتاب هست و یکی از بهترین منابع برای آشنایی و نحوه کار با foxisapi به نظر من و در آخر هم تو یک فانکشن دیگه اونها رو صدا میزنیم :


Function sendeddata
Lparameter lcFormVars, lcIniFile, lnReload
lnReload = 0 && Keep server loaded
lcHeader = "HTTP/1.0 200 OK"+Chr(13) + Chr(10) +;
"Content-type: text/html" + Chr(13) + Chr(10) + Chr(13) + Chr(10)
valus=This.getval(lcFormVars)
lcOutput = "<HTML><BODY>" + ;
"<h1>Hello World From Visual FoxPro!</H1><HR>" + Chr(13)+Chr(10) +;
"<b>Version: </b>" + Version() + "<BR>"+;
valus +"<br>" +;
"</BODY></HTML>"
Return lcHeader + lcOutput
Endfunc

Enddefine

نکته خیلی مهم این هست که نحوه فراخوندن توابعی که مقدار رو برمی گردونه نباید در یک دستور دیگه باشه.حتما باید جدا باشه مثل :


valus=This.getval(lcFormVars)

و اگر نه برنامه گیر می کنه و میره تو فاز busy که تنها راه بستنش task manager هست .
امیدوارم این نوشته ها بدرد بخوره . البته هنوز جواب سوال دومم رو پیدا نکردم تا اون رو پیدا کنم حتما می نویسم
:sunglass: