Uploaded by ASFUNA

IDK

advertisement
‫תוכן‬
‫‪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><% }
}
‫תדפיסים‬
Download