רק אם יש לכם זמן

  • הוסף לסימניות
  • #1
להסביר לי איפה התוצאות של הform מתקבלות. אם אני רוצה לשלוח אותם לכתובת נגיד:127.0.0.1, port: 1234
או שלא הבנתי איך זה עובד...
 
  • הוסף לסימניות
  • #2
לא פירטת מספיק,
אתה שולח ב POST?
 
  • הוסף לסימניות
  • #3
עד היום השתמשתי בjavascript כדי לקרוא את כל הנתונים, ושלחתי ככה:
PHP:
    xmlhttp.open("GET", "php/control_cmd.php?cmd_id=108&data_length=1&data0=" + gpio_index);

ובדף הזה פתחתי socket וכו' ושלחתי לכתובת מתוארת למעלה.

אתמול גיליתי שיש כזה דבר form and action... ולא כל כך הצלחתי להבין מה נשלח ולאן
 
  • הוסף לסימניות
  • #4
אז זה הזמן ללמוד. טפסים בHTML עשוים לחסוך זמן וקוד.
הם שימושיים במיוחד כשהנתונים נלקחים מהמשתמש. הנה דוגמה למקרה שלך:

This user does not have permission to use the HTML BB code.

קוד:
<form action="php/control_cmd.php">
    <input name="cmd_id" value="108" type="hidden" />
    <input name="data_length" value="1" type="hidden" />
    enter index:<br/>
    <input type="text" name="data0" />
    <input type="submit" value="Submit">
</form>

הטופס הזה ניתן מאוד אוטומטי: לא כתבנו קוד בכלל לשלוח, לאסוף פרמטרים. והנה הקסם, בעת לחיצה על הכפתור, הדפדפן אוסף את הנתונים בצורת שם(name של אלמנט)/ערך (value של כל אלמנט). ומשרשר אותם כמחרוזת URL בשיטת GET (ברירת המחדל) לכתובת שהוזנה בaction. אם רוצים POST מציינים זאת באטריביוט בform בשם type.

נ.ב. כיון שבקוד שלכם היה ערכים קבועים שאינם מגיעים מקלט המשתמש שילבתי אותם בinputים נסתרים, כך מקובל.
 
  • הוסף לסימניות
  • #5
בקשר לפורט, אם זה יחסי לכתובת הקיימת זה מיותר לגמרי. אם זה כתובת מאתר אחר לגמרי אז מציינים את הפורט בדיוק כמו בדפדפן: בסיום הדומיין המלא אחרי נקודתיים לפני ההמשך (QueryString) אם ישנו.
 
  • הוסף לסימניות
  • #6
דווקא הערכים הם לא קבועים אלא היו מ-ל-א אלמנטים (לא דווקא בטופס הזה) ובמכלל לא היה Form אלא div ובמקום submit היה button ו onclick שמפנה לפונקציה והפונקציה עוברת על כל האינפוטים ומוציאה את התוכן שלהם ואז שולחת כנ"ל.

מה ההבדל בין post ל get?
 
  • הוסף לסימניות
  • #7
נכתב ע"י יוגורט;1615127:
מה ההבדל בין post ל get?

זה שתי דרכים בהם דפדפנים שולחים ערכים לשרת. או כGET וזה שרשור ערכי טקסט בURL אחרי הדומיין וסימן שאלה. זה בדיוק איך שעשיתם בJS. זה גם הצורה בה אתם גולשים לדף הזה בפרוג, כשבשורת הכתובת ישנם שתיים שלוש פרמטרים משורשים כשבין שם הפרמטר לערכו מפריד סימן שוויון, ובין פרמטר לאחר מפריד סימן ה&.

בגישת הPOST נשלחים הפרמטרים שמותיהם וערכיהם בגוף הבקשה במילים אחרות ופשוטות לא בURL. הדפדפן לא מציג את המידע הזה, והוא יכול להיות ארוך מאוד כמו העלאת קובץ לשרת.

מה זה משנה? אז נתחיל מההשלכות:
בעוד GET הוא כלק מהכתובת וממילא נשמר בהיסטוריית הדפדפן, שאילתת POST לא נשמרת ולא יכולה להישמר במועדפים.
התוכן של ערכי הפרמטרים הינו בלתי מוגבל לעומת שאילתת GET.

ממילא שאילתת GET נחשבת לבלתי בטוחה להעברת ערכים רגישים כי הרי זה נשמר בהיסטוריית הדפדפן.
שאילתת GET עוצבה רק כדי לאחזר מידע/משאב מהשרת, ויש וסכמה שלא להשתמש בשאילתת GET לדברים שמשפיעים על השרת כמו עדכון ומחיקה והוספה.
 
  • הוסף לסימניות
  • #9
נכתב ע"י יוגורט;1615338:
לכמה שאילתא GET מוגבלת?

שאלה טובה. לפי התקן אין הגבלה בכלל, אבל בפועל יש בהחלט הגבלה. זה תלוי ביצרניות התכונה של השרתים והדפדפנים.
ראו כאן פרטים על הגבולות השונים: http://www.boutell.com/newfaq/misc/urllength.html
שם גם ניתנת המלצה לא להתקרב ל2000 תווים.
 
  • הוסף לסימניות
  • #10
שאילתת GET לא מוצפנת בכלל לעומת שאילתת POST הנשלחת תחת HTTPS שהיא מוצפנת
 

פרוגבוט

תוכן שיווקי
פרסומת

פוסטים חדשים שאולי לא קראת....

הצטרפות לניוזלטר

איזה כיף שהצטרפתם לניוזלטר שלנו!

מעכשיו, תהיו הראשונים לקבל את כל העדכונים, החדשות, ההפתעות בלעדיות, והתכנים הכי חמים שלנו בפרוג!

לוח מודעות

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק כה

אלְדָוִד אֵלֶיךָ יי נַפְשִׁי אֶשָּׂא:באֱלֹהַי בְּךָ בָטַחְתִּי אַל אֵבוֹשָׁה אַל יַעַלְצוּ אֹיְבַי לִי:גגַּם כָּל קוֶֹיךָ לֹא יֵבֹשׁוּ יֵבֹשׁוּ הַבּוֹגְדִים רֵיקָם:דדְּרָכֶיךָ יי הוֹדִיעֵנִי אֹרְחוֹתֶיךָ לַמְּדֵנִי:ההַדְרִיכֵנִי בַאֲמִתֶּךָ וְלַמְּדֵנִי כִּי אַתָּה אֱלֹהֵי יִשְׁעִי אוֹתְךָ קִוִּיתִי כָּל הַיּוֹם:וזְכֹר רַחֲמֶיךָ יי וַחֲסָדֶיךָ כִּי מֵעוֹלָם הֵמָּה:זחַטֹּאות נְעוּרַי וּפְשָׁעַי אַל תִּזְכֹּר כְּחַסְדְּךָ זְכָר לִי אַתָּה לְמַעַן טוּבְךָ יי:חטוֹב וְיָשָׁר יי עַל כֵּן יוֹרֶה חַטָּאִים בַּדָּרֶךְ:טיַדְרֵךְ עֲנָוִים בַּמִּשְׁפָּט וִילַמֵּד עֲנָוִים דַּרְכּוֹ:יכָּל אָרְחוֹת יי חֶסֶד וֶאֱמֶת לְנֹצְרֵי בְרִיתוֹ וְעֵדֹתָיו:יאלְמַעַן שִׁמְךָ יי וְסָלַחְתָּ לַעֲוֹנִי כִּי רַב הוּא:יבמִי זֶה הָאִישׁ יְרֵא יי יוֹרֶנּוּ בְּדֶרֶךְ יִבְחָר:יגנַפְשׁוֹ בְּטוֹב תָּלִין וְזַרְעוֹ יִירַשׁ אָרֶץ:ידסוֹד יי לִירֵאָיו וּבְרִיתוֹ לְהוֹדִיעָם:טועֵינַי תָּמִיד אֶל יי כִּי הוּא יוֹצִיא מֵרֶשֶׁת רַגְלָי:טזפְּנֵה אֵלַי וְחָנֵּנִי כִּי יָחִיד וְעָנִי אָנִי:יזצָרוֹת לְבָבִי הִרְחִיבוּ מִמְּצוּקוֹתַי הוֹצִיאֵנִי:יחרְאֵה עָנְיִי וַעֲמָלִי וְשָׂא לְכָל חַטֹּאותָי:יטרְאֵה אוֹיְבַי כִּי רָבּוּ וְשִׂנְאַת חָמָס שְׂנֵאוּנִי:כשָׁמְרָה נַפְשִׁי וְהַצִּילֵנִי אַל אֵבוֹשׁ כִּי חָסִיתִי בָךְ:כאתֹּם וָיֹשֶׁר יִצְּרוּנִי כִּי קִוִּיתִיךָ:כבפְּדֵה אֱלֹהִים אֶת יִשְׂרָאֵל מִכֹּל צָרוֹתָיו:
נקרא  2  פעמים
למעלה