FIX: Form with Unchecked Checkboxes Wrongly Processed by ISAPI |
Q156914
When processing a form containing one or more checkboxes that are not checked, using an ISAPI dll via a POST HTTP request, you may see Internet Explore 1.5 in a indeterminate state. With Internet Explorer 2.0 and later, you will see a dialog stating that it does not know how to open the URL.
The code in CHttpServer::HttpExtensionProc() checks to see if the total bytes sent in a case of POST request is zero, and then flags an error. When none of the checkboxes is checked, the number of bytes sent is zero, and the request is flagged as an error.
Both methods described below require that you implement the fix described in the following Microsoft Knowledge Base article:
Q152365 FIX: Sending a POST HTTP Request May Cause an Access Violation
<FORM ACTION=" /scripts/check.dll" METHOD="POST">
<INPUT TYPE="CHECKBOX" NAME="Check1">Skill<P>
<INPUT TYPE="HIDDEN" NAME="Def" VALUE="Hidden">
<INPUT TYPE="SUBMIT">
</FORM>
if (pECB->cbTotalBytes == 0)
{
dwRet = HSE_STATUS_ERROR;
goto CleanUp;
}
You can rebuild the MFC ISAPI library by using the MFCISAPI.MAK file in the
\MSDEV\MFC\SRC directory. If the ISAPI DLL is built with MFC statically
linked (using NAFXIS(D).LIB), you can build the MFC ISAPI library by going
to the \MFC\SRC directory and typing:
NMAKE /f MFCISAPI.MAK DEBUG=1Specifying DEBUG=1 will build the debug version of the library. Use "DEBUG=1" if you want to build a release build of the library.
NMAKE /f MFCISAPI.MAK DEBUG=1 DLL=2For more information about other options you can specify on the NMAKE Command line, see the README.TXT file in the MSDEV\MFC\SRC directory or look at the MFCISAPI.MAK file.
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug was corrected in Visual C++ 4.20.
Additional query words: ISAPI POST Internet Extension DLL
Keywords : kbISAPI kbMFC kbVC kbVC410bug kbVC420fix
Issue type : kbbug
Technology : kbAudDeveloper kbMFC
|
Last Reviewed: May 4, 2001 © 2001 Microsoft Corporation. All rights reserved. Terms of Use. |