צפיות
תשובות
לא מצליח לי
אני מנסה לעשות שאם שם משתמש שמור אז זה מודיע אבל לא פועל
הנה הקוד
sql="SELECT * FROM Users WHERE Nick='" & Trim(Replace(request.form("Str_nick"),"'",""")) & "'"
rs.open sql , conn ,3,3
if rs.eof then
session("reg") = true
response.redirect "add_user.asp"
else
rs.close
rs.open "Select * from Users " ,Conn ,3,3
rs.addnew
rs.fields("nick")=Str_nick
rs.fields("Password")=str_password
rs.fields("email")=str_email
rs.fields("Fname")=str_Fname
rs.fields("Lname")=str_Lname
rs.fields("birthday")=str_birthday
rs.fields("age")=str_age
rs.fields("Gander")=str_sex
rs.fields("IP") = Request.ServerVariables("REMOTE_ADDR")
rs.update
rs.close
Session("add")=true
response.redirect "add_user.asp"
End If
ואין שגיאה פשוט זה מוסיף לי את השם משתמש ADMIN כשהוא כבר רשום….
תודה על העזרה נועם צברי
41 תשובות
אז תהפוך את התנאי
עדיין מקבל את המידע….
הנה הקוד
sql="SELECT * FROM Users WHERE Nick='" & Trim(Replace(request.form("Str_nick"),"'",""")) & "'"
rs.open sql , conn ,3,3
if not rs.eof then
rs.close
rs.open "Select * from Users " ,Conn ,3,3
rs.addnew
rs.fields("nick")=Str_nick
rs.fields("Password")=str_password
rs.fields("email")=str_email
rs.fields("Fname")=str_Fname
rs.fields("Lname")=str_Lname
rs.fields("birthday")=str_birthday
rs.fields("age")=str_age
rs.fields("Gander")=str_sex
rs.fields("IP") = Request.ServerVariables("REMOTE_ADDR")
rs.update
rs.close
Session("add")=true
response.redirect "add_user.asp"
else
session("reg") = true
response.redirect "add_user.asp"
End If
ויש לי עוד שאלה איך אני יכול לשלוח מידע ב POST בלי לחיצה ?
(אני רוצה לשלוח מידע לדף שאני חוזר אחרי ההרשמה )
ככה
<script type="text/js">
document.myForm.submit()
</script>
תגובה
-אנא בדוק כי לשדה בטופס באמת קוראים Str_nick
-במידה והבעיה נמשכת, תנסה להדפיס את השאילתה לפני שאתה פותח אותה כדי לראות אם היא מורכבת נכון. כאילו, לפני rs.open תוסיף את השורה response.write sql
SNOOP12 כנס שנייה..
אתה אומר שניסת ולא הצלחת..
אז תקשיב,
אני רוצה שתכניס שם משתמש אחד שנמצא במסד נתונים להרשמה.
אח"כ תיכנס למסד הנתונים, ותגיד לי אם אותו השם מופיע בדיוק אותו דבר, ולא בוצעו בו שיינוים כלשהים.
הנה הדפסתי
והבעיה לא אמורה להיות בשם משתנה כי הוא מוסיף אותו למסד בכל מקרה
וזה בטוח כולם אותו דבר אות באות
הנה השאילתה שהודפסה
SELECT * FROM Users WHERE Nick='Admin'
והנה הקוד שוב
sql="SELECT * FROM Users WHERE Nick='" & Trim(Replace(request.form("Str_nick"),"'",""")) & "'"
RESPONSE.WRITE sql
rs.open sql , conn ,3,3
if not rs.eof then
rs.close
rs.open "Select * from Users " ,Conn ,3,3
rs.addnew
rs.fields("nick")=Str_nick
rs.fields("Password")=str_password
rs.fields("email")=str_email
rs.fields("Fname")=str_Fname
rs.fields("Lname")=str_Lname
rs.fields("birthday")=str_birthday
rs.fields("age")=str_age
rs.fields("Gander")=str_sex
rs.fields("IP") = Request.ServerVariables("REMOTE_ADDR")
rs.update
rs.close
//Session("add")=true
//response.redirect "add_user.asp"
else
//session("reg") = true
//response.redirect "add_user.asp"
End If
תעשה כך
sql="SELECT * FROM Users WHERE Nick='" & Trim(Replace(request.form("Str_nick"),"'",""")) & "'"
rs.open sql , conn ,3,3
if not rs.eof then
session("reg") = true
response.redirect "add_user.asp"
else
rs.close
rs.open "Select * from Users " ,Conn ,3,3
rs.addnew
rs.fields("nick")=Str_nick
rs.fields("Password")=str_password
rs.fields("email")=str_email
rs.fields("Fname")=str_Fname
rs.fields("Lname")=str_Lname
rs.fields("birthday")=str_birthday
rs.fields("age")=str_age
rs.fields("Gander")=str_sex
rs.fields("IP") = Request.ServerVariables("REMOTE_ADDR")
rs.update
rs.close
Session("add")=true
response.redirect "add_user.asp"
End If
בסה"כ הוספתי not
תודה מליון
לא יודע למה כשאני רשמתי זה לא פעל …..
תודה בכל מקרה
שיפור יעילות
לפני כל פקודת response.redirect אני מאוד ממליץ לסגור חיבורים ואובייקטים, כדי לא לבזבז משאבי שרת.
כי אתה הפכת הכל
אתה גם הוספת Not וגם הפכת את הפעולות שמופיעות לפני ואחרי ה-FALSE
ולכן השגת אותה תוצאה כמו בהתחלה
עוד שאלה ב REGEXP
מצאתי את הקוד הזה בשאלות נפוצות ושיפצתי אותו שיתאים לי
והוא לא פועל לי (כלומר הוא ממשיך למרות שהכתובת אינה תקנית)
function checkEmail(str_Email){
return /^\w+@([\w\-]+\.)+\w{2,3}$/.test(str_Email);
}
ועוד שאלה … איך אני יכול לשרשר ל ON SUBMIT שתי פונקציות שונות
כלומר יש לי פונקציה שבודקת 2 סיסמאות ועכשיו יש לי את הפונקציה שבודקת
את האימייל (וכנראה שאני אוסיף עוד פונקציה שבודקת שאף אחד מהשדות אינו ריק)
תודה מראש נועם צברי
הדוגמאות ב-FAQ
אז צריך להוריד בהם סלאש אחד בכל פעם שמשתמשים בהם כי יש איזה באג שם
הדוגמא צריכ הלהיות כזו:
function checkEmail(str_Email){
return /^w+@([w-]+.)+w{2,3}$/.test(str_Email);
}
ככה
onSubmit="passCheck(); emailCheck()"
ויש אפשרות שתשים את שתי הבדיקות באותה פונקציה..לא כ"כ חשוב
למה תמיד אתם עושים את זה בjs? הנהvs
Set RE = New RegExp
RE.IgnoreCase = True
RE.Pattern = "(S+@S+.S+)"
email1 = "error@page"
email2 = "[email protected]"
Response.write(RE.Test(email1) & "<hr>") // return false
Response.write(RE.Test(email2) & "<hr>") // return true
Set RE = Nothing
כי ב VBS זה -מאד- לא יעיל.
ככה זה יסבמט תמיד
onSubmit="return (passCheck() && emailCheck())"
כי JS יותר מהירה ויעילה.
ויש עוד הרבה סיבות שמעידות שJS יותר טובה מVBS, אם אתה רוצה לדעת תראה .
אז האם ככה זה נכון ?
פשוט אני אפס ב JS צד לקוח ושרת
<script>
<!–
function checkpass(form){
if (form.str_pass_1.value != form.str_pass_2.value )
{
alert("הסיסמאות אינן דומות")
return false;
}
return true;
}
function checkEmail(str_Email){
if(return /^w+@([w-]+.)+w{2,3}$/.test(str_Email))
{
alert("כתובת האימייל אינה תקינה")
return false;
}
return true;
}
// –>
</script>
תודה מראש נועם צברי
הקפץ….
מישהו יכול לעזור לי אני כלום ב JS וגם לפי ההפעלה של הדף הקוד לא פועל
ואני בטוח שהבעיה ב IF כי הוא מתנגש ב TEST
תודה רבה ולילה טוב לכולם נועם צברי
לא
שים לב ל-return שיש לך ב-IF וגם רק אם הוא הכניס אי-מייל נכון אז תקפוץ לו השגיאה אתה צריך להפוך את התנאי ע"י שימוש ב-not של JS (!))
VBS לא תומכת בפרמטרים אופציונליים
לפונקציות? תמיד יש חובה לשלוח את כולם?
בולשיט!
לא אני כתבתי את העמוד הזה..
אתה יכול לתת דוגמא ….
כי אני לא מבין ב JS
נראה לי ככה
if(!return /^w+@([w-]+.)+w{2,3}$/.test(str_Email))
…
function checkEmail(str_Email){
if(!(/^w+@([w-]+.)+w{2,3}$/.test(str_Email)))
{
alert("כתובת האימייל אינה תקינה")
return false;
}
return true;
}
אוקיי…… תודה
הכוונה לא ל overloading
אלא לפרמטרים אופציונליים במובן הטהור של המילה.
זה לא יעבוד לך ב VBS:
function a(x,y,z)
a=2
end function
document.write(a(1,2))
ב JS כן:
function a(x,y,z){
return 2;
}
document.write(a(1,2));
אפשר להעמיס פונקציות
ב-VBSאו ב-JS ?
שליחת מייל
לא שולח לי מייל עם CDONTS
הנה הקוד
sub subsendEmail
HTML = "<!DOCTYPE HTML PUBLIC ""-//IETF//DTD HTML//EN"">" & NL
HTML = HTML & "<html>"
HTML = HTML & "<body>"
HTML = HTML & "welcome to"
HTML = HTML & "<A HREF='http://127.0.01/all_index.asp'>————</A><BR><BR>"
HTML = HTML & "your Username is : "
HTML = HTML & str_nick
HTML = HTML & "<BR>"
HTML = HTML & "your Password is : "
HTML = HTML & str_Password1
HTML = HTML & "<BR>"
HTML = HTML & "enter your account here"
HTML = HTML & "<A HREF='http://127.0.01/enter.html'>http://127.0.01/enter.html</A>"
HTML = HTML & "<BR>"
HTML = HTML & "edit your infromation here"
HTML = HTML & "<A HREF='http://127.0.01/update_deatils.asp'>http://127.0.01/update_deatils.asp</A>"
HTML = HTML & "<BR>"
HTML = HTML & "</body>"
HTML = HTML & "</html>"
Dim myMail
Set myMail = CreateObject("CDONTS.NewMail")
myMail.From = "[email protected]"
myMail.To = str_email
myMail.Subject = " user info "
myMail.Body = html
myMail.Send
Set myMail = Nothing
end sub
תודה מראש נועם צברי
תכריז גם על HTML כמשתנה
תרשום כך:
Dim myMail, HTML
פרט את השאלה, אתה לא ברור
ב-JAVA
אפשר להעמיס פונקציות (כאשר כותבים מב' שיטות בעלות אותו שם רק עם רשימת פרמטרים שונים)
האם אפשר לעשות זאת גם ב-JS או ב-VBS ?
JS לא תומך בהעמסת פונקציות
הממממ
אתה חייב להבין, ב JAVA (או C# וכו'…) כשאתה שולח פרמטרים לפונקציה (או יותר נכון שיטה), אתה בוודאי יודע שאתה מציין את ה datatype שלהם. כשהעסק עם ה datatypes נעלם, אז חלק גדול מה method overloading מאבד מערכו, מן הסתם.
ב JS יש שתי דרכים לעשות את זה:
1. overloading "קלאסי"
function a(x,y,z){
return 2;
}
function a(x,y){
return 3;
}
document.write(a(1,2));
2. דרך קצת יותר "עקומה"
function b(x){
return x||2;
}
document.write(b() + " " + b(17));
בקשר ל VBS… אני לא יודע (אני כבר לא מתעסק בשפה הזאת, תאמין לי שהייתי צריך להזכר היום בסינטקס כדי לכתוב פונקציה) אבל אם תמצא דרך אני מבטיח לך פיקוק.
קרא את ההודעה שלי
תודה
פשוט קודם חיפשתי קצת בגוגל javascript overloading ומצאתי כמה אתרים שהסבירו על ה-OO ב-JS ואמרו שאי אפשר לעשות overloading ב-JS
אני מניח שאלה מסוג האתרים שצריך לסנן
יש הרבה אתרים שצריך לסנן
רובם, בכל מקרה.
אם עדיין לא עובד לך
תעשה כתובת אמיתי בFrom
זאת אומרת אתה יכול לעשות [email protected]
העיקר שהדומיין יהיה אמיתי
ה- VBS הזה פשוט מוזר
מצד אחד VBS דומה מאוד (אפילו יותר מדי) לשפה שבה כותבים ב- Visual Basic, אך חלק מהדברים שיש ב- visual Basic פשוט לא קיימים ב- VBS.
זה פשוט מוזר כל העניין הזה.
אני יודע שב- Visual Basic אפשר להגדיר פונקציה עם פרמטר אופציונלי כך:
function bla(x,optional y)
bla=x*y;
end function
ויש גם את המשתנה מסוג collection שכל-כך חסר ב- VBS לשם שמירת נתונים בעלי מספר איברים משתנה.
הכי מעצבן אותי, זה שב-VBS כמעט לכל הפונקציות המובנות יש פרמטרים אופציונליים, כמו replace, instr ועוד, אבל לנו הוא לא נותן לכתוב פונקציה עם פרמטרים אופציונליים.
ואני עד היום לא הבנתי למה בשפות צד שרת לא מחריזים על סוגי משתנים, לפחות כך זה ב- ASP ו- PHP. אולי ב- ASP.NET או JSP זה אחרת, לא יודע, אבל אם כן תיידעו אותי, אולי אני אעבור אליהן.
מחריזים = מכריזים
ב-ASP.NET ו-JSP
מגדירים כי מדובר בשפות תכנות (PHP היא גם שפת תכנות אבל אין בה את נושא ה-datatypes)
תאמין לי שזה חסר לכולנו (גם בלקוח)