הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   בחירת אילו משתנים ישלחו ב GET (https://hosts.co.il/forums/showthread.php?t=100189)

dabi 02-10-12 21:03

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

אז אני רוצה שבGET ישלחו רק המשתנים של שם וכתובת
איך עושים זאת?
תודה


שאלה נוספת פחות חשובה,האם סישן זה דבר מאובטח? שלא ניתן לזייף אותו?
אם אני שם סישן שמכיל את ה ID של הלקוח ולפי זה אני שולף נתונים, אז
1)האם הוא יכול לראות מה הסישן הזה מכיל?
2)האם הוא יכול לזייף אותו? וככה להיות עם סישן של מישהו אחר?

Kernel 02-10-12 21:05

איזה טופס?
מה הקוד?

הדפדפן ישלח מה שתגדיר לו לשלוח.

Tomer 02-10-12 21:07

אל תגדיר name ל input ותפנה אליו דרך ה- id (עם JavaScript)

dabi 02-10-12 22:15

ציטוט:

נכתב במקור על ידי Kernel (פרסם 858779)
איזה טופס?
מה הקוד?

הדפדפן ישלח מה שתגדיר לו לשלוח.

טופס HTML פשוט מאוד
נגיד שיש בו 5 תיבות INPUT כולל תיבה 1 שיש בה בדיקת קלט של האימייל אז יש שם 2 משתנים של JS
כרגע זה שולח את כל 7 המשתנים דרך GET , אני רוצה להגדיר מה אני רוצה שישלח
איך עושים את זה?

ציטוט:

נכתב במקור על ידי Tomer (פרסם 858780)
אל תגדיר name ל input ותפנה אליו דרך ה- id (עם JavaScript)

אפשר יותר פירוט?? בבקשה ?
הבעיה שגם משתנים של JS שנועדו לבדיקת קלט אין להם NAME והם גם נישלחים

Tomer 02-10-12 22:27

לא בדקתי את העניין של הורדת ה- name, יכול להיות שזה לא עובד.

תנסה לקבוע ל input את המאפיין disabled:

קוד:

<input .... disabled="disabled">

dabi 02-10-12 22:35

ציטוט:

נכתב במקור על ידי Tomer (פרסם 858804)
לא בדקתי את העניין של הורדת ה- name, יכול להיות שזה לא עובד.

תנסה לקבוע ל input את המאפיין disabled:

קוד:

<input .... disabled="disabled">

זה לא יעזור למשתנים של ה JS שבודקים תיבת INPUT וגם הם נישלחים
בנוסף....
אם אני שולח מעמוד 1 לעמוד 2
אז הרי אני מקבל ככה
2.php?id=2&&name=yosi&&email=eee
ואז כשאני רוצה לשלוח מעמוד 2.PHP לעמוד 3.PHP גם ב GET
אז בנוסף לנתונים של הטופס עכשיו ישלחו כל מה שב GET עכשיו...
כל הנתונים שנשלחו מעמוד 1 ל 2 ישלחו גם מ 2 ל 3 כי ה GET ישלח גם אותם

אז המטרה שלי היא לבחור מה לשלוח איכשהו

Tomer 02-10-12 23:06

אני חושב שכדאי שתציג את קוד המקור של העמוד ומה בדיוק אתה מנסה לעשות. איבדתי אותך.

dabi 02-10-12 23:46

ציטוט:

נכתב במקור על ידי Tomer (פרסם 858809)
אני חושב שכדאי שתציג את קוד המקור של העמוד ומה בדיוק אתה מנסה לעשות. איבדתי אותך.

הכי פשוט

PHP קוד:

<script>
function 
validateForm()
{
var 
x=document.forms["TheForm"]["email"].value;
var 
atpos=x.indexOf("@");
var 
dotpos=x.lastIndexOf(".");
if (
atpos<|| dotpos<atpos+|| dotpos+2>=x.length)
  {
  
alert("Not a valid e-mail address");
  return 
false;
  }
var 
x=document.forms["TheForm"]["fname"].value;
if (
x==null || x=="")
  {
  
alert("Full name must be filled out");
  return 
false;
  }
}
</script>
<form name="TheForm" onsubmit="return validateForm();" action="1.php" method="get">
<h2>name: <input name="fname" type="text" value="Your name" onblur="if(this.value == '') {this.value='Your name'}" onfocus="if (this.value == 'Your name') {this.value=''}"></h2>
<h2>email: <input name="email" type="text" value="Your email" onblur="if(this.value == '') {this.value='Your email'}" onfocus="if (this.value == 'Your email') {this.value=''}"></h2>
<div style="text-align: center; padding: 14px;">


<input type="image"  src="images/doit.png" width="254px" height="94px"> 
<br />

</div>
</form> 

אם אני רושם בשדה הראשון
MYNAME
ובשדה השני
dabi@gmail.com
אני יקבל
PHP קוד:

1.php?fname=MYNAME&email=dabi%40gmail.com&x=79&y=45 

&x=79&y=45
זה משתנים שאומרים איפה לחצתי בתמונה של ב SUBMIT לא רוצה שהם ישלחו ב GET
איך עושים את זה?

BuildDream 03-10-12 00:20

X ו-Y הם לא משתנים לבדיקת קלט, בגלל שהשתמשת בתג input עם type של image - הוא שולח את הX וה-Y שבהן לחצת על התמונה (כדי שתוכל לזהות איפה בוצעה הלחיצה, לדוגמא אם תלחץ בדיוק בפינה השמאלית העליונה של הכפתור ה-X וה-Y יהיו שווים 0)

