שלח תשובה

זירת השאלות

586
צפיות
13
תשובות

אנשים אני חייב עזרה – הצילו!

,‏ 6 במרץ, 2004


יש לי דף שמציג את כול הנתונים במסד.
עכשיו עשיתי לולאה (<% 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 תשובות

  1. דבר ראשון
    את תאריך התפוגה תכתוב כך:


    response.cookies("yaronb").expires=DateAdd("h",24,now())

    שנית – תגדיר לדפדפן שלך להציג שגיאות ותחזור עם השגיאה המדוייקת.

  2. תודה רבה!!

    עזרת לי מאוד!!!

    הבעיה הייתה בחלק של השתילת עוגיה….!

  3. רגע בעצם…

    הוא לא שוטל לי את העוגיה….!

    מה לעשות?!

    הינה הקוד לפניכם…


    <%@ 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>

  4. ניר טייב הגיב:

    טוב
    אחרי פתיחת הרקורדסט אתה עושה שינו נתונים ב-ADO ולמיטב ידיעתי צריך להוסיף את הדבר הבא לפני שינוי/הכנסת נתונים ב-ADO לתוך מסד נתונים

    rs.addnew

    ורצוי שתסגור את הרקורדסט ואת הפתיחה של מסד הנתונים. גם יכול להיות שיש לך טעות בשורה הבאה :

    response.cookies("yaronb").expires=DateAdd("h",24,now())

    אני אף פעם לא עבדתי עם dateAdd (לא יודע למה). ולכן זה לא שותל עוגייה (אל תתפוס אותי במילה)

  5. גילתי את הבעיה אבל לא הצלחתי לסדר..

    תראו איזה מטומטם אני….

    כשאני שותל את העוגיה אני מכניס אליה את הID של אותו לינק….
    עכשיו כול פעם שאני לוחץ על ID אחר העוגיה נמחקת ואז נשתלת מחדש…
    מה שאומר שאם אני יחזור לID הקודם הוא יעלה לי ב+1 ושוב ישתול את אותו ID וימחוק את הקודם….

    מה שאני בעצם צריך זה שאותה עוגיה שאני שותל תישאר עם אותו הערך של ID

    אבל, כשאני ילחץ על ID אחר אז אני רוצה שהוא ישתול לי את אותו העוגיה עם אותו ID שכרגע נשלח אבל שלא יחליף לי את הערך הקודם!!!

    בקיצר אני רוצה ששום ערך מהעוגיה YARONB לא ימחק!

    משהו הבין, אם כן תתנו לי קוד…

  6. ניר טייב הגיב:

    הנה התשובה
    במסד על בטוח יש לך את ID מסוים לכל סקר אז תכניס אותו לעוגייה ותבדוק האם בעוגייה יש את אותו ID של הסקר הפעיל פשוט וקל

  7. לא בדיוק הבנת….

    הכול נכון חוץ מדבר אחד…

    אחרי שאני שותל לו את העוגיה yaronb עם id מסויים (נגיד 3 ) זה מצליח
    אבל עם אני (שיש לי כבר את העוגיה) לוחץ על לינק שמזין ערך אחר (נגיד 4 ) אז הוא מחליף לי את הערכים (מ3 ל4 )

    אני צריך שכול הערכים (עם אותה עוגיה) ישארו…..

  8. ניר טייב הגיב:

    ואתה לא הבנת אותי
    אני התכוונתי את ה-ID של הסקר עצמו ולא של הבחירה המסוימת
    וכמובן אתה יכול לחלק את עוגייה לאינדקסים

    response.cookies("yaronB")("pollId") = rs.fields("pollId")
    response.cookies("yaronB")("chooseNum") = request.form("chooseID")

  9. ניר טייב הגיב:

    המשך
    ואז אתה יכול להשתמש באינדקס הראשון "pollId" בשביל לבדוק אם המשתמש הצביע כבר לסקר הזה ובאינדקס השני "chooseId" בשביל במקרה והוא כן הצביע אז תוכל לכתוב לו את למה הוא הצביע

  10. כמה דברים……

    א) אני מנסה לבנות תחרות אתרים
    ב) לא הבנתי….

    הינה קישור….
    http://www3.co.il/buildsall/

    (זה על השרת של WWW כי הוא חבר שלי….)

  11. ניר טייב הגיב:

    אז היית אומר
    תעשה כך

    response.cookies("yaronB") = request.cookies("yaronB") & "," & request.queryString("id")

    ובשביל הבדיקה תשתמש בפונקצייה split ואז תעבור על המערך ועל הרקורדסט במקביל (בשימוש בלולאה) ואז אחר כך תעשה פקודות התאם. ועל תיתן בכלל לאותו אדם להצביע יותר מפעם אחת בחיים שלו לאותו אתר. כי אחר יהיה זיוף תוצאות

  12. תודה אבל….

    אין לי מושג מזה פונקצית split …. בחיים שלי לא שמעתי על זה ואין לי מושג איך עובדים עם זה….

    ולולאה בכלל אני לא יודע איך עושים…!

    ניר ממש ממש תודה לך אבל האם תוכל לתת לי קוד שהכנת (אפילו שזה לא בסדר..) עם הSPLIT והלולאה אני ממש ממש יודה לך!!!

    אז תודה רבה לך!

  13. ניר טייב הגיב:

    לא קולט אותך
    אתה עצלן או שבאמת אתה לא יודע להשתמש בלולאות. בכל מקרה יש לך כאן מדריך VBS לך תלמד על הספליט והלולאות ותחזור

    ספליט – מאמרים
    לולאות – מדריך

שלח תשובה