צפיות
תשובות
תוכלו להסביר לי איכן צריך לתקן את הקוד
תוכלו להסביר לי איכן צריך לתקן את הקוד הבא כי קראתי את המדריך ולא הבנתי איכן אני צריך לתקן
תודה
<%@ Language=VBScript codepage=1255%>
<%if session("Login") <> true then Response.Redirect "login.asp"%>
<%
Dim uName, myStr, conn, rs, conStr, rsStr, uDate, titleStr,sqlText
uName = session("uName")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =C:outpost.mdb"
sqlText="UPDATE People" & _
" , NAME = "& Request.form("NAME") & _
" , Lastname = "& Request.form("Lastname") & _
" , ID = "& Request.form("ID") & _
" , address = "& Request.form("address") & _
" , CITY = "& Request.form("CITY") & _
" , zipcode = "& Request.form("zipcode") & _
" , telephone = "& Request.form("telephone") & _
" , cellular = "& Request.form("cellular") & _
" , email = "& Request.form("email") & _
" WHERE People = "& Request.form("uName")
conn.Execute(sqlText)
conn.Close
set conn = nothing
%>
א.ר.ר
2 תשובות
למה אתה מתעקש…
אמרתי לך – כשאתה מעביר ערך מספרי לבסיס נתונים אתה יכול לכתוב ככה num=1 אבל כשאתה מעביר ערך סטרינג (תווים) אתה צריך להעביר ככה
str='text'
זה עיקרון שנכון לגבי כל סוגי התיכנות בעולם, וגם ל-SQL.
המצב הנוכחי של הקוד שלך הוא שאתה מעביר בשאילתא בפרמטרים בלי המרכאות, וזה מה שגורם לשגיאה…
בנוסף, הצלחתי לך לקרוא על SQL Injection מה שיכוטל מאוד לעזור לך להבין מה השגיאות שלך (צריך להריץ כל מיני משפטי החלפה על סטרינגים לפני שמעבירים אותם לשאילתא)
אני אשמח להמשיך לעזור לך – אבל תראה איזה התקדמות בניסיון שלך לבצע את השאילתא ואל תזרוק שוב ככה את השאילתא בניסיון שנמצא לך תיקון פלא, כי אין כזה…
אלי ענתבי
entry interactive
http://www.entry.co.il
מה עם SET ?
ואתה מתחיל עם פסיק ישר אחרי שם הטבלה….נראה לי הבעיה שלך במבנה של שאילתת SQL
ובשביל לא להתבלבל עם סטרינגים ומספרים אני ממליץ לך לתחום את כל הערכים שאתה מכניס ל DB בגרש…