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

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

drowkid 18-03-07 20:50

{מדריך} אימות טפסים, הסברים על הדרכים השונות!
 
ידע מוקדם
קצת js
והרבה html


ישנם כמה דרכים איכריות לאימות טפסים שנישלחים ע"י תגית הform והם:
1. בצד שרת (כמו רוב במתכנתים שאני מכיר!),
2. להשתמש בJS ולהקפיץ POP-UP,
3.שימוש בDHTML

כל מיני סיבות למה להשתמש ולמה לא:

השיטה הראשונה והמוכרת:
*מהיר כל לשימוש ולא דורש למידה של שפה נוספת
*לוקח עוד תעבורה(לא ממש הרבה אבל זה עדיין נקודה חשובה)
ויש עוד אבל הם לא ממש חשובות לנושא זה.

השיטה השניה:
*לא לוכח תעבורה
מעצבן תמשתמש ואלול ליגרם לו ליברוח

השיטה השלישית שאותה אני ילמד היום:
*לא לוכח תעבורה
*לא מקפיץ שום POP-UP
*קל לשימוש
*יפה למראה

יש צורך לילמוד קצת CSS וJS - ממש קל לדעתי


והיום אני ילמד אותכם את השיטה השלישית הכי טובה!

1
קודם ניפתח דף חדש:
HTML קוד:

<html>
<head>

2
ואז נפתח קוד JS ובתוכו פונקציה חדשה שהיא תיבדוק את הטופס:
HTML קוד:

<script type="text/javascript">

function check()
{

3.1
ואז ניכתוב משתנה שיכיל את תוכן הinput שאנו רוצים ליבדוק אם יש בו תוכן (ואם לא ניכתוב פלט מתאים)
HTML קוד:

var username=document.login.username.value
if (username=="")
{

username = שם הINPUT (מה שנמצא במאפיין NAME)
login = שם הform (מה שנמצא במאפיין NAME בתגית form)

3.2

השורה הבאה כותבת לתגית span את טקסט השגיאה
HTML קוד:

usernameErr.innerHTML="username is require"
usernameErr = שם הspan


ונחזיר שלילי כדי שהטופס לא ישלח(כשבאמת יש שגיעה)
HTML קוד:

return false
}


חזור על שלב 3 בישביל כל שדה

4
ניכתוב שהפונקציה תחזיר אמת(שהטופס ישלח אם אין שגיאות) וניסגור את התגיות ונתחיל את הbody:
HTML קוד:

return true

}
</script>
</head>
<body>

5
ניכתוב את תגית הטופס
HTML קוד:

<form name=login onsubmit="return check()">
המאפיין onsubmit: מה יקרה שהמשתמש ילחץ על שלח

6
ניכתוב input + תגית הspan שבמיקרה שיש שגיאה שם יוצג התוכן של השגיאה
HTML קוד:

username: <INPUT TYPE="text" name=username> <font color="red"><span id="usernameErr"></span></font><br/>
7
ונסיים תמסמך
HTML קוד:

<input type="Submit" name=Submit value="login>>">

</FORM>


</body>
</html>


וזהו!


הקוד כולו:
HTML קוד:

<html>
<head>

<script type="text/javascript">

function check()
{

var username=document.login.username.value

if (username=="")
{
    usernameErr.innerHTML="username is require"
return false

}
 else
{ }






 return true

}
</script>
</head>
<body>

<form name=login onsubmit="return check()">

username: <INPUT name=username> <font color="red"><span id="usernameErr"></span></font><br/>

<input type="Submit" name=Submit value="login>>">

</FORM>


</body>
</html>

אתם מוזמנים ליבדוק ולהגיב!


כל הזכויות שמורות לעופרי! כותב המדריך

RS324 18-03-07 21:15

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

Udi 18-03-07 21:19

אני יכול להוריד את הטופס למחשב,

למחוק את הבדיקות, בaction לקשר לעמוד הבדיקות בשרת שלך - והופה, בלי שום בעיה.

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

RS324 18-03-07 21:22

מה הקשר ל SESSION ?

אם אתה מספיק חכם אתה יכול לחסום POST משרתים אחרים...
לגבי ה SESSION לא שיטה הכי יעילה אבל עובדת...

Udi 18-03-07 21:25

ציטוט:

נכתב במקור על ידי RS324 (פרסם 441444)
מה הקשר ל SESSION ?

אם אתה מספיק חכם אתה יכול לחסום POST משרתים אחרים...
לגבי ה SESSION לא שיטה הכי יעילה אבל עובדת...

אתה יודע מה זה סשן טוקן?

זה פתרון קל ויעיל נגד סוג כזה של "התקפות".

BlueNosE 18-03-07 21:38

ציטוט:

נכתב במקור על ידי Udi (פרסם 441448)
אתה יודע מה זה סשן טוקן?

זה פתרון קל ויעיל נגד סוג כזה של "התקפות".

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

RS324 18-03-07 21:58

ציטוט:

נכתב במקור על ידי Udi (פרסם 441448)
אתה יודע מה זה סשן טוקן?

זה פתרון קל ויעיל נגד סוג כזה של "התקפות".

בוא תספר לי מה זה
אולי אני מכיר את זה בשם אחר ואני לא מסונכרן איתך

Udi 18-03-07 23:08

ציטוט:

נכתב במקור על ידי RS324 (פרסם 441469)
בוא תספר לי מה זה
אולי אני מכיר את זה בשם אחר ואני לא מסונכרן איתך

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

BlueNosE, על איזו שיטה אתה מדבר שאפשר להשתמש עם סשן?

BlueNosE 19-03-07 08:12

ציטוט:

נכתב במקור על ידי Udi (פרסם 441519)
אתה יוצר טוקן שמורכב ממשהו שאתה בוחר, שומר בסשן, ושומר גם את זמן יצירתו ובודק את כל המידע..

BlueNosE, על איזו שיטה אתה מדבר שאפשר להשתמש עם סשן?

את האמת זאת שיטה קצת מסובכת.
אתה מגדיר סשן בתחילת העמוד עם התוכן XYZ והיידן עם אותו תוכן.
יוצר אייפריים נסתר.
בתחילת העמוד אתה מפנה את הIFRAME לעמוד שמעדכן את התוכן של הסשן - ועם זה, אתה מעדכן בJS גם את התוכן של הHIDDEN, ודואג שהפעולה תתבצע כל כמה דקות (ככה אם המשתמש הוריד למחשב, הHIDDEN אצלו לא מעודכן).
אח"כ כמובן אתה משווה בין השניים.

אמנם זה עקיף - כמו כל בדיקת SESSION אחרת - אבל הרבה יותר קשה לשים לב לתוכן של HIDDEN שמשתנה..

Udi 19-03-07 08:46

הבנתי, קצת מסובך,
אבל המשתמש יכול לראות את צורת העבודה הזאת ולהיכנס לעמוד שמעדכן את הסשן בעצמו, לא?


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

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