תוכן 1.מבוא4 ........................................................................................... . 2.תאור האתר 4 ..................................................................................... 3.סביבת פיתוח והרצה 4 .......................................................................... 4.מימשק משתמש/מנהל 4 ....................................................................... 5.מפת האתר5 ................................................................................. . 6.בסיס הנתונים. 6 ............................................................................. 6.1טבלאות הנתונים 6 ....................................................................... 6.2בדיקות תקינות6 .......................................................................... . 6.3בדיקות אמינות 6 ......................................................................... 6.4עבודה מול מסד הנתונים7 ............................................................ . 7.תדפיסים7 ....................................................................................... . מבוא הנושא של האתר שלי הוא מכוניות אספנות אשר היו קימות בעבר והיום בקושי וקיימות ,מאחר שהיום שוק המכוניות מתקדם כל הזמן ומוסיף חידושים חדשים לכל כלי רכב אנשים שכחו את הרכבים הישנים והטובים של פעם באתר שלי אני אציג את רכבי האספנות אשר היו קימיים ואשר חלקם קיימים ואף נוסעים גם היום .האתר מיועד לכל האנשים אשר רוצים ללמוד על הרכבים של פעם ורוצים לראות את הרבים היו פעם ואיך הם היום ולראות את השינוי הרב שנעשה ברכבים במשך יותר ממאה שנים. תיאור האתר באתר ישנם שלושה אנשים אשר יכולים להיכנס לאתר .אורח אשר לא יכול לראות שום עמוד ,משתמש רשום אשר יכול לראות את כל העמודים הקיימים ומנהל האתר שהוא בעל הגישה הרבה ויכול לערוך את האתר. הישויות: אורח :יכול להיכנס לדף הבית ולדף הרשמה. משתמש רשום :יכול להיכנס לכל דפי האתר. מנהל:יכול להיכנס לכל העמודים ובנוסף בעל גישה לראות את כל המשתמשים באתר. פונקציות באתר: רישום :כל אורח יכול לבצע את הפעולה .במהלכה הוא מכניס שם משתמש ,שם פרטי ,שם משפחה ,סיסמא ,תעודת זהות , אימייל ,מקום מגורים ומין. התחברות :כל מי שיש לו חשבון באתר יכול לבצע פעולה זאת על ידי הכנסת שם משתמש וסיסמא לאתר. עדכון פרטי המשתמש :את הפעולה הזאת רק מנהל האתר יכול לבצע הוא בעל הגישות. חיפוש משתמשים באתר :פעולה שבה רק המנהל יכול לבצע הוא היחידי שרואה כמה משתמשים יש באתר ורואה את המידע שלהם. ניהול :המנהל יכול לנהל את המשתמשים ובעיקרון הוא זה שאחראי עליהם. סביבת פיתוח והרצה מערכת הפעלהWindows 10: תוכנת שרתMicrosoft MySQL Server : דפדפן :גוגל כרום Google Chrome שפות תכנותJavascript, C# : מפת האתר Master דף הבית רשימת משתמשים Mainpage.aspx Users.aspx כניסת חברים משתמש חדש Login.aspx Register.html רכבי ספורט רכבי שטח רכבי יוקרה Sport_cars.aspx off_road.aspx Luxury_cars.aspx שם רכבי ספורט רכבי שטח רכבי יוקרה תיאור מטרה שם פיזי דף המיועד לחברים sport_cars.aspxהצגת בלבד .מכיל נתוני מכוניות רכבי ספורט ישנים . ספורט יש בו טבלה המרכזת שנחשבות את המידע המקוצר כרכבי על הרכבים. אספנות דף המיועד לחברים הצגת off_road.aspx מכניות שטח בלבד .מכיל נתוני רכבי שטח ישנים .יש הנחשבות בו טבלה המרכזת את כרכבי המידע המקוצר על אספנות הרכבים. דף המיועד לחברים luxury_cars.aspxהצגת בלבד .מכיל נתוני מכניות רכבי יוקרה ישנים .יש יוקרה בו טבלה המרכזת את הנחשבות המידע המקוצר על כרכבי הרכבים. אספנות ביסוס הנתונים טבלת הנתונים שם המאגרDatabase.mdf : שם הטבלה :מידע אישי - PersonalData תפקיד שם באנגלית שם שדה שם המשתמש . UserName שם איתו המשתמש משתמש מתחבר לאתר. בדיקות שדה חובה לפחות יותר מ -3תווים רק אותיות באנגלית ומספרים. שדה חובה לפחות יותר מ -2תווים רק אותיות בעברית. שדה חובה לפחות יותר מ -2תווים רק אותיות בעברית. שדה חובה רק באותיות באנגלית ומספרים. שדה חובה 9תווים רק מספרים. שם פרטי Fname שמו הפרטי של המשתמש. שם משפחה Lname שם המשפחה של המשתמש. דואר אלקטרוני האימייל של Email המשתמש יקבל הודעות. התעודת זהות של TZ המשתמש בודק אם הוא מנהל או לא. שדה חובה רק אותיות סיסמא איתה Password המשתמש מתחבר באנגלית ומספרים חייב להיות כמו לאתר. האימות סיסמא. שדה חובה רק אותיות Repasswordאימות הסיסמא באנגלית ומספרים איתה המשתמש חייב להיות כמו מתחבר לאתר. הסיסמא. מין של המתשמש שדה חובה בחריה בין Gender זכר ונקבה שדה חובה בחירה בין מקום מגורים של City ערים. המשתמש תעודת זהות סיסמא אימות סיסמא מין עיר בדיקות תקינות תיאור בקוד הבדיקה if (usernameobject == "") בדיקת קיום נתון1. if (Fnameobject == "") לשדות. בשדה חובה if (usernameobject.length < 3) בדיקה האם שם2. -3 משתמש פחות מ .תווים if (!/^[a-zA-Z\0-9-]+$/.test(usernameobject)) בדיקת אנגלית3. ומספרים בשם .מתשמש if (Fnameobject.length < 2) בדיקת אורך שם4. .פרטי if (Lnameobject.length < 2) בדיקת ארוך שם5. .משפחה if (emailobject.indexOf("@") == 0 && @ בדיקת6. emailobject != "") .באימייל if (emailobject.indexOf("@") != @ בדיקת שני7. emailobject.lastIndexOf("@")) { .באימייל if (emailobject.charAt(let - 1) == "@") if (emailobject.charAt(0) == "@") if (TZobject.length < 9 && TZobject > 9) if (!/^[0-9]+$/.test(TZobject)) if (/^[a-zA-Z\-]+$/.test(Fnameobject) && /^[0-9]+$/.test(Fnameobject)) if (/^[a-zA-Z\]+$/.test(Lnameobject)) if (!/^[0-9a-zA-Z]+$/.test(password1)) if (!/^[a-zA-Z\0-9-]+$/.test(usernameobject)) If(password != password2) בדיקת סיומת8. באימייל בדיקת שם9. באימייל בדיקת אורך10. .תעודת זהות בדיקת מספרים11. .בתעודת זהות בדיקת עברית.12 בשם משתמש .ומשפחה בדיקת מספרים.13 ואנגלית בסיסמא ושם משתמש בדיקת אימות.14 סיסמא מתאים לאימות סיסמא בדיקות אמינות תיאור בקוד if (Request.Form["submit"] != null) { string userName = Request.Form["Username"]; string fname = Request.Form["Fname"]; string lname = Request.Form["Lname"]; string email = Request.Form["Email"]; string tz = Request.Form["tz"]; string password = Request.Form["pass"]; string repassword = Request.Form["repass"]; string gender = Request.Form["gender"]; string city = Request.Form["city"]; string filename = "Database.mdf"; string sql1 = "select * from PersonalData WHERE UserName='" + userName + "'"; if (MyAdoHelper.IsExist(filename, sql1)) { שם משתמש קיים במסד Response.Write(" ");נתונים } else { string sql2 = "SELECT * FROM PersonalData WHERE Email='" + email + "'"; if (MyAdoHelper.IsExist(filename, sql2)) { אימייל כבר קיים Response.Write(" ");במסד נתונים } הבדיקה בדיקה אם1. שם משתמש ( כבר קיים לפני הוספת משתמש חדש ) else { string sql = "INSERT INTO PersonalData (UserName, Fname, Lname, Email, TZ, Password, Repassword, Gender, City) VALUES ('" + userName + "',N'" + fname + "',N'" + lname + "','" + email + "','" + tz + "','" + password + "','" + repassword + "',N'" + gender + "','" + city + "')"; MyAdoHelper.DoQuery(filename, sql); string Fname = Request.Form["Fname"]; string Lname = Request.Form["Lname"]; string userName = Request.Form["Username"]; string Email = Request.Form["Email"]; string tz = Request.Form["tz"]; string password = Request.Form["pass"]; string repass = Request.Form["repass"]; string filename = "Database.mdf"; string sql2 = "SELECT * FROM PersonalData where UserName='" + userName + "'and Password='" + password + "'"; if(MyAdoHelper.IsExist(filename, sql2)) { Session["logged"] = true; System.Data.DataTable userDataSet = MyAdoHelper.ExecuteDataTable(filename, sql2); Session["UserName"] = userDataSet.Rows[0]["UserName"]; Session["Fname"] = userDataSet.Rows[0]["Fname"]; Session["Lname"] = userDataSet.Rows[0]["Lname"]; Session["Email"] = userDataSet.Rows[0]["Email"]; בדיקה2. כניסה בהתחברות למערכת (login ) Session["tz"] = userDataSet.Rows[0]["tz"]; Session["password"] = userDataSet.Rows[0]["Password"]; Session["repass"] = userDataSet.Rows[0]["Repassword"]; Session["userId"] = userDataSet.Rows[0]["Id"]; Session["isAdmin"] = userDataSet.Rows[0]["isAdmin"]; if (Session["isAdmin"].ToString() == "True") { Response.Redirect("../ASPX/Users.aspx"); } Response.Redirect("LoginPages/mainpage.asp x"); } else{ שם משתמש או Response.Write(" ");סיסמא לא קיימים } if (Session["logged"] == null) אם המשתמש לא מחובר האתר יפנה אותו לדף .התחברות דפים3. . מוגנים להסביר עבודה מול מסד הנתונים תאור בקוד הפעולה string Fname = Request.Form["Fname"]; התחברות string Lname = Request.Form["Lname"]; string userName = Request.Form["Username"]; string Email = Request.Form["Email"]; string tz = Request.Form["tz"]; string password = Request.Form["pass"]; string repass = Request.Form["repass"]; string filename = "Database.mdf"; string sql2 = "SELECT * FROM PersonalData where UserName='" + userName + "'and Password='" + password + "'"; if(MyAdoHelper.IsExist(filename, sql2)) { Session["logged"] = true; System.Data.DataTable userDataSet = MyAdoHelper.ExecuteDataTable(filename, sql2); Session["UserName"] = userDataSet.Rows[0]["UserName"]; Session["Fname"] = userDataSet.Rows[0]["Fname"]; Session["Lname"] = userDataSet.Rows[0]["Lname"]; Session["Email"] = userDataSet.Rows[0]["Email"]; Session["tz"] = userDataSet.Rows[0]["tz"]; Session["password"] = userDataSet.Rows[0]["Password"]; Session["repass"] = userDataSet.Rows[0]["Repassword"]; Session["userId"] = userDataSet.Rows[0]["Id"]; Session["isAdmin"] = userDataSet.Rows[0]["isAdmin"]; if (Session["isAdmin"].ToString() == "True") { Response.Redirect("../ASPX/Users.aspx"); } Response.Redirect("LoginPages/mainpage.aspx"); } else{ שם משתמש או סיסמא Response.Write(" ");לא קיימים } if (Request.Form["submit"] != null) { string userName = Request.Form["Username"]; string fname = Request.Form["Fname"]; string lname = Request.Form["Lname"]; string email = Request.Form["Email"]; string tz = Request.Form["tz"]; string password = Request.Form["pass"]; string repassword = Request.Form["repass"]; string gender = Request.Form["gender"]; string city = Request.Form["city"]; string filename = "Database.mdf"; string sql = "INSERT INTO PersonalData (UserName, Fname, Lname, Email, TZ, Password, Repassword, Gender, City) VALUES ('" + userName + "',N'" + fname + "',N'" + lname + "','" + email + "','" + tz + "','" + password + "','" + repassword + "',N'" + gender + "','" + city + "')"; MyAdoHelper.DoQuery(filename, sql); if (Request.Form["save"] != null || Request.Form["removeedite"] != null) { string userID = Request.Form["userId"]; string username = Request.Form["Usernameedit"]; string first_name = Request.Form["Fnameedit"]; string last_name = Request.Form["Lnameedit"]; string Email = Request.Form["Emailedit"]; string TZ = Request.Form["tzedit"]; string password = Request.Form["passedit"]; string repassword = Request.Form["repassedit"]; הוספה עדכון string gender = Request.Form["genderedit"]; string city = Request.Form["cityedit"]; string fileName = "Database.mdf"; else if (Request.Form["save"] != null && Request.Form["removeedite"] == null) { string sqlUpdate = "UPDATE PersonalData SET"; if (username != "") { sqlUpdate += " UserName='" + username + "',"; } if (first_name != "") { sqlUpdate += " Fname=N'" + first_name + "',"; } if (last_name != "") { sqlUpdate += " Lname=N'" + last_name + "',"; } if (Email != "") { sqlUpdate += " Email='" + Email + "',"; } if (TZ != "") { sqlUpdate += " TZ='" + TZ + "',"; } if (password != "") { sqlUpdate += " Password='" + password + "',"; } if (repassword != "") { sqlUpdate += " Repassword='" + repassword + "',"; } if (gender != "") { sqlUpdate += " Gender=N'" + gender + "',"; } if (city != "") { sqlUpdate += " City=N'" + city + "';"; } sqlUpdate = sqlUpdate.Remove(sqlUpdate.Length - 1); sqlUpdate += "WHERE Id ='" + Request.Form["userId"] + "';"; int rowsAffected = MyAdoHelper.RowsAffected(fileName, sqlUpdate); if (rowsAffected >= 1) { string sql1 = "select * from PersonalData where UserName='" + username + "' AND Id <> '" + Request.Form["userId"] + "';"; if (!MyAdoHelper.IsExist(fileName, sql1)) { שם Response.Write(" ");משתמש קיים %> <script></script> <% MyAdoHelper.DoQuery(fileName, sqlUpdate); %> <script> ");העדכון הושלם alert(" window.location.href = "../ASPX/Users.aspx"; </script> <% } } } }%> if (Request.Form["save"] != null || Request.Form["removeedite"] != null) { string userID = Request.Form["userId"]; string username = Request.Form["Usernameedit"]; string first_name = Request.Form["Fnameedit"]; string last_name = Request.Form["Lnameedit"]; string Email = Request.Form["Emailedit"]; string TZ = Request.Form["tzedit"]; string password = Request.Form["passedit"]; string repassword = Request.Form["repassedit"]; string gender = Request.Form["genderedit"]; string city = Request.Form["cityedit"]; string fileName = "Database.mdf"; if (Request.Form["removeedite"] != null) { string sqlcheck = "SELECT * FROM PersonalData WHERE tz = '" + TZ + "' AND isAdmin = 0"; if (MyAdoHelper.IsExist(fileName, sqlcheck )) { string sqlRemove = "DELETE FROM PersonalData where Id='" + Request.Form["userId"] + "'"; MyAdoHelper.DoQuery(fileName, sqlRemove); %><script> window.location.href= "../ASPX/Users.aspx"; מחיקה ");המשתמש נמחק alert(" </script><% } else { %><script> window.location.href= "../ASPX/Users.aspx"; ");אדמין לא ניתן למחיקה alert(" </script><% } } תדפיסים