צפיות
תשובות
אנשים אני חייב עזרה – הצילו!
יש לי דף שמציג את כול הנתונים במסד.
עכשיו עשיתי לולאה (<% do until r.eof %>) על משהו מהמסד ואיתו לינק ששולח לדף אחר עם אותו ID.
עכשיו הדף הבא שאליו נשלחו הנתונים בודק שאם הID שנשלח ב QUERYSTRING שווה לעוגיה yaronb.
אם יש הוא מציג "מצטערים אך אין אפשרות להצביע פעמיים" (משהו כזה אני חושב..)
אם אין הוא מעלה ב+1 את אותה רשומה, ושותל עוגיה שנמחקת תוך 24 שעות.
משום מה הקוד קצת מגמגם….
מפני שהוא אכן מעלה ב+1 את אותה הרשומה לא שומר עוגיה ומציג לי שגיאת 500 שגם בה הוא לא רושם את השגיאה….
אני מבקש בכול לשון של בקשה, תקנו לי את הקוד…
הינה הקוד שלי:
<%@ Language=VBScript %>
<!– #include file="Samples_DSN.asp" –>
<html dir=rtl><body>
<% if request.querystring("id") = request.cookies("yaronb") then %>
<table align=center border=1 bordercolor=#000000 width=350>
<tr><td bgcolor=#E7F7FE><br><br><br><center>אין אפשרות להצביע לאותו אתר פעמיים באותו יום!</center><br><br></td></tr></table>
<% Response.End %>
<% Else %>
<%
Set rs = Server.CreateObject("ADODB.RecordSet")
ID = Request.QueryString("id")
SQL = "SELECT hits From web where idx = " & ID
rs.Open SQL,Samples_DSN,2,2
rs("hits") = cint(rs("hits")) + 1
rs.Update
%>
<%
response.cookies("yaronb") = request.querystring("id")
response.cookies("yaronb").expires=DateAdd("h",24,time)
%>
<% End if %>
</body></html>
תודה מראש לכולם!
13 תשובות
דבר ראשון
את תאריך התפוגה תכתוב כך:
response.cookies("yaronb").expires=DateAdd("h",24,now())
שנית –
ותחזור עם השגיאה המדוייקת.תודה רבה!!
עזרת לי מאוד!!!
הבעיה הייתה בחלק של השתילת עוגיה….!
רגע בעצם…
הוא לא שוטל לי את העוגיה….!
מה לעשות?!
הינה הקוד לפניכם…
<%@ Language=VBScript %>
<!– #include file="Samples_DSN.asp" –>
<html dir=rtl><body>
<% if request.querystring("id") = request.cookies("yaronb") then %>
<table align=center border=1 bordercolor=#000000 width=350>
<tr><td bgcolor=#E7F7FE><br><br><br><center>אין אפשרות להצביע לאותו אתר פעמיים באותו יום!</center><br><br></td></tr></table>
<% Response.End %>
<% Else %>
<%
response.cookies("yaronb") = request.querystring("id")
response.cookies("yaronb").expires=DateAdd("h",24,now())
%>
<%
Set rs = Server.CreateObject("ADODB.RecordSet")
ID = Request.QueryString("id")
SQL = "SELECT hits From web where idx = " & ID
rs.Open SQL,Samples_DSN,2,2
rs("hits") = cint(rs("hits")) + 1
rs.Update
%>
<%
response.cookies("yaronb") = request.querystring("id")
response.cookies("yaronb").expires=DateAdd("h",24,now())
%>
<table align=center border=1 bordercolor=#000000 width=350>
<tr><td bgcolor=#E7F7FE><br><br><br><center>תודה שהצבעת!</center><br><br></td></tr></table>
<% End if %>
</body></html>
טוב
אחרי פתיחת הרקורדסט אתה עושה שינו נתונים ב-ADO ולמיטב ידיעתי צריך להוסיף את הדבר הבא לפני שינוי/הכנסת נתונים ב-ADO לתוך מסד נתונים
rs.addnew
ורצוי שתסגור את הרקורדסט ואת הפתיחה של מסד הנתונים. גם יכול להיות שיש לך טעות בשורה הבאה :
response.cookies("yaronb").expires=DateAdd("h",24,now())
אני אף פעם לא עבדתי עם dateAdd (לא יודע למה). ולכן זה לא שותל עוגייה (אל תתפוס אותי במילה)
גילתי את הבעיה אבל לא הצלחתי לסדר..
תראו איזה מטומטם אני….
כשאני שותל את העוגיה אני מכניס אליה את הID של אותו לינק….
עכשיו כול פעם שאני לוחץ על ID אחר העוגיה נמחקת ואז נשתלת מחדש…
מה שאומר שאם אני יחזור לID הקודם הוא יעלה לי ב+1 ושוב ישתול את אותו ID וימחוק את הקודם….
מה שאני בעצם צריך זה שאותה עוגיה שאני שותל תישאר עם אותו הערך של ID
אבל, כשאני ילחץ על ID אחר אז אני רוצה שהוא ישתול לי את אותו העוגיה עם אותו ID שכרגע נשלח אבל שלא יחליף לי את הערך הקודם!!!
בקיצר אני רוצה ששום ערך מהעוגיה YARONB לא ימחק!
משהו הבין, אם כן תתנו לי קוד…
הנה התשובה
במסד על בטוח יש לך את ID מסוים לכל סקר אז תכניס אותו לעוגייה ותבדוק האם בעוגייה יש את אותו ID של הסקר הפעיל פשוט וקל
לא בדיוק הבנת….
הכול נכון חוץ מדבר אחד…
אחרי שאני שותל לו את העוגיה yaronb עם id מסויים (נגיד 3 ) זה מצליח
אבל עם אני (שיש לי כבר את העוגיה) לוחץ על לינק שמזין ערך אחר (נגיד 4 ) אז הוא מחליף לי את הערכים (מ3 ל4 )
אני צריך שכול הערכים (עם אותה עוגיה) ישארו…..
ואתה לא הבנת אותי
אני התכוונתי את ה-ID של הסקר עצמו ולא של הבחירה המסוימת
וכמובן אתה יכול לחלק את עוגייה לאינדקסים
response.cookies("yaronB")("pollId") = rs.fields("pollId")
response.cookies("yaronB")("chooseNum") = request.form("chooseID")
המשך
ואז אתה יכול להשתמש באינדקס הראשון "pollId" בשביל לבדוק אם המשתמש הצביע כבר לסקר הזה ובאינדקס השני "chooseId" בשביל במקרה והוא כן הצביע אז תוכל לכתוב לו את למה הוא הצביע
כמה דברים……
א) אני מנסה לבנות תחרות אתרים
ב) לא הבנתי….
הינה קישור….
http://www3.co.il/buildsall/
(זה על השרת של WWW כי הוא חבר שלי….)
אז היית אומר
תעשה כך
response.cookies("yaronB") = request.cookies("yaronB") & "," & request.queryString("id")
ובשביל הבדיקה תשתמש בפונקצייה split ואז תעבור על המערך ועל הרקורדסט במקביל (בשימוש בלולאה) ואז אחר כך תעשה פקודות התאם. ועל תיתן בכלל לאותו אדם להצביע יותר מפעם אחת בחיים שלו לאותו אתר. כי אחר יהיה זיוף תוצאות
תודה אבל….
אין לי מושג מזה פונקצית split …. בחיים שלי לא שמעתי על זה ואין לי מושג איך עובדים עם זה….
ולולאה בכלל אני לא יודע איך עושים…!
ניר ממש ממש תודה לך אבל האם תוכל לתת לי קוד שהכנת (אפילו שזה לא בסדר..) עם הSPLIT והלולאה אני ממש ממש יודה לך!!!
אז תודה רבה לך!
לא קולט אותך
אתה עצלן או שבאמת אתה לא יודע להשתמש בלולאות. בכל מקרה יש לך כאן מדריך VBS לך תלמד על הספליט והלולאות ותחזור
ספליט – מאמרים
לולאות – מדריך