328
צפיות
צפיות
34
תשובות
תשובות
שאלה בנוגע לעידכון פרטים במסדנתונים
יש לי טבלה בשם:
total
ושדה בשם:
counter
בקאונטר יש מספר 1
אני רוצה כל פעם שאני נכנס לדף מסויים (הדף שיהיה בו את המערך שאני מבקש) אז הקאונטר יעלה באחד…
ניסיתי לעשות את זה אבל זה לא הלך לי…
תודה לכל העוזרים
34 תשובות
מקד את השאלה
איך בדיוק ניסית? מה לא הלך לך? אתה מקבל שגיאה כלשהי?
update
SQL="UPDATE total SET counter=counter+1 WHERE ID = '" & ID & "';"
conn.execute SQL
סוג שגיאה:
Microsoft JET Database Engine (0x80040E14)
שגיאת תחביר במשפט UPDATE.
/web11122/index_si/privet_index_si.asp, line 13
ישר בבקשה קודים לשמאל
נסה את זה:
SQL="UPDATE total SET counter=counter+1 WHERE ID = " & ID
conn.execute SQL
לא עוזר
זה נותן הודעת שגיאה:
סוג שגיאה:
Microsoft JET Database Engine (0x80040E14)
שגיאת תחביר במשפט UPDATE.
/web11122/index_si/privet_index_si.asp, line 13
לא יודע אם אתה עשית טעות או בכוונה אבל לא סגרת את הסוגרים האחרונים…
אז גם את זה ניסיתי וזה לא הלך…
נסה ככה
SQL="UPDATE [total] SET [counter]=[counter]+1 WHERE [ID] = " & ID
conn.execute SQL
ואין צורך בסוגריים
כמו שאמרתי ניסיתי וזה לא עובד…
אצל חבר שלי יש את אותה הפקודה בערך ופשוט לקחתי ממנו את הפקודה ושיניתי פשוט את השמות של הטבלאות וזה גם לא הולך…
זזה יכול להיות משהו עם הIIS שלי?
בסדר זה עובד…
תודה רבה לכם
עוד שאלה…
איך אני עושה
Response.redirect
אבל רק שזה יפתח בחלון חדש?
לא חושב שאפשר.
אם זה נפתח בחלון חדש, זה לא Redirec
t אלא סתם פתיחה של עמוד בחלון חדש.
ואי אפשר לעשות את זה בצד שרת, כמובן
אוקיי תודה הסתדרתי 🙂
מישהו יודע אולי למה session לא מתאח
למה session לא מתאחסן אצלי בשרת?
זאת אומרת שאני עושה:
session("abcd")="ok"
ואחרי זה אני מציג אותו ואין לו ערך…
אחרי 20 דקות הוא ריק……..
זה ברירת מחדל שלו.
ניתן לשנות את זה.
Session.Timeout=TIME
או
Session("OK").Timeout=TIME
הייתי רוצה לדעת גם כן מה הבדל בניהם.
אני יודע ש…
אני יודע שזה נמחק אחרי 20 דקות…
אבל הקטע גם לדקה אחת הוא לא שומר לי את הערך שלו…
אז אולי בטעות…..
אתה דורס אותו ב-1 הדפי ASP שלך?
בדוק.
לא…
אני לא דורס אותו בשום דף…
יש לי 2 דפים…
1.:
session("name")="ok"
דף שני:
<%response.write session("name")%>
וזה לא מציג לי את ערך "ok"
לפי דעתי זה משהו בIIS כי לפני שבוע זה גם לא עבד…
שיחקתי בIIS וזה פתאום עבד ואחרי ריסטרט זה חזר…
נסה כך:
<%response.write(session("name"))%>
אוקיי…
אז ככה…
שאני עושה
<%response.write(session("name"))%>
באותו הדף אז זה מציג לי את ok
אבל שאני עושה את זה בדף אחר זה לא מציג לי את ok…
תביא את הקוד של כל הדפים בבקשה
קח…
הדף הראשון (name.asp):
<%
dim conn
set conn=server.createobject("adodb.connection")
dim ConnString
ConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &_
Server.MapPath("../db/db.mdb") & ";"
conn.Open connString
dim rs,sql
set rs=server.CreateObject("adodb.recordset")
sql="select name, pass from name"
rs.Open sql,conn
user = rs("name")
pass = rs("pass")
if request.form("name")=name and request.form("pass")=pass then
Session("name")="ok"
%>
הגישה אושרה
<a href="name2.asp">
לחץ כאן בכדי לעבור לדף הבא
</a>
<%else%>
אין לך גישה
<%end if%>
הדף השני (name2.asp):
<%if session("name")="ok" then%>
ברוך הבא למועדון
<%else%>
אין לך גישה
<%end if%>
ניסיתי גם ככה בדף השני ולא הלך:
<%if (session("name"))="ok" then%>
ברוך הבא למועדון
<%else%>
אין לך גישה
<%end if%>
לדף הראשון הוא מציג לי את הקישור לדף השני… (ולא את "אין לך גישה") ושאני לוחץ על הקישור לדף השני זה אומר לי בדף השני שאין לי גישה…
אולי IE חוסם לך את ה-sessions?
נסה לבדוק את ה-session באותו דף שבו שמת אותו, ובדוק אם זה עובד… וגם, נסה להוסיף את האתר שלך ל-trusted websites ב-IE, או לחילופין להוריד את הגדרות האבטחה למינימום.
הבעיה היא שאתה בודק משתנה שלא קיים
user = rs("name")
pass = rs("pass")
if request.form("name")=name and request.form("pass")=pass then
Session("name")="ok"
במקום זה תעשה כך:
user = rs("name")
pass = rs("pass")
if request.form("name")=user and request.form("pass")=pass then
Session("name")="ok"
(שניהם בדף הראשון)
אין קשר…
SESSION זה משהו שקורה בשרת ולכן הדפדפן לא יכול לשלוט עליו. מה שאתה אמרת יעבוד על עוגיות (אם אני לא טועה)…
בסדר זה סתם דוגמא שבניתי לפה לפורום
אז ככה שאמרתי לך שהגעתי לדף הראשון…
אבל לדף השני זה לא מתחבר לי זאת אומרת שבדף הראשון אני רואה את:
"הגישה אושרה לחץ כאן בכדי לעבוד לדף הבא"
את זה אני רואה… אבל את הדף השני אני רואה:
"אין גישה"
ולא
"ברוך הבא למועדון"
נו באמת…
תראה לנו את העמוד האמיתי… איך אתה מצפה שנענה לך?!
טוב הדף השני היה באמת הדף שלי הדף ה
הראשון:
<%
dim conn
set conn=server.createobject("adodb.connection")
dim ConnString
ConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &_
Server.MapPath("../db/db.mdb") & ";"
conn.Open connString
dim rs,sql
set rs=server.CreateObject("adodb.recordset")
sql="select useradmin, passadmin from admin"
rs.Open sql,conn
user = rs("useradmin")
pass = rs("passadmin")
%>
<%if request.form("admin")=user and request.form("pass")=pass then
Session("admin")="ok"
%>
<a href="add_index.asp">כנס</a>
<%else%>
אין גישה
<%end if%>
הדף שני אותו דבר…
<%if session("name")="ok" then%>
ברוך הבא למועדון
<%else%>
אין לך גישה
<%end if%>
אז בדף הראשון אין בכלל בדיקה של
ה-Session….
תוסיף את זה גם לדף הראשון:
<%if session("name")="ok" then%>
ברוך הבא למועדון
<%else%>
אין לך גישה
<%end if%>
וגם, כדאי לבדוק, אולי צריך לכתוב Session ולא session.
מה הקשר בדף הראשון?
כדאי לבדוק אם זה בכלל שם את
ה-session. זה יצמצם את האפשרויות לבעיה.
אם זה שם את ה-session ורק בדף השני זה נעלם אז הבעיה היא במעבר בין הדפים, אבל אם כבר בדף הראשון אתה לא מצליח לקרוא את הערך יש בעיה עם ה-sessions באופן כללי.
בדף הראשון אני מצריך לקרוא את הערך.
בדף שאני קובע את הSession אני יכול לקרוא את הערך…
אבל בדף השני זה כבר לא קורא לי אותו…
ניסית את הגדרות האבטחה ב-IE? ל"ת
המשתנה הזה נשמר בIIS ולא באקספלורר.
וגם אני ניסיתי להחליף דפדפן וזה לא הלך…
איך אני מחלק פריטים מדטאביס לעמודים
יש לי טבלה בשם
tag123
ואני רוצה שכל הנתונים בטבלה יחולקו לדפים
למשל יש לי 80 רשומות בטבלה אז שזה יציג אותם ב10 דפים
מישהו יודע איך עושים את זה? תודה מראש