26. november 2005 - 21:19Der er
14 kommentarer og 1 løsning
Script der kontrollere om der kun én post i db!
Jeg er ved at gå ud af mit gode skind af irritation om dette problem........... Har siddet og bakset med flere script den sidste uge, men intet kan jeg få til at virke!!! ( må nok indset, at jeg har meget at lærer endnu :o[)
Er der en venlig sjæl, som kan bakset sådan et sammen for mig?
Script skal kontrollere om medlemmet har stemt på billedet før,
Hvis han har: Response.write "Du har allerede stemt på dette billede. Du kan ikke stemme på det igen.!"
<li class="votetekst">Point skala: <font color=red>1</font> = værst, <font color=green>10</font> = bedst</li> <li class="votetekst">Prøv at være objektiv.</li> <li class="votetekst">Kun medlemmer kan bedømme et billede.</li> <li class="votetekst">Du kan kun stemme én gang.</li> <li class="votetekst">Du må gerne tilføje en kommentar til dette billede.</li> <form action="vis.asp?mode=new&rid=<%=request.querystring("rid")%>&t=<%=request.querystring("t")%>" method="post" class="votetekst" onSubmit ="return submitForm();"> <b>Point:</b> <select name="vote"> <option value="">-</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> </select> <p><b></b> <input name='navn' type='hidden' value="<%=Session("MEMBER")%>" size='25'> <br> <br> <script language="JavaScript" type="text/javascript">
<!-- function submitForm() { //make sure hidden and iframe values are in sync before submitting form //to sync only 1 rte, use updateRTE(rte) //to sync all rtes, use updateRTEs updateRTE('besked'); //updateRTEs();
//change the following line to true to submit form return true; }
//Usage: initRTE(imagesPath, includesPath, cssFile) initRTE("images/", "", ""); //--> </script> <!-- Tjekker om brugen har Javascripts installeret --> <noscript> <p><b>Javascript must be enabled to use this form.</b></p> </noscript> <!-- Viser indholdet af editoren --> <script language="JavaScript" type="text/javascript"> <!-- //Usage: writeRichText(fieldname, html, width, height, buttons, readOnly) writeRichText ('besked', '', 400, 200, true, false); //--> </script> <input type="submit" name="submit" value="Tilføj"> </form>
<%
function RTESafe(strText) 'returns safe code for preloading in the RTE dim tmpString
tmpString = trim(strText)
'convert all types of single quotes tmpString = replace(tmpString, chr(145), chr(39)) tmpString = replace(tmpString, chr(146), chr(39)) tmpString = replace(tmpString, "'", "'")
Jeg ville lave en tabel i databasen som indeholder minimum 2 kolonner, id på brugere og id på billedet. Når en bruger stemmer gemmer du brugeres id og billede id i tabellen.
Det er måske det du har tabellen kommen til?
Princippet i koden:
id = replace(request.querystring("rid"),"'","") user_id = Session("MEMBER") SQL = "select * from kommen where billedeid=pic_id = " & id & " and medlem = " & user_id
Set rs=Conn.Execute(SQL) if rs.EOF then 'Brugeren har ikke stemt vise stemme boks
else 'Brugeren har stemt Response.write "Du har allerede stemt på dette billede. Du kan ikke stemme på det igen.!" end if
Jeg har rigtig nok en tabel, hvor jeg gemmer stemmer/kommentar i! Tabelen hedder kommen og har følgende kolonner: id | MEMBER_ID | pic_id | kommendato | vote
Jeg har så lavet lidt om på dit script, så det ser sådan ud
id = replace(request.querystring("rid"),"'","") user_id = Session("MEMBER") SQL = "select * from kommen where pic_id = " & id & " and MEMBER_ID = " & user_id
Set rs=Conn.Execute(SQL) if rs.EOF then 'Brugeren har ikke stemt vise stemme boks
else 'Brugeren har stemt Response.write "Du har allerede stemt på dette billede. Du kan ikke stemme på det igen.!" end if
Men jeg for denne fejl
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
Er begge kolonner pic_id og member_id af typen tal? Fejlen kommer typisk hvis hvis der mangler et tal i SQL sætningen eller typen er forkert.
Prøv at udskrive SQL Sætningen for at tjekke den er rigtig.
id = replace(request.querystring("rid"),"'","") user_id = Session("MEMBER") SQL = "select * from kommen where pic_id = " & id & " and MEMBER_ID = " & user_id response.write SQL response.end 'fjernes igen
Sad lige og fik den samme ide og det virker næsten, det lille "sidste" problem ligger i, at når man vil afgiv en stemme skal man logge på og når man har gjort det kommer man hen til stemmeboxen og ikke "Du har allerede stemt på dette billede. Du kan ikke stemme på det igen.!" hvis man har afgivet en stemme på billedet!!! Script virker kun hvis man klikker stemmeboxen væk og prøver igen på at stemme!!!!
id = replace(request.querystring("rid"),"'","") user_id = Session("MEMBER")
SQL = "select * from kommen where pic_id = " & id & " and MEMBER_ID = '" & user_id & "'"
Set rs=Conn.Execute(SQL) if rs.EOF then 'Brugeren har ikke stemt vise stemme boks
%>
<li class="votetekst">Point skala: <font color=red>1</font> = værst, <font color=green>10</font> = bedst</li> <li class="votetekst">Prøv at være objektiv.</li> <li class="votetekst">Kun medlemmer kan bedømme et billede.</li> <li class="votetekst">Du kan kun stemme én gang.</li> <li class="votetekst">Du må gerne tilføje en kommentar til dette billede.</li>
<!-- function submitForm() { //make sure hidden and iframe values are in sync before submitting form //to sync only 1 rte, use updateRTE(rte) //to sync all rtes, use updateRTEs updateRTE('besked'); //updateRTEs();
//change the following line to true to submit form return true; }
//Usage: initRTE(imagesPath, includesPath, cssFile) initRTE("images/", "", ""); //--> </script> <!-- Tjekker om brugen har Javascripts installeret --> <noscript> <p><b>Javascript must be enabled to use this form.</b></p> </noscript> <!-- Viser indholdet af editoren --> <script language="JavaScript" type="text/javascript"> <!-- //Usage: writeRichText(fieldname, html, width, height, buttons, readOnly) writeRichText ('besked', '', 400, 200, true, false); //--> </script> <input type="submit" name="submit" value="Tilføj"> </form> <%
else 'Brugeren har stemt Response.write "Du har allerede stemt på dette billede. Du kan ikke stemme på det igen.!" end if %> <%
function RTESafe(strText) 'returns safe code for preloading in the RTE dim tmpString
tmpString = trim(strText)
'convert all types of single quotes tmpString = replace(tmpString, chr(145), chr(39)) tmpString = replace(tmpString, chr(146), chr(39)) tmpString = replace(tmpString, "'", "'")
ok, umiddelbart kan jeg ikke se noget i koden som skulle bevirke man kan stemme igen, og jeg kender ikke lige dit login system, men du kan evt. prøve at udskrive SQL sætningen igen for at tjekke den søger efter det rigtige billede ID og brugernavn som er logget ind. En mulkighed måske være den "taber" billede ID'et og dermed viser formen igen??
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.