Avatar billede chameleon Nybegynder
14. maj 2001 - 01:00 Der er 6 kommentarer og
1 løsning

Fejl i Login script med cookies - Very Urgent - PLS

Hej jeg har et nogle filer hvor jeg får følgende fejl når jeg logger ind:

Response object error \'ASP 0156 : 80004005\'
Header Error
/dev/services/profile.asp, line 11
The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.

*****************
Hvad betyder det?
Er det nok at paste selve login filen her eller skal jeg også paste _header.asp?

*****************
Avatar billede erikjacobsen Ekspert
14. maj 2001 - 01:05 #1
Det nemmeste er nok at sætte

<% response.buffer = true %>

som ABSOLUT øverste linie
Avatar billede erikjacobsen Ekspert
14. maj 2001 - 01:06 #2
...med mindre det er ASP på freepaq ??
Avatar billede chameleon Nybegynder
14. maj 2001 - 01:07 #3
Når jeg logger ind får jeg denne fejl:
Response object error \'ASP 0156 : 80004005\'
Header Error
/dev/services/login.asp, line 100
The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.

***********************
Som er den samme som do. Her kommer login scriptet:
*******************
<!--#include virtual=\"/dev/_db.asp\"-->
<!--#include virtual=\"/dev/_header.asp\"-->
<%
    bDontCount = False
    sPageTitle = \"2eNetWorX - Login\"
    bAdminOnly = False
    lSubjectID = 0
    sTitleBar = \"/dev :: <a href=\"\"/dev/index.asp\"\">home</a> :: <a href=\"\"/dev/services/index.asp\"\">services</a> :: login\"

    if request(\"comebackto\") <> \"\" then
        sReferer = request(\"comebackto\")
        sGoBackTo = \"?\" & request.querystring
    end if

    function Crypt(sText)
        \'Removed for security
        Crypt = sText
    end function

    sub AskForLogin(sText)
   
    if sText <> \"\" then
        sMessage = \"<p class=\"\"smallertext\"\">\" & sText & \"</p>\"
    else
        if sReferer <> \"\" then
            sMessage = \"<p class=\"\"smallertext\"\">This service requires you to login</p>\"   
        end if
    end if
%>   



<br>

<form action=\"login.asp<%=sGoBackTo%>\" method=\"post\">
<table border=0 cellspacing=0 cellpadding=0 width=\"100%\">
    <tr>
        <td width=20></td>
        <td width=300 valign=top>
            <p class=\"smallaction\">Please Login</p>
            <%=sMessage%>
            <script language=\"JavaScript\" type=\"text/javascript\">
            <!--
            if ((navigator.cookieEnabled?true:false) == false)
            document.write (\"This service requires cookies to be enabled.<br><br>\");
            --></script>
            <table border=0>
                <tr>
                    <td class=\"smallerheader\">User Name</td>
                    <td><input type=\"text\" name=\"txtUserName\" class=\"tbflat\"></td>
                </tr>
                <tr>
                    <td class=\"smallerheader\">Password</td>
                    <td><input type=\"password\" name=\"txtPassword\" class=\"tbflat\"></td>
                </tr>
                <tr>
                    <td class=\"smallerheader\">Remember Me</td>
                    <td><input type=\"checkbox\" name=\"chkRemember\" value=\"1\" checked></td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type=\"submit\" name=\"cmdLogin\" value=\" Login \" class=\"cmdflat\"></td>
                </tr>
            </table>
        </td>
        <td width=1 bgcolor=\"#C0C0C0\"></td>
        <td width=10></td>
        <td valign=top>
            <p class=\"smallaction\">New User?</p>
            <a href=\"register.asp<%=sGoBackTo%>\">Register Now!</a>
            <p class=\"smallaction\">Forgot Password?</p>
            <a href=\"forgot.asp\">Send My Password!</a>
        </td>
    </tr>
</table>
</form>

           
<!--#include virtual=\"/dev/_footer.asp\"-->

<%
    end sub

    if request(\"cmdLogin\") <> \"\" then

        sUserName = request(\"txtUserName\")
        sPassword = request(\"txtPassword\")

        OpenDB sConnUsers

        sSQL = \"SELECT * FROM Users WHERE UserName = \'\" & sUserName & \"\'\"
        rs.Open sSQL, , , adCmdTable
        if not (rs.bof or rs.eof) then
            if rs(\"Password\") = sPassword then
                \'Login succeeded
                \'Store info into session
                session(\"devUserName\") = rs(\"UserName\")
                session(\"devFullName\") = rs(\"FirstName\") & \" \" & rs(\"LastName\")
                if request(\"chkRemember\") <> \"\" then
                    response.cookies(\"devUserName\") = Crypt(rs(\"UserName\"))
                    response.cookies(\"devFullName\") = Crypt(rs(\"FirstName\") & \" \" & rs(\"LastName\"))
                   
                    response.cookies(\"devUserName\").expires = Date() + 365
                    response.cookies(\"devFullName\").expires = Date() + 365

                    response.cookies(\"devUserName\").path = \"/dev\"
                    response.cookies(\"devFullName\").path = \"/dev\"
                else
                    response.cookies(\"devUserName\") = \"\"
                    response.cookies(\"devFullName\") = \"\"
                    response.cookies(\"devUserName\").expires = Date() - 365
                    response.cookies(\"devFullName\").expires = Date() - 365
                end if
                rs(\"LastLogin\") = now
                rs.update
                CloseDB
                if sReferer = \"\" then
                    response.redirect \"/dev/index.asp\"
                else
                    response.redirect sReferer
                end if
            else
                \'Login failed
                AskForLogin \"Incorrect password.\"
            end if
        else
            AskForLogin \"Incorrect credentials.\"
        end if
    else
        AskForLogin \"\"
    end if
%>
Avatar billede erikjacobsen Ekspert
14. maj 2001 - 01:10 #4
Problemet er at du ikke må smide linier (ej heller tomme) tilbage
til brugeren før du laver en redirect eller cookie. Din
  if request(\"cmdLogin\") <> \"\" then
burde derfor være den første linie, evt. efter dine includer.
Men det er lidt besværligt nu ... derfor mit svar med response.buffer
Avatar billede chameleon Nybegynder
14. maj 2001 - 01:14 #5
Det virkede på min login.asp fil - skal jeg indsætte <% response.buffer = true %> på alle de andre filer?

Eller er det bedre at rykke if request... op under include filerne? Vil resultatet være det samme?
Avatar billede erikjacobsen Ekspert
14. maj 2001 - 01:17 #6
Jeg ved ikke hvad der er bedst. Kan man overskue det vil jeg da
foretrække ikke at lave noget HTML før en redirect - det virker omsonst....
response.buffer=true er default i nyere ASP-er - så det er vel et signal
fra Microsoft.....:)
Avatar billede chameleon Nybegynder
14. maj 2001 - 01:19 #7
Takker for svaret - Du har reddet min nat - Tak
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