Avatar billede jannick Nybegynder
01. januar 2000 - 20:50 Der er 8 kommentarer

HTTP fejl

Hej

Jeg får denne fejl: HTTP-fejl 400  Forkert anmodning, når jeg "kører" en af
mine asp sider. Mere præsicst har jeg en side hvorpå der er en form-code som
sender data vidre til den samme asp fil med et andet mode. Den behandler så
dataene og redirecter til den samme fil igen, men med et andet mode. Her er
sendkoden:

<form action="bestilling.asp?mode=Godkend" method="POST">
    <table cellspacing=0 style="border: 1px solid rgb(0,0,0)"
bgcolor="#84A068">
        <tr><td width="40">Fornavn: </td><td width="150"><input type="text"
size="30" name="fornavn"></td></tr>
        <tr><td>Efternavn:</td><td><input type="text" size="30"
name="efternavn"></td></tr>
        <tr><td>Adresse: </td><td><input type="text" size="30"
name="adresse"></td></tr>
        <tr><td>Post nr:</td><td><input type="text" size="4"
name="postnr"></td></tr>      <tr>
        <tr><td>By:</td><td><input type="text" size="30"
name="City"></td></tr>
        <tr><td>E-mail:</td><td><input type="text" size="30"
name="email"></td></tr>
        <tr><td>Telefon nr: </td><td><input type="text" size="30"
name="telefon"></td></tr>        <tr>
        <tr><td><input type="submit" name="Action"
value="Videre"></td><td>&nbsp;</td></tr>
    </table>
</form>

Koden der modtager:

Oplys = "DRIVER={Microsoft Access Driver
(*.mdb)};DBQ="&Server.MapPath("/data/kunder.mdb")
Set Forbindelse = Server.CreateObject("ADODB.Connection")
Forbindelse.Open Oplys
for each x in request.form
if request.form(x) = "" then
response.redirect "bestilling.asp?mode=fejlm"
end if
next
StrSql = "SELECT * FROM Kunder Where Email = '" & Request.Form("Email") &
"'"
Set rs = Forbindelse.Execute(StrSql)
If rs.BOF Or rs.EOF Then
Black = "Nej"
SQL = "INSERT INTO Kunder ( Fornavn, Efternavn, Adresse, Postnr, City,
Email, Telefon, Blacklistet ) values ( '" & Request.Form("Fornavn") & "', '"
& Request.Form("Efternavn") & "', '" & Request.Form("Adresse") & "', '" &
Request.Form("Postnr") & "', '" & Request.Form("City") & "' , '" &
Request.Form("Email") & "', '" & Request.Form("Telefon") & "', '" & Black &
"' )"
Forbindelse.execute (SQL)
Else
dim tjek
if request.form("Fornavn") = rs("Fornavn") then tjek = tjek + 1
if request.Form("Efternavn") = rs("Efternavn") then tjek = tjek + 1
if request.Form("Adresse") = rs("Adresse") then tjek = tjek + 1
if request.Form("Postnr") = rs("Postnr") then tjek = tjek + 1
if request.Form("City") = rs("City") then tjek = tjek + 1
if request.Form("Telefon") = rs("Telefon") then tjek = tjek + 1
if tjek = 6 then response.redirect "bestilling.asp?mode=forbestil&id= '" &
rs("Email") & "'"
if tjek < 6 then response.redirect ("bestilling.asp?mode=Fejl")
End If
Forbindelse.Close
Set Forbindelse = Nothing
response.redirect "bestilling.asp?mode=forbestil&id= '" &
Request.Form("Email") & "'"


Og til sidst den kode der redirectes til:

ide = (lcase(request("Id")))
Oplys = "DRIVER={Microsoft Access Driver
(*.mdb)};DBQ="&Server.MapPath("/data/kunder.mdb")
Set Forbindelse = Server.CreateObject("ADODB.Connection")
Forbindelse.Open Oplys
StrSql = "SELECT * FROM Kunder Where Email = " & ide
Set rs = Forbindelse.Execute(StrSql)
+ kald til nogle subs der udsrkiver tabeller på skærmen.

Fejlen opstår kun når jeg bruger Netscape. Hvad kan det skylde. Her den
fulde fejlmeddelelse:

HTTP-fejl 400

400 Forkert anmodning

Anmodningen kunne ikke forstås af serveren på grund af forkert udformet
syntaks. Klienten bør foretage ændringer, før anmodningen gentages.

På forhånde tak, og undskyld det lange indlæg,

Jannick

Avatar billede erikjacobsen Ekspert
01. januar 2000 - 21:24 #1
Kan du give os en URL, så vi kan prøve det?

Du har ved ingen mellemrum i dine email-adresser?
Avatar billede boomer Nybegynder
01. januar 2000 - 21:58 #2
Det kan være fordi du bruger æ, ø eller å i din URL
Avatar billede jannick Nybegynder
02. januar 2000 - 12:24 #3
www.wafer-card.dk/1default.asp - under punktet bestilling - ny kunde. Bruger ikke æ ø å
Avatar billede mpj Nybegynder
02. januar 2000 - 15:17 #4
Black=nej
Skal det ikke være Black=no
Jeg har ikke forstyand

Morten
Avatar billede jannick Nybegynder
02. januar 2000 - 19:07 #5
>>> mpj
Ligemeget. black = nej er bare en værdi. Det har ikke noget med fejlen at gøre.
Avatar billede erikjacobsen Ekspert
02. januar 2000 - 21:14 #6
Med IE 4 får man dæleme osse fejlen (se nedenfor). Du har kun vist os noget
af dine ASP-filer. Reglen er at man ikke må have noget output overhovedet
før en response.redirect da det bliver en del af HTTP-headeren. Ikke engang
blanke linier, og slet slet ikke rigtig HTML. Har du det?

Her er meddelelsen fra IE4:

HTTP Error 400
400 Bad Request

Due to malformed syntax, the request could not be understood by the server. The client should not repeat the request without modifications.
Avatar billede flemming Nybegynder
03. januar 2000 - 12:48 #7
normalt siger fejlmeddelelsen at der var skrevet output til klienten og at redirekt derfor ikke er muligt ved denne fejl
Avatar billede jannick Nybegynder
03. januar 2000 - 15:39 #8
Jeg udskriver html kode før response.redirecten. Nærmere betegnet <html> og <body> koden. Men når bufferen er sat til true, skulle det vel ikke være noget problem?
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