/ Forside/ Teknologi / Udvikling / ASP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Gemme navnet på den person der er logget~
Fra : Ylle
Vist : 292 gange
100 point
Dato : 12-05-04 20:30

Jeg har denne kode:

Kode:
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("Data/kontakter.mdb")
Set rs = Server.CreateObject("ADODB.RecordSet")

strSQL = "SELECT * FROM Kontakter Where id = "& Request.QueryString("id") &";"
rs.Open strSQL, myConn, 1, 3

If Request.Form("Navn") = "Ingen" then
strNavn = Response.Write Session("Brugernavn") <---- Her den er gal
end if

rs.Update
rs("Navn") = strNavn
rs.Update

Response.Redirect("kontakt_side.asp?id="& Request("id")&"")
%>

Jeg er logget ind som administrator, men da vi er flere, vil jeg gerne have det sådan at den gemmer navnet på den der trykker på det link der udløser den kode. Men hvordan får jeg den til det ? For det der står der nu virker ikke :(
Koden er nok lidt sjusket når den kommer frem på skærmen, men det er jo typisk :)

 
 
Kommentar
Fra : boegvad


Dato : 12-05-04 20:58

Det er jo i if-sætningen den er gal, prøv at udskifte "=" med "<>" - nu er det noget tid siden at jeg har skrevet asp, men du skal altså udskifte "=" med det som betyder |not| og så lige definere strNavn før if-sætningen evt med strNavn=""

Håber det kan hjælpe dig

Kommentar
Fra : snortop


Dato : 12-05-04 21:59


Så vidt jeg ved bruger man ikke ; i slutning af en SQL sætning!!
Bruger ikke response.write til at gemme data i en variable... det bruger du til at udskrive på skærmen

Sådan vil jeg sætte det til!!
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("Data/kontakter.mdb")
Set rs = Server.CreateObject("ADODB.RecordSet")

strSQL = "SELECT * FROM Kontakter Where id = "& Request.QueryString("id")
rs.Open strSQL, myConn, 1, 3

If Request.Form("Navn") = "Ingen" then
strNavn = Session("Brugernavn") <---- Her den er gal
end if rs.Update
rs("Navn") = strNavn
rs.Update

Response.Redirect("kontakt_side.asp?id="& Request("id")&"")
%>


Kommentar
Fra : snortop


Dato : 12-05-04 22:02

Forresten hvis du har
If Request.Form("Navn") = "Ingen" then
Til at skulle være hvis man ikke har skrevet noget i formen... så virker det vist ikke rigtig sådan.. så skal du bruge
If Not Request.Form("Navn") <> "" then
Tror jeg!!

Kommentar
Fra : boegvad


Dato : 12-05-04 22:04

Det kommer jo an på om standardinput er lig "Ingen" fra den forrige side, men hvis der ikke er noget standardinput så har du ret i at det skal være ""

Kommentar
Fra : snortop


Dato : 12-05-04 22:05

Ups overså også lige en anden fejl
end if rs.Update
rs("Navn") = strNavn
rs.Update

Skal være
end if
rs("Navn") = strNavn
rs.Update

Skal nemlig ikke bruge update FØR.. først bagefter.. Jeg ved ikke om det giver en fejl hvis man gør det 2 gang.
Det mener jeg det gør... derfor denne besked

Kommentar
Fra : Ylle


Dato : 12-05-04 22:13

Det der: Response.Write Session("Brugernavn") var også en fejl. Jeg havde bare prøvet alt andet så jeg tænkte, hvorfor ikke :)
Så i fik den dumme udgave, men jeg har prøvet det du har sagt, og det virker desværre heller ikke.

Med hensyn til det andet, så er det ikke derfor - jeg prøver lige at forklare :)

Jeg har et sted hvor man kan skrive til mig, altså udfylder nogle felter. Der har jeg så lagt nogle hidden felter ind, som består af (Ja nu kan i få det hele) en som hedder "Besvaret" hvis value er "Nej", og en som hedder "Navn" hvis value er "Ingen".
Når jeg så går ind på den side (Admin side) og kigger på dette (Det er spørgsmål som jeg skal svare på ved at skrive en e-mail), så kan man vælge at slette beskeden, og vælge om den er besvaret, altså via links, samtidig står der så: "Denne besked er endnu ikke blevet besvaret". Hvilket er gjort ved at jeg har sagt at hvis "Besvaret" = "Nej" så gør det og det og det, og besvaret er jo "Nej" da det jo var det der stod i det hidden felt på siden man skrev til mig på - altså det er gemt i databasen.
Det er fordi vi er flere der har adgang, så det skulle jo nødig være sådan at vi er flere der skriver til den samme, derfor har jeg så lavet det sådan at når man trykker på det "Besvaret" link, så akitiverer den den kode som står ovenstående + lidt mere som jeg undlod.
Altså:
If Request.Form("Besvaret") = "Nej" Then
   strBesvaret = "Ja"
End If

Som jo er hvis "Besvaret" = "Nej" så skal den lave det om til "Ja", og da den jo er "Nej" til at starte på, jamen så bliver den til "Ja", som den skal.

Så er der:
If Request.Form("Navn") = "Ingen" Then
   strNavn = Session("Brugernavn")
End If

Som jo er hvis "Navn" = "Ingen" så skal den lave det om til navnet på den bruger som er logget ind (Eller det SKULLE den), og da den jo også er "Ingen" til at starte på, jamen så SKULLE den jo gerne blive til navnet på den person der er logget ind, altså via Session("Brugernavn") - men det er det den ikke gør.

Så kommer så:

      rs.Update
      rs("Besvaret") = strBesvaret
      rs("Navn") = strNavn
      rs.Update
      
Response.Redirect("kontakt_side.asp?id="& Request("id")&"")

Hvor den så updater det nye og sender mig videre til den side fra før.
Nu har jeg så sagt at hvis "Besvaret" = "Ja" så skal den gøre noget andet, b.la. fjerne "Besvaret" linket og lave den tekst hvor der står man ikke har besvaret beskeden om til at den er blevet besvaret af (Og det var så her den gerne skulle have gemt den brugersnavn som trykkede på linket - men det gør den ikke. Inden i databasen er feltet nu blevet tomt, mens den anden er blev lavet om til "Ja" i stedet for "Nej".
Så selve gemme sekvensens tror jeg virker, det er bare det med Session("Brugernavn") som jeg tvivler lidt på.

Håber det er lidt klarere nu.


Puha, det var også langt.

Kommentar
Fra : Ylle


Dato : 12-05-04 22:14

Ups overså også lige en anden fejl
end if rs.Update
rs("Navn") = strNavn
rs.Update

Skal være
end if rs("Navn") = strNavn
rs.Update

Skal nemlig ikke bruge update FØR.. først bagefter.. Jeg ved ikke om det giver en fejl hvis man gør det 2 gang.
Det mener jeg det gør... derfor denne besked
---------------------------------------------------------------------------------------------------------

Har også altid undret mig, men nej, det giver faktisk ikke fejl. Så ingen betydning :D

Kommentar
Fra : snortop


Dato : 12-05-04 22:45

Det gjorde mig faktisk endnu mere forviret.. og jeg har ikke rigtig lyst til at tænke så meget idag!!
måske i morgen!!

Skal også i seng *gab*

Kommentar
Fra : Ylle


Dato : 12-05-04 22:47

hehehe, det helt i orden :)
Natte nat mester...

Kommentar
Fra : snortop


Dato : 14-05-04 15:00

Hej igen... Fik sovet ganske FINT

Og igår tog Konen alt min tid fra mig

Det lyder som som der ikke er nogle værdi i session("brugernavn") er du sikker på du så har fat i den rigtig værdi.


Du har følgende muligheder
Dette spørgsmål er blevet annulleret, det er derfor ikke muligt for at tilføje flere kommentarer.
Søg
Reklame
Statistik
Spørgsmål : 177428
Tips : 31962
Nyheder : 719565
Indlæg : 6407943
Brugere : 218877

Månedens bedste
Årets bedste
Sidste års bedste