פשוט לקרוא את כל הפלט של דף ASP ולשלוח אותו כמשתנה לדף אחר שיכתוב אותו לקובץ, aspTear עושה את זה יופי.. אבל בשרתים של הספקי אינטרנט צריך להתקין את זה וזה צריך לעבור תהליך ארוך של אישורים והרבה כאב ראש, חשבתי אולי לחסוך את זה אם יש איזושהי דרך להכניס רק את הפלט של הדף למשתנה..
בטח שאתה יכול להביא את כל ה-SOURCE במכה אחת. אחרי הכל אפשר להשתמש ב-XMLHTTP להבאת טקסט ולהבאת XML אתה משתמש בהבאת TEXT ובכך מושך את כל -SOURCE של העמוד המתקבל
הנה קוד קטן <% Set GetIT = CreateObject("MSXML2.XMLHTTP") GetIT.Open "Get", "http://www.yousite.co.il/page.asp", False GetIT.setRequestHeader "Content-type", "text/html;charset=windows-1255" GetIT.Send myDim = GetIT.ResponseText Response.Write myDim %>
הקוד שם את הפלט של העמוד page.asp במשתנה ולאחר מכן מדפיסו בעמוד. אני מניח שזה כן מה שהתכוונת. מה שמודפס זה הפלט שהמשתמש מקבל גם אם הוא יכנס לעמוד page.asp בעמוד או לעמוד הכולל את הקוד הנ"ל.
עם הפורום בתפוז הצלחתי לעבוד עם זה רק בעיה אחת.. שאני מנסה את הסקריפט על דף asp בשרת שלי הוא נתקע.. על דפי asp בשרתים אחרים זה עובד וגם על דפי html בשרת שלי ושל אחרים.
בעזרת השימוש ברכיב ה winsock נוכל לפתוח חיבור לשרת, לשלוח לו בקשה, לקבל את הדף ואז להשתמש בקוד המקור(צד לקוח כמובן) של הדף איך שאנחנו רוצים.
השימוש ברכיב נראה כך:
<% set mySock=Server.CreateObject("Socket.TCP") mySock.host="www.webmaster.org.il:80" ' 80 is the port req="GET /webPage.html HTTP/1.0" & vbcrlf &_ "ACCEPT: image/gif, image/jpeg, */*" & vbcrlf & vbcrlf mySock.open() mySock.sendLine req mySock.WaitForDissconnect() response.write mySock.buffer '<=— this is the page we requested mySock.close() %>
אז כמה סיבות א. הסיבה הכי חשובה, אם אתה צריך את ה source של הדף בתור משתנה, ואגב זה לא ישנה לו אם זה HTML ASP PHP או כל דף אחר ב. אם אתה רוצה להגיע לדף אינטרנט שלא על השרת שלך ג. ואם אני לא טועה, server.Execute שיהיה בתוך קובץ שעליו עשינו server.Execute לא יעבוד. או שזה רק באינקלוד ככה. ד. אפשר להשתמש ברכיב הזה כדי לקרוא פלט של דף ASP שלא משתמשים בו הרבה, לכתוב אותו לדף HTML, שעובד הרבה יותר מהר, להפנות באתר לדף הHTML, וככה לשפר בהרבה את מהירות הגלישה באתר, כמו ב ynet.
23 תשובות
אם תסביר מה אתה מנסה לעשות
אולי אנשים יוכלו לבוא עם רעיונות יצירתיים…
פשוט לקרוא את כל הפלט של דף ASP
ולשלוח אותו כמשתנה לדף אחר שיכתוב אותו לקובץ,
aspTear עושה את זה יופי.. אבל בשרתים של הספקי אינטרנט צריך להתקין את זה וזה צריך לעבור תהליך ארוך של אישורים והרבה כאב ראש, חשבתי אולי לחסוך את זה אם יש איזושהי דרך להכניס רק את הפלט של הדף למשתנה..
XMLHTTP בצד שרת
הערה קטנה
אני ניסיתי לעשות זאת והצלחתי אך אם יש עברית בעמוד אז תקבל סימני שאלה.
כמובן שניסיתי גם את כל האפשרויות בהוספת תמיכה והגדרה עברית ולא עזר.
יש פתרון גם לבעית העברית
בדקתי את הקישור
וניסיתי מה שיש שם, לקחתי חלקי קודים ושילבתי אצלי וזה עובד. עברית מלאה.
אני אשתמש בזה מעכשיו והלאה. תודה
לפי מה שקראתי אני לא חושב שזה מה
שהתכוונתי.. התכוונתי ממש את כל הsource של הקובץ כמו שהמשתמש רואה אותו
בכל מקרה תודה.. אני פשוט ימשיך להשתמש ב aspTear
בטח שאתה יכול
להביא את כל ה-SOURCE במכה אחת.
אחרי הכל אפשר להשתמש ב-XMLHTTP להבאת טקסט ולהבאת XML
אתה משתמש בהבאת TEXT ובכך מושך את כל -SOURCE של העמוד המתקבל
הנה קוד קטן
<%
Set GetIT = CreateObject("MSXML2.XMLHTTP")
GetIT.Open "Get", "http://www.yousite.co.il/page.asp", False
GetIT.setRequestHeader "Content-type", "text/html;charset=windows-1255"
GetIT.Send
myDim = GetIT.ResponseText
Response.Write myDim
%>
הקוד שם את הפלט של העמוד page.asp במשתנה ולאחר מכן מדפיסו בעמוד.
אני מניח שזה כן מה שהתכוונת. מה שמודפס זה הפלט שהמשתמש מקבל גם אם הוא יכנס לעמוד page.asp בעמוד או לעמוד הכולל את הקוד הנ"ל.
בנושא אחר
בנושא אחר…
אני יכול לעשות פונקציה ב global.asa שתפתח קישור למסד נתונים ואז להשתמש בקישור הזה בדפים באתר?
איזה קישור ?
אתה מתכוון חיבור למסד הנתונים ?
כן..
עכשיו הבנתי…
אוקיי תודה רבה אני ינסה את זה
לא
פונק' שמוגדרות בגלובל.אסא לא זמינות בכל האפליקציה. תשתמש באינקלוד.
פוקק
עם הפורום בתפוז הצלחתי לעבוד עם זה
רק בעיה אחת.. שאני מנסה את הסקריפט על דף asp בשרת שלי הוא נתקע.. על דפי asp בשרתים אחרים זה עובד וגם על דפי html בשרת שלי ושל אחרים.
מישהו יודע למה?
אגב..
קראתי את זה
אבל איך פותרים את זה?
אולי אני צריך להתקין בשרת גרסה חדשה יותר? אבל לא כתוב בשום מקום שגרסא חדשה יותר פותרת את הבעיה..
סתם לידע כללי..
בחיפושי הרבים אחרי דרכים להכניס את ה source של קובץ למשתנה נתקלתי בעוד רכיב שלא שמעתי עליו
winsock.TCP:
אותו אפשר להוריד מ:
אם תרצו הדגמה של הרכיב אל תהססו..
למה לא?
צרף הדגמה ונעשה מזה פיקוק
רכיב WinSock
השימוש ברכיב כאן הוא לקריאת ה source של דף אינטרנט בעזרת רכיב WinSock אבל השימוש ברכיב הוא רחב מזה.
תקשורת בין שרתים מתבצעת בעזרת sockets, ו WinSock (Window Sockets) הוא ה socket הסטנדרתי בווינדוס.
כשמשתמש גולש לדף אינטרנט הדפדפן שלו שולח בקשה לשרת בפרוטוקול HTTP, והשרת מחזיר לו את הקובץ המבוקש שאותו הדפדפן מעבד ומציג למשתמש.
בקשה בפרוטוקול HTTP נראת ככה:
GET /webPage.html HTTP/1.1
HOST: https://www.webmaster.org.il
ACCEPT: image/gif, image/jpeg, */*
בעזרת השימוש ברכיב ה winsock נוכל לפתוח חיבור לשרת, לשלוח לו בקשה, לקבל את הדף ואז להשתמש בקוד המקור(צד לקוח כמובן) של הדף איך שאנחנו רוצים.
השימוש ברכיב נראה כך:
<%
set mySock=Server.CreateObject("Socket.TCP")
mySock.host="www.webmaster.org.il:80" ' 80 is the port
req="GET /webPage.html HTTP/1.0" & vbcrlf &_
"ACCEPT: image/gif, image/jpeg, */*" & vbcrlf & vbcrlf
mySock.open()
mySock.sendLine req
mySock.WaitForDissconnect()
response.write mySock.buffer '<=— this is the page we requested
mySock.close()
%>
את הרכיב(w3 socket) ניתן להוריד(בחינם!) מ:
או רכיב אחר מאותו סוג, ASPSock:
מה רע ב-Server.Execute??
myVar = Server.Execute("CalledAsp.asp")
אז כמה סיבות
א. הסיבה הכי חשובה, אם אתה צריך את ה source של הדף בתור משתנה, ואגב זה לא ישנה לו אם זה HTML ASP PHP או כל דף אחר
ב. אם אתה רוצה להגיע לדף אינטרנט שלא על השרת שלך
ג. ואם אני לא טועה, server.Execute שיהיה בתוך קובץ שעליו עשינו server.Execute לא יעבוד. או שזה רק באינקלוד ככה.
ד. אפשר להשתמש ברכיב הזה כדי לקרוא פלט של דף ASP שלא משתמשים בו הרבה, לכתוב אותו לדף HTML, שעובד הרבה יותר מהר, להפנות באתר לדף הHTML, וככה לשפר בהרבה את מהירות הגלישה באתר, כמו ב ynet.