לדעתי זה מטומטם שהדפדפנים שולחים את זה בתור ברירת מחדל, אבל ככה זה עובד :)

dabi 03-10-12 00:36

ציטוט:

נכתב במקור על ידי BuildDream (פרסם 858819)
X ו-Y הם לא משתנים לבדיקת קלט, בגלל שהשתמשת בתג input עם type של image - הוא שולח את הX וה-Y שבהן לחצת על התמונה (כדי שתוכל לזהות איפה בוצעה הלחיצה, לדוגמא אם תלחץ בדיוק בפינה השמאלית העליונה של הכפתור ה-X וה-Y יהיו שווים 0)

לדעתי זה מטומטם שהדפדפנים שולחים את זה בתור ברירת מחדל, אבל ככה זה עובד :)

אני לא רוצה שישלח את X ו Y מה לעשות?

OmerC 03-10-12 01:31

א. השליחה שלך פה היא צריכה להיות כ post
ב. המשתנים x ו-y לא נשלחים גם ככה.

עריכה: עכשיו הבנתי על איזה x ו-y אתה מדבר, אלו לא המשתנים שב JS, הם נשלחים גם ככה פשוט אל תשתמש בהם.

dabi 03-10-12 01:33

ציטוט:

נכתב במקור על ידי OmerC (פרסם 858832)
א. השליחה שלך פה היא צריכה להיות כ post
ב. המשתנים x ו-y לא נשלחים גם ככה.

עריכה: עכשיו הבנתי על איזה x ו-y אתה מדבר, אלו לא המשתנים שב JS, הם נשלחים גם ככה פשוט אל תשתמש בהם.

אני בכוונה צריך ורוצה לשלוח בGET
ואני רוצה שהם לא יופיעו בGET זה השאלה שלי....

BuildDream 03-10-12 07:59

תג input מסוג image נועד כדי שתוכל לזהות את מיקום הלחיצה עליו, אם אתה לא רוצה לקבל את המיקום של הלחיצה יש לך דרכים אחרות לעשות את הכפתור

למשל לעשות במקום כפתור image - כפתור מסוג Button בלי טקסט עליו, ולהגדיר לו רקע שהוא התמונה שרצית - זה יפתור את הבעיה. זאת הדרך שאני ממליץ עליה.

דרך נוספת היא שליחת הטופס בעצמך - מה שאתה עושה זה באירוע onsubmit של הטופס אתה נותן לו return false ואז הוא לא נשלח, ובכפתור אתה עושה שברגע שלוחצים עליו יעביר לעמוד שאתה רוצה עם המשתנים שאתה רוצה (זה כבר לבנות את זה בJavaScript).

דרך נוספת היא להציג את התמונה בצורה רגילה (תג img) ולהוסיף לו קישור או onclick שמה שהוא עושה זה document.myform.submit()

dabi 03-10-12 11:39

ציטוט:

נכתב במקור על ידי BuildDream (פרסם 858846)
תג input מסוג image נועד כדי שתוכל לזהות את מיקום הלחיצה עליו, אם אתה לא רוצה לקבל את המיקום של הלחיצה יש לך דרכים אחרות לעשות את הכפתור

למשל לעשות במקום כפתור image - כפתור מסוג Button בלי טקסט עליו, ולהגדיר לו רקע שהוא התמונה שרצית - זה יפתור את הבעיה. זאת הדרך שאני ממליץ עליה.

דרך נוספת היא שליחת הטופס בעצמך - מה שאתה עושה זה באירוע onsubmit של הטופס אתה נותן לו return false ואז הוא לא נשלח, ובכפתור אתה עושה שברגע שלוחצים עליו יעביר לעמוד שאתה רוצה עם המשתנים שאתה רוצה (זה כבר לבנות את זה בJavaScript).

דרך נוספת היא להציג את התמונה בצורה רגילה (תג img) ולהוסיף לו קישור או onclick שמה שהוא עושה זה document.myform.submit()

למשל לעשות במקום כפתור image - כפתור מסוג Button בלי טקסט עליו, ולהגדיר לו רקע שהוא התמונה שרצית - זה יפתור את הבעיה. זאת הדרך שאני ממליץ עליה.


אשמח להסבר בבקשה
לא הבנתי כ"כ

Haimz 03-10-12 21:06

כשאתה עושה (לדוגמה)
קוד:

<input type="text" name="paymethod" />
תוריד את הNAME זאת אומרת:
קוד:

<input type="text" />
ואז יוצא שכל שדה בפורום שהוא בלי NAME לא נכנס לקישור ..

Tomer 03-10-12 21:18

חיים, קראת את כל האשכול לפני התגובה?

BuildDream 03-10-12 23:45

ציטוט:

נכתב במקור על ידי dabi (פרסם 858855)
למשל לעשות במקום כפתור image - כפתור מסוג Button בלי טקסט עליו, ולהגדיר לו רקע שהוא התמונה שרצית - זה יפתור את הבעיה. זאת הדרך שאני ממליץ עליה.


אשמח להסבר בבקשה
לא הבנתי כ"כ


זה אפשרי לעשות את זה עם button, אבל התבלבלתי בתגובה שלי והתכוונתי לsubmit - זה בדיוק האלמנט שאתה צריך לטופס שלך.

PHP קוד:

<input type="submit" value="" style="background:url('image.jpg') no-repeat;border:0px;height: 50px;width: 50px;" /> 

תחליף את הכתובת של התמונה לתמונה שלך, את הגובה והרוחב תשנה לפי התמונה - וזהו יש לך כפתור שליחה שנראה כמו התמונה שלך ולא שולח X ו-Y.


כל הזמנים הם GMT +2. הזמן כעת הוא 18:23.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