בעיה עם שאילתה יש לי שאילתה שאמורה למצוא לי רק חלק מתוך הכלל אבל משום הום מוצא לי הכל במסד נתונים יש לי את המספרים את הסטרינג הבא 1, 3, 5 ומשום מה כשאני מבקשממנו למצוא 4 הוא נותן לי גם את אלה שהם 1, 3, 5 למה מצורפת השאילת שלי.. rs.open "select * from articale where section_id like '%" &question& "%'"
LIKE זה אופרטור שעובד רק על מחרוזות ו-cStr זה הפונקציה שממירה למחרוזת השאלה היא האם אתה צריך כל מספר שמופיעה בו הספרה 4(למשל) ? או רק את המקום שמופיעה בו המספר שווה לספרה 4 (למשל) ?
אבטחה אני כל הזמן כשאני כותב ב-ASP אני שואל את עצמי האם הדף האתר שלי מאובטח, אז אני פותח שירשור בו אני מבקש לדעת את כל הדרכים הכי יעילות להגן על האתר שלי מפריצות ומההאקר הממוצע.
מניעת אנשים להיכנס לעמודים אני משתמש ב-IF כדי להרחיק אנשים יש דרך טובה יותר? דוגמא: if sesstion("admin")=1 then else response.redirect("verefication.asp")
אין שינוי אותו ERROR הנה השאילתה החשה (באדיבות ניר המלך ) conn.execute "UPDATE articale SET title=" & request.form(title) & ", subtitle="& request.form(subtitle) &", body="&theInput &" where id="&application("var")
תודה | שאלה אחרת בנושא פורומים החלטתי לבנות פורום ויש לי כמה שאלות: 1. מה ההבדל בין פורום רקורסיבי לפורום לינארי? 2. החלטתי לנסות את המאמר של ניר הבסיסי ועשיתי כמה ניסויים ואני לא מבין למה כשאני מסדר את הנתונים (ראה תמונה מצורפת) בצורה כזו זה מראה את הרשומות ככה ?
תשובות 1. פורום לינארי = פורום טבלאי, יש נושא, והגולשים מגיבים אליו. פורום רקורסיבי = פורום עץ, יש הודעה ראשית (נושא), אפשר להגיב עליה, על התגובות אליה, על התגובות לתגובות אליה וכ'ו.. למידע נוסף.
הנה הקוד: <% const mydb="db4.mdb" function connect() set conn = server.createobject("ADODB.connection") conn.mode=admodereadandwrite conn.open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="& server.mappath(mydb)) set connect=conn end function set conn = connect() set rs = server.createobject("adodb.recordset") rs.activeconnection=conn
rs.Open "SELECT* FROM Messages ORDER BY Id" ,Conn,3,3,1 dim recArray If Not rs.EOF Then recArray = rs.getRows() dim i for i=0 to uBound(recArray,2) if recArray(1,i)=0 then call showMessage(i) Response.Write("<hr>") end if next
Else Response.Write("אין הודעות") End If
function showMessage(index) dim subject subject = recArray(2,index) Response.Write("<div style=""padding-right: 20px"">") Response.Write(subject) for a=0 to uBound(recArray,2) if recArray(1,a) = recArray(0,index) Then call showMessage(a) end if next Response.Write("</div>") end function %>
המאמר הראשון נועד לאלו שרק מתחילים עם עניין הפורום הרקורסיבי ולא כדי שידלגו עליו הוא נועד כדי שיבינו את דרך החשיבה (שמאמר אחר לא שלי מסביר יותר טוב) מאחורי הפורום!
43 תשובות
אפשר לפרק מחרוזת
למערך ע"י SPLIT
(נראה לי שיש על זה מאמר במדור ASP)
תודה!
בעיה עם שאילתה
יש לי שאילתה שאמורה למצוא לי רק חלק מתוך הכלל אבל משום הום מוצא לי הכל במסד נתונים יש לי את המספרים את הסטרינג הבא 1, 3, 5 ומשום מה כשאני מבקשממנו למצוא 4 הוא נותן לי גם את אלה שהם 1, 3, 5 למה מצורפת השאילת שלי..
rs.open "select * from articale where section_id like '%" &question& "%'"
נראה לי…
שאתה פשוט צריך להוריד את ה – ' שנמצא אחרי ה – like
תנסה ותגיד לי אם זה עזר..
זה לא פועל למישהו יש הצעה אחרת?
למה ה %
תקרא אולי יעזור לך
אולי אתה תקרא כאן
אוקיי סורי
ולשאלה …
תדפיס את השאילתה ותראה את התשובה
נסה כך
rs.open "select * from articale where cStr(section_id) like '%" &question& "%'"
ניר אתה מלך!
שכחתי לשרשר אוריקס בבקשה
LIKE זה אופרטור שעובד רק על מחרוזות
ו-cStr זה הפונקציה שממירה למחרוזת
השאלה היא האם אתה צריך כל מספר שמופיעה בו הספרה 4(למשל) ?
או רק את המקום שמופיעה בו המספר שווה לספרה 4 (למשל) ?
DONE
אבטחה
אני כל הזמן כשאני כותב ב-ASP אני שואל את עצמי האם הדף האתר שלי מאובטח, אז אני פותח שירשור בו אני מבקש לדעת את כל הדרכים הכי יעילות להגן על האתר שלי מפריצות ומההאקר הממוצע.
להימע מ-sql injection
לבדוק תמיד את הקלט (טופס או QS וכל מה שזה לא יהיה)
מה זה SQL injection
במדור ASP או SQL
יש מאמר על זה
מניעת אנשים להיכנס לעמודים
אני משתמש ב-IF כדי להרחיק אנשים יש דרך טובה יותר?
דוגמא:
if sesstion("admin")=1 then
else
response.redirect("verefication.asp")
בעיות עיברית
אני רשום ל-websamba אבל משום מה אחרי כמן זמן שהכל פעל טוב פתאום אין תמיכה בעיברית עיברית נראית כ-סימני שאלה מה אפשר לעשות
שרשר שאלותיך
למה אתה לא מקשיב לאוריקס
בקשר לשאלה תעשה ככה
<%@Language=VBScript codepage=1255%>
אם אתה כותב ב VB אם לא אז תשנה את השפה לשפה שאתה רושם בה
ועוד פעם שרשר שאלותיך
אני כותב בהמון פורומים ואני שוכח…
אוריקס בבקשה תעשה את שלך
נא שרשר שאלותיך
זו אזהרה אחרונה בהחלט!
בעיה עם שאילתה
הנה הERROR :
Request object error 'ASP 0102 : 80004005'
Expecting string input
/eldadasp/update.asp, line 167
The function expects a string as input.
והנה השאילתה:
conn.execute "UPDATE articale SET title=" & request.form(title) & ","& subtitle=request.form(subtitle) &","& body=theInput &" where id="&application("var")
אני יושב על זה שעה ואני לא מצליח להבין איפה יש טעות….
כך
conn.execute "UPDATE articale SET title=" & request.form(title) & ", subtitle="& request.form(subtitle) &", body="&theInput &" where id="&application("var")
ואם השדות האלו הם מסוג TEXT אז תעטוף כל שדה TEXT בגרש
אין שינוי אותו ERROR
הנה השאילתה החשה (באדיבות ניר המלך )
conn.execute "UPDATE articale SET title=" & request.form(title) & ", subtitle="& request.form(subtitle) &", body="&theInput &" where id="&application("var")
הנה הERROR
Request object error 'ASP 0102 : 80004005'
Expecting string input
/eldadasp/update.asp, line 167
The function expects a string as input.
תקיף
את הפרמטר שיש ב-request.form בגרשיים
Request.Form("item")
תודה!|איזה מאפיין של RS סופר רשומות
rs.recordcount
אל תשכח לציין בפתיחת הרקורדסט את מפתח מס' 3
(תעבור במדריך ה-ASP שם מוסבר)
מה זה מפתח מספר 3?
בדקתי זה מצייני הכיוון?
rs.open "select * from table" , 3,3
אפשר לעשות יותר משאילתה אחת בעמוד?
אם כן איך?
אפשר אבל זה לא כדאי
אתה יכול לקרוא לרקורדסטים בשמות שונים כלומר לפתוח ככה
rs1.open"Fffff",conn
והבא ככה
rs2.open"fffffF",conn
וכמובן אתה חייב להצהיר ולמחוק אותם (ולאפס)
והשאילתה היא ככה
rs.open"your query",conn,3,3
תודה | שאלה אחרת בנושא פורומים
החלטתי לבנות פורום ויש לי כמה שאלות:
1. מה ההבדל בין פורום רקורסיבי לפורום לינארי?
2. החלטתי לנסות את המאמר של ניר הבסיסי ועשיתי כמה ניסויים ואני לא מבין למה כשאני מסדר את הנתונים (ראה תמונה מצורפת) בצורה כזו זה מראה את הרשומות ?
שכחתי לצרף את התמונה…
תשובות
1. פורום לינארי = פורום טבלאי, יש נושא, והגולשים מגיבים אליו.
פורום רקורסיבי = פורום עץ, יש הודעה ראשית (נושא), אפשר להגיב עליה, על התגובות אליה, על התגובות לתגובות אליה וכ'ו..
ל .
2. תראה קוד.
הנה הקוד:
<%
const mydb="db4.mdb"
function connect()
set conn = server.createobject("ADODB.connection")
conn.mode=admodereadandwrite
conn.open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="& server.mappath(mydb))
set connect=conn
end function
set conn = connect()
set rs = server.createobject("adodb.recordset")
rs.activeconnection=conn
rs.Open "SELECT* FROM Messages ORDER BY Id" ,Conn,3,3,1
dim recArray
If Not rs.EOF Then
recArray = rs.getRows()
dim i
for i=0 to uBound(recArray,2)
if recArray(1,i)=0 then
call showMessage(i)
Response.Write("<hr>")
end if
next
Else
Response.Write("אין הודעות")
End If
function showMessage(index)
dim subject
subject = recArray(2,index)
Response.Write("<div style=""padding-right: 20px"">")
Response.Write(subject)
for a=0 to uBound(recArray,2)
if recArray(1,a) = recArray(0,index) Then
call showMessage(a)
end if
next
Response.Write("</div>")
end function
%>
לא טוב
הלכת לפי המאמר הראשון…..
הוא בסדר אבל המאמר המשך מסביר הרבה יותר וגם הקודים שם עובדים……
הנה קח
תיקון קטן
פורום ליניארי הוא פורום עץ רק שהמסד אצלו לא בנוי נכון והתצוגה אצלו היא רגילה(לא נעשית ע"י פונקציה רקורסיבית)
בפורום רקורסיבי המסד בנוי בצורה הגיונית אבל הצגת ההודעות מבזבזת משאבי שרת יקרים – לכן רצוי לבצע את הרקורסיה בצד הלקוח
לעוד אפשר להיכנס ל-FAQ של פורום ASP בתפוז יש שם הרבה מידע על הנושא
יש בעיות עם המאמר שלי }-] ?
שנה את ה-direction של העמוד
ל-RTL או שתשנה את ה-padding-right ל-padding-left
המאמר הראשון נועד
לאלו שרק מתחילים עם עניין הפורום הרקורסיבי ולא כדי שידלגו עליו
הוא נועד כדי שיבינו את דרך החשיבה (שמאמר אחר לא שלי מסביר יותר טוב) מאחורי הפורום!
נפגעתי בשם המאמר
לניר
העניין הוא שהוא כבר קרא את ההסבר על הפורום הרקורסיבי
וכבר הבין אבל העתיק את הקוד הלא נכון
אז הבאתי לו קישור לקודים הנכונים והעובדים …….
ואם נפגעת אז אני מצטער ………
הוא העתיק את הקוד בסדר גמור
רק צריך לשנות את ה-DIRECTION של הדף
הקוד שלו היה תקין ב-100% (ואני לא מדבר על תקן W3ב וכדומה)
לא העתיק מצטער
הוא כתב קוד בסדר גמור