Avatar billede torben_moeller Nybegynder
26. december 2001 - 21:15 Der er 24 kommentarer og
1 løsning

database

jeg har en asp fil, hvor jeg skal skrive i en database.. der gives ingen fejlmeddellelser, men der skrives heller ikke i databasen..

dette virker på en anden database, som jeg ikke selv har lavet.. hvad skal defineres i databasen for at få lov at skrive i den??

det er en Access 2002 (office xp prof. dk) database
Avatar billede cool_casper Nybegynder
26. december 2001 - 21:22 #1
Den skal ikke være skrivebeskyttet, men siden du ikke får en fejl må det være di ASP script!
Avatar billede torben_moeller Nybegynder
26. december 2001 - 21:28 #2
<%
adrConnect =\"Data Source=\" & Server.mappath(\"/scripts/drevD/IP-logon.mdb\") &\";Provider = Microsoft.Jet.OLEDB.4.0;\"

if not session(\"navn\") = \"anonymous\" then
  response.redirect \"exists.asp\"
  end if






if NOT isempty(Request.Form(\"Insert\")) then
        Set Conn = Server.CreateObject(\"ADODB.CONNECTION\")
        Conn.Open adrconnect
        SQL = \"Insert into Ip (IP, Navn, Email) \" _
        &\"values(\"_
                &\"\'\"&Request.ServerVariables(\"REMOTE_ADDR\") &\"\',\"_
        &\"\'\"&Request.Form(\"Navn\") &\"\',\"_       
        &\"\'\"&Request.Form(\"Email\") &\"\')\"
        Set RS =Conn. EXECUTE (SQL)
        end if

%>

navn og email er hentet fra et form felt.. selvfølgelig med det rigtige navn..
Avatar billede mekaniker Nybegynder
26. december 2001 - 21:28 #3
Prøv evt. at skrive din sql streng ud med
Response.write (sql)
Avatar billede mekaniker Nybegynder
26. december 2001 - 21:31 #4
if NOT isempty(Request.Form(\"Insert\")) then
        Set Conn = Server.CreateObject(\"ADODB.CONNECTION\")
        Conn.Open adrconnect
        SQL = \"Insert into Ip (IP, Navn, Email) \" _
        &\"values(\"_
                &\"\'\"&Request.ServerVariables(\"REMOTE_ADDR\") &\"\',\"_
        &\"\'\"&Request.Form(\"Navn\") &\"\',\"_       
        &\"\'\"&Request.Form(\"Email\") &\"\')\"
Response.write (sql)       
Set RS =Conn. EXECUTE (SQL)
        end if
Avatar billede mekaniker Nybegynder
26. december 2001 - 21:32 #5
så kan du altid se om den fanger dine data
Avatar billede mekaniker Nybegynder
26. december 2001 - 21:40 #6
navn = Request.Form(\"Navn\")       
email = Request.Form(\"Email\")
addr = Request.ServerVariables(\"REMOTE_ADDR\")

if NOT isempty(Request.Form(\"Insert\")) then
        Set Conn = Server.CreateObject(\"ADODB.CONNECTION\")
        Conn.Open adrconnect
        SQL = \"Insert into Ip (IP, Navn, Email) values(\'\"& addr &\"\',\'\"& navn &\"\',\'\"& email &\"\')\"
Response.write (sql)       
Set RS =Conn. EXECUTE (SQL)
        end if
Avatar billede torben_moeller Nybegynder
26. december 2001 - 21:55 #7
mekaniker >> det gør den ikke..

men sætter jeg en alm. response.write sætning ind der.. vises den heller ikke
Avatar billede mekaniker Nybegynder
26. december 2001 - 21:57 #8
Så må det være din form action på som ikke linker til den rigtige side
Avatar billede torben_moeller Nybegynder
26. december 2001 - 21:58 #9
mekaniker >> den virker stadig ikke..
Avatar billede bestasp Nybegynder
26. december 2001 - 21:59 #10
Avatar billede torben_moeller Nybegynder
26. december 2001 - 22:01 #11
nej den linker rigtigt nok.. for jeg har nu skrevet min side som:
<%
if not session(\"navn\") = \"anonymous\" then
  response.redirect \"badpwd.asp\"
  end if

adrConnect =\"Data Source=\" & Server.mappath(\"/scripts/drevD/IP-logon.mdb\") &\";Provider = Microsoft.Jet.OLEDB.4.0;\"


navn = Request.Form(\"Navn\")       
email = Request.Form(\"Email\")
addr = Request.ServerVariables(\"REMOTE_ADDR\")

if NOT isempty(Request.Form(\"Insert\")) then
        Set Conn = Server.CreateObject(\"ADODB.CONNECTION\")
        Conn.Open adrconnect
        SQL = \"Insert into Ip (IP, Navn, Email) values(\'\"& addr &\"\',\'\"& navn &\"\',\'\"& email &\"\')\"
Response.write (sql)
response.write(\"1\")       
Set RS =Conn. EXECUTE (SQL)
        end if


response.write(\"2\")
%>

og det eneste der sker når jeg trykker submit.. er at der står 2..

altså sql, og 1 er cuttet væk..
Avatar billede mekaniker Nybegynder
26. december 2001 - 22:01 #12
Hvad med inputfelternes name
Avatar billede torben_moeller Nybegynder
26. december 2001 - 22:06 #13
de er også korrekte... men uanset.. burde IP adressen jo skrives ned.. og resonse.write sætnigerne udføres.
Avatar billede mekaniker Nybegynder
26. december 2001 - 22:07 #14
Kan jeg ikke prøve at få din form side, for det er dit if statement den hopper uden om
//Mekaniker
Avatar billede torben_moeller Nybegynder
26. december 2001 - 22:14 #15
<form method=\"POST\" action=\"signup_main.asp\">
                      <p><font face=\"Arial Unicode MS\">Navn:</font> <input type=\"text\" name=\"navn\" size=\"35\">&nbsp;</p>
                      <p><font face=\"Arial Unicode MS\">&nbsp;&nbsp;&nbsp; Email:</font> <input type=\"text\" name=\"Email\" size=\"50\"></p>
                      <p align=\"right\"><input type=\"reset\" value=\"Nulstil\" name=\"B2\"></p>
                      <p align=\"center\"><input type=\"submit\" value=\"Sign up\" name=\"B1\"></p>
                    </form>
Avatar billede mekaniker Nybegynder
26. december 2001 - 22:17 #16
Prøv dette, men tjek lige din sti til db\'en

<%
if not session(\"navn\") = \"anonymous\" then
  response.redirect \"badpwd.asp\"
  end if

ins = Request.Form(\"Insert\")
navn = Request.Form(\"Navn\")       
email = Request.Form(\"Email\")
addr = Request.ServerVariables(\"REMOTE_ADDR\")

if ins <> \"\" then
    Set myConn = Server.CreateObject(\"ADODB.Connection\")
    myConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"/scripts/drevD/IP-logon.mdb\")

    myConn.Execute(SQL)
        SQL = \"Insert into Ip (IP, Navn, Email) values(\'\"& addr &\"\',\'\"& navn &\"\',\'\"& email &\"\')\"
Response.write (SQL)
        end if

response.write(\"2\")

myConn.Close
Set myConn = nothing
Set SQL = nothing
%>
Avatar billede torben_moeller Nybegynder
26. december 2001 - 22:32 #17
den dersens request.form(\"insert\") hvad gør den??? den har jeg jo ikke inde i mit html dokument
Avatar billede mekaniker Nybegynder
26. december 2001 - 22:32 #18
en lille ændring
Det må være scriptet der ikke får fat i Request.Form(\"Insert\") siden den hopper if statmentet over.

<%
if not session(\"navn\") = \"anonymous\" then
  response.redirect \"badpwd.asp\"
  end if

ins = Request.Form(\"Insert\")
navn = Request.Form(\"Navn\")       
email = Request.Form(\"Email\")
addr = Request.ServerVariables(\"REMOTE_ADDR\")

if ins <> \"\" then
    Set myConn = Server.CreateObject(\"ADODB.Connection\")
    myConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"/scripts/drevD/IP-logon.mdb\")
Response.write (SQL)
 
        SQL = \"Insert into Ip (IP, Navn, Email) values(\'\"& addr &\"\',\'\"& navn &\"\',\'\"& email &\"\')\"
myConn.Execute(SQL)
        end if

response.write(\"2\")

myConn.Close
Set myConn = nothing
Set SQL = nothing
%>
Avatar billede torben_moeller Nybegynder
26. december 2001 - 22:36 #19
det var den det var galt med... nu har jeg fået det til at virke..
Avatar billede mekaniker Nybegynder
26. december 2001 - 22:37 #20
sådan som dit script så ud til at starte med havde du følgende linie med:
if NOT isempty(Request.Form(\"Insert\")) then

Den betyder at hvis formen med navnet Insert på din hmtl side ikke er tom skal den lave dit insert into, og hvis den er tom skal det springes over
Avatar billede torben_moeller Nybegynder
26. december 2001 - 22:37 #21
det var vist en drillenisse der havde jordet den insert ind.. for den havde ikke noget at gøre der... jeg byttede:
if NOT isempty(Request.Form(\"insert\"))ud med
if NOT isempty(Request.Form(\"navn\"))
og så kørte det...

Avatar billede torben_moeller Nybegynder
26. december 2001 - 22:39 #22
den klarer jobbet fint.. for det er kun nødvendigt med et navn.. emailen er ikke så relevant i databasen....

du får point fordi du gad... :o)
Avatar billede mekaniker Nybegynder
26. december 2001 - 22:44 #23
Takker
Men emailen burde da virke, hvis ellers du bare har defineret feltet som ren tekst i db\'en
Avatar billede torben_moeller Nybegynder
26. december 2001 - 22:47 #24
ja ja.. det gør den også.. men når jeg kun har if not isempty ved navnet.. så kan emailen jo godt være tom.. og den stadig opretter sig selv... det var det jeg mente.. den checker jo kun navnet nu... men det virker...
Avatar billede mekaniker Nybegynder
26. december 2001 - 23:09 #25
Jeg bruger altid denne til at tjekke om et felt er udfyldt

<%
If IsEmpty(request.form(\"navn\")) or request.form(\"navn\")=\"\" then
    Response.Redirect(\"form.html?fejl=intet\")
Else
    navn = request.form(\"navn\")
End If
----------------------------------------------
Også kan du altid bruge denne til at skrive en fejlmeddelelse til brugeren på din html side
-------------------------------------------
Select Case Request.QueryString(\"fejl\")
case \"intet\"
Response.Write \"Du skal indtaste et navn\"
end select

//Mekaniker
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