Avatar billede webbygger Nybegynder
26. november 2005 - 21:19 Der 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.!"


Hvis ikke skal afstemmingsform vises!

tabel=kommen
billedeid=pic_id
medlem=MEMBER_ID
------- O------
id = request.querystring("rid")
user_id = Session("MEMBER")


Her er siden hvor den skal indgå

<!--#include file="voteprotect.txt" -->


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Kommenter &amp; Stem!</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script language="JavaScript" type="text/javascript" src="lang/dk.js"></script>
<script language="JavaScript" type="text/javascript" src="richtext.js"></script>
<script language="JavaScript" type="text/javascript" src="html2xhtml_compressed.js"></script>
<script language="Javascript">
function reloadogclose(){

opener.document.location=opener.document.location;
window.close()
}
</script>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body onUnload="opener.top.location.reload(true);">


<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&amp;rid=<%=request.querystring("rid")%>&amp;t=<%=request.querystring("t")%>" method="post" class="votetekst" onSubmit ="return submitForm();">
  <b>Point:</b>&nbsp;
  <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>&nbsp;&nbsp;
    <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&oslash;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, "'", "&#39;")
   
    'convert all types of double quotes
    tmpString = replace(tmpString, chr(147), chr(34))
    tmpString = replace(tmpString, chr(148), chr(34))
'    tmpString = replace(tmpString, """", "\""")
   
    'replace carriage returns & line feeds
    tmpString = replace(tmpString, chr(10), " ")
    tmpString = replace(tmpString, chr(13), " ")
   
    RTESafe = tmpString
end function
%>
</body>
</html>
Avatar billede saudoo Nybegynder
26. november 2005 - 21:41 #1
Ide:

Hvad med om at når en bruger gav et billede en rating, så blev der tilføjet f. eks. ",53 " i en kolonne ved hans id?

,53 skulle så forståes på denne måde. 53, ville være Id'et til det billede han gab en rating. Så kan du lave et Split(stemt, ",").

Håber du kan bruge det til noget. :)
Avatar billede eagleeye Praktikant
27. november 2005 - 00:05 #2
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
Avatar billede webbygger Nybegynder
27. november 2005 - 10:21 #3
eagleeye

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.

/upload/vote2.asp, line 39



Du kan prøve script her http://www.web-byggeren.dk/upload/kategorier.asp

brugernavn: exp
password: exp
Avatar billede eagleeye Praktikant
27. november 2005 - 11:06 #4
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
Avatar billede webbygger Nybegynder
27. november 2005 - 11:12 #5
member_id er tekst
Avatar billede webbygger Nybegynder
27. november 2005 - 11:14 #6
resultat bliver


select * from kommen where pic_id = 80 and MEMBER_ID = admin
Avatar billede eagleeye Praktikant
27. november 2005 - 11:16 #7
ok så prøv at rette SQL sætningen til dette:

SQL = "select * from kommen where pic_id = " & id & " and MEMBER_ID = '" & user_id & "'"

og fjern de to linier som udskriver SQL sætningen.
Avatar billede webbygger Nybegynder
27. november 2005 - 11:21 #8
Nu er der ingen fejlmeddelse, men den viser afstemmingen boks sammen "Du har allerede stemt på dette billede.  Du kan ikke stemme på det igen.!"

Og dermed kan man afgiv en stemt igen !!!
Avatar billede eagleeye Praktikant
27. november 2005 - 11:26 #9
Så skal der flyttes lidt rundt på koden kan du prøve at vise hele koden her?

det HTML kode som laver boksen skal ind i der hvor der står:
  'Brugeren har ikke stemt vise stemme boks
Avatar billede webbygger Nybegynder
27. november 2005 - 11:34 #10
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!!!!


<!--#include file="voteprotect.txt" -->
<!--#include file="forbindelse.asp" -->

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Kommenter &amp; Stem!</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script language="JavaScript" type="text/javascript" src="lang/dk.js"></script>
<script language="JavaScript" type="text/javascript" src="richtext.js"></script>
<script language="JavaScript" type="text/javascript" src="html2xhtml_compressed.js"></script>
<script language="Javascript">
function reloadogclose(){

opener.document.location=opener.document.location;
window.close()
}
</script>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body onUnload="opener.top.location.reload(true);">





<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("foto.mdb")


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>




<form action="vis.asp?mode=new&amp;rid=<%=request.querystring("rid")%>&amp;t=<%=request.querystring("t")%>" method="post" class="votetekst" onSubmit ="return submitForm();">
  <b>Point:</b>&nbsp;
  <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>&nbsp;&nbsp;
    <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&oslash;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, "'", "&#39;")
   
    'convert all types of double quotes
    tmpString = replace(tmpString, chr(147), chr(34))
    tmpString = replace(tmpString, chr(148), chr(34))
'    tmpString = replace(tmpString, """", "\""")
   
    'replace carriage returns & line feeds
    tmpString = replace(tmpString, chr(10), " ")
    tmpString = replace(tmpString, chr(13), " ")
   
    RTESafe = tmpString
end function
%>
</body>
</html>
Avatar billede webbygger Nybegynder
27. november 2005 - 11:45 #11
Nu tror jeg har fundet løsningen, jeg tilføjer også dit script på login side........
det vil jeg lige teste noget mere !!!
Avatar billede eagleeye Praktikant
27. november 2005 - 11:49 #12
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??
Avatar billede webbygger Nybegynder
27. november 2005 - 12:28 #13
Efter jeg har tilpasset script tror jeg det kører :o))

Eagleeye - smider du et svar!

Er der ikke noget med, at DU er uploading ekspert??? Fordi det sidste jeg mangler for at kunne udgiv siden er dette problem http://exp.dk/spm/666918
Avatar billede eagleeye Praktikant
27. november 2005 - 12:43 #14
Ok her et svar :)
Avatar billede webbygger Nybegynder
27. november 2005 - 12:45 #15
Tusind tak for hjælpen ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester