עמוד ראשי מירק סקריפטינג מדריכים [מדריך] סוקט אתרים מסוג POST

[מדריך] סוקט אתרים מסוג POST

mIRC Guides - בפורום זה יפורסמו מדריכים לשפת המירק, הסברת פקודות ואפשרויות במירק וגם הסברים לשימוש בתוכניות חיצוניות לטובת המירק. לפרסום מדריכים יש לפרסמם תחילה בפורום "פרסום קודים ומדריכים" ולאחר מכאן הם יועברו לפורום זה.

הצטרף: 20 יוני 2011, 21:35
הודעות: 100
פורסם: 20 אוגוסט 2012, 15:44
שלום לכולם.

במדריך זה אני אסביר תוך מתן דוגמה איך לבנות סוקט אתרים מסוג POST.
מדריך זה לא למתחילים, ממליץ ללמוד קודם סוקט אתרים מסוג GET.

האתר עליו אני אבצע את הדוגמה הוא: http://www.ontxt.info/

הדבר החשוב ביותר בסוקט מסוג זה הוא למצוא את תבנית המידע שאנו צריכים לשלוח לאתר מסויים, לשם כך נשתמש ב Developer Tools שנמצא בתוך הדפדפן Explorer.

שלב א:
נכנסים לאתר http://www.ontxt.info/ דרך ה Explorer.

שלב ב:
לוחצים על F12 לפתיחת Developer Tools.

שלב ג:
לוחצים על הכפתור המסומן בכדי לפתוח בחלון נפרד.
http://i.imgur.com/KswsC.jpg

שלב ד:
ב DT (developer tools) לוחצים על הלשונית Network ואז על הכפתור Start capturing בכדי להתחיל ולתפוס את כל התקשורת בין הדפדפן לבין האתר.

שלב ה:
בדוגמה שלי זה מה שכתבתי באתר ולחיצה על Submit
http://i.imgur.com/FDGrJ.jpg

שלב ו:
הולכים ל DT
http://i.imgur.com/XOXyN.jpg
לוחצים על Stop capturing.
Clear - מנקה את המידע בחלון (אם תלחצו המידע ימחק)
הבחירה בצבע כחול, זהו המידע שאנחנו צריכים, לפירוט יש ללחוץ פעמיים על השורה או לחיצה על הכפתור שמסומן באדום Go to detailed view.

שלב ז:
הגענו לחלון הזה
http://i.imgur.com/PHW97.jpg
הכפתור בצבע ירוק Back to summary view יחזיר אותנו לחלון הקודם.

לשונית Request headers
זהו בעצם תוכן הסוקט שלנו שיהיה במירק, כל השורות שמסומנות באדום אותן נצטרך לסוקט, כל השורות שלא מסומנות אין צורך בהן (הן בשימוש בדפדפן ואין צורך למירק).

לשונית Request body
אם נכנס לשם תראו את התוכן הבא:
parent_pid=&format=text&code2=do.it.for.mircs&poster=&paste=Submit&expiry=f&password=

זהו בעצם המידע שנשלח לאתר, אם תבדוק בתוכן המידע תוכלו לראות את השורה שכתבתי באתר do.it.for.mircs

לשונית Response headers
תראה לנו מה האתר מחזיר, מה שנראה ב on sockread.

נתחיל לבנות את הסקריפט.

פתיחת הסוקט:
alias post {
  sockclose mircs.post
  sockopen mircs.post www.ontxt.info 80
}


הגדרת הסוקט ושליחת הנתונים:
on *:sockopen:mircs.post:{
  var %txt = parent_pid=&format=text&code2=justdoit&poster=&paste=Submit&expiry=f&password=
  var %x = sockwrite -tn $sockname
  %x POST /index.php HTTP/1.1
  %x Host: www.ontxt.info
  %x Content-Type: application/x-www-form-urlencoded
  %x Content-Length: $len(%txt)
  %x $crlf
  %x %txt
}


%txt - המשתנה הזה מכיל את המידע שנשלח לאתר באותה התבנית לפי מה שראינו ב DT.
POST - כתיבת הכתובת של העמוד אליו שולחים את המידע
Content-Length - גודל המידע שנשלח לאתר. האתר בקבלת המידע משווה את גודלו לגודל שאנחנו שלחנו לו וכך הוא ידע שכל המידע ששלחנו הגיע.
כמו שאנחנו יודעים בכדי שהאתר ידע ששלחנו את כל הגדרות הסוקט אנו שולחים שורה ריקה בסוף.
המידע הנוסף שאנחנו שולחים נשלח אחרי השורה הריקה.

קריאה התשובה של האתר:
on *:sockread:mircs.post:{
  if ($sockerr) { return }
  var %mircs
  sockread -f %mircs
  if (%mircs) { echo -ag %mircs }
}


השלב הבא לבדוק אם זה עובד.
מחברים את כל הסקריפט, ומפעילים את הסקריפט.
המידע שנקבל מהאתר הוא זה:
HTTP/1.1 302 Moved Temporarily
Date: Mon, 20 Aug 2012 15:33:27 GMT
Server: Apache/2
X-Powered-By: PHP/5.2.17
Location: 11472
Vary: Accept-Encoding,User-Agent
Content-Length: 0
Content-Type: text/html

ניתן לראות שהמספר שמקבלים ב Location הוא המספר של הלינק.
מחברים את הלינק של האתר למספר http://www.ontxt.info/11472
נכנסים ללינק ונראה בדיוק את מה ששלחנו.

סוף המדריך.

אשמח לקבל הערות/הארות ושאר תגובות.

נכתב על ידי Zen-.

הצטרף: 28 יוני 2011, 09:19
הודעות: 2
פורסם: 20 אוגוסט 2012, 18:07
תודה רבה ישפיץ!
קראתי הכל, העברת את זה בצורה מעולה. ממש עזר לי בקטע הזה של POST.

הצטרף: 12 אוגוסט 2011, 17:01
הודעות: 23
פורסם: 25 אוגוסט 2012, 03:30
ואוו כמה שחכתי למדריך הזה
רומןן תעשה לי ילד

הצטרף: 20 יוני 2011, 21:35
הודעות: 100
פורסם: 25 אוגוסט 2012, 08:39
בכיף, תעמוד בתור :)


חזור אל מדריכים

cron