Escaping special sequences in HTML
Sorry if this is in the wrong forum, but I am stuck and can't find the answer. In Java, I am forwarding a page and passing a string into the new Forward. The problem is that part of the string is �, and in HTML is keeps resolving the the registration symbol (circle with an R inside)
rtn = "https://www.mypage.com/page.do?accountNumber="+accountNum+"®istrationCode="+registrationCode;
return new Forward(rtn);I've tried using double quotes to escape it, but it still resolves to the registration code symbol
rtn = "https://www.mypage.com/page.do?accountNumber="+accountNum+"\\®istrationCode="+registrationCode;Any ideas how to escape � in a string to make it actually resolve to � in an jsp page?
thanks
Message was edited by:
drakester
Message was edited by:
drakester
I don't get what you're asking. Do you want the �to
appear in the page or not? You seem to be
contradicting yourself.I do not want � to appear, I want (&.reg) to
appear(but without the period). I am trying to pass
&.reg as an URL string but the &.registration keeps
resolving to ®istration.Gotcha. I was even more confused until I quoted your reply. If the URLEncoder doesn't handle the problem, you could encode the '&' yourself: http://www.w3schools.com/tags/ref_urlencode.asp
Similar Messages
-
SQL Injections and XSS - Escaping Special Characters
Hi, hope someone can help in regards to security and SQL Injections and XSS.
We are using APEX 4.0.2 on Oracle 11.2.0.2.
1. It seems the special characters we have entered into normal 'Text Items' 'Text Areas' etc are not being escaped (ie <,>,&, '). If I enter them into the field (ie Surname) they are saved as is into session state and the database - no escaping. Am I missing something such as an environment setting as I thought the "smart" oracle escaping rules would cater for this.
Surely I don't have to manually do each of then.
Just to confirm, am I looking in the correct places to assess if the characters are escaped or not - ie should they show as '&<>' in session state and/or the database ?
2. Also, for the Oracle procedures such as '‘wwv_flow.accept’ , ‘wwv_flow.show’ , 'wwv_flow_utilities.show_as_popup_calendar' - do these escape special characters. If not, then they must be vulnerable to SQL Injections attacks.
Thx
NigelRecx Ltd wrote:
Just to pitch in, escaping values internally (either in the database or session state) is extremely problematic. Data searches, string comparison, reporting and double escaping are all areas which suffer badly when you do this.
Stripping characters on input can also cause problems if not considered within the context of the application. Names such as "O'Niel", statistical output such as "n < 300", fields containing deliberate HTML markup can be annoying to debug. In certain situations stripping is totally ineffective and may still lead to cross-site scripting.
Apex applications that share the database with other applications will also be affected.
The database should contain 'raw' unfettered data and output should be escaped properly, as Joel said, at render time. Either with Apex attributes or using PLSQL functions such as htf.escape_sc() as and when required.Do not needlessly resurrect old threads. After a couple of months watches expire and the original posters are not alerted to the presence of your follow-up.
Shameless plug: If you are in the game of needing to produce secure Apex code, you should get in touch.This crosses the line into spam: it violates the OTN Terms of Use—see 6(j).
Promotional posts like this are liable to be removed by the moderators. -
Escape special characters in url for redirection
In my web page, I want all the characters of the URL to be lower case. For that I created the following method:
private bool UrlFormatoCorrecto(string url)
bool formatoCorrecto = true;
bool upperCa = url.Any(c => char.IsUpper(c));
if (url.Any(c => char.IsUpper(c)))
formatoCorrecto = false;
if (url.Contains(" ") || url.Contains("+"))
formatoCorrecto = false;
return formatoCorrecto;
This works like a charm until a special character appears. The url that I get then will be the following:
http://localhost/web/coches/proven%C3%A7a-aribau,-08036-barcelona,-barcelona
So I have upper case characters. When I redirect it using the following code:
if (!UrlFormatoCorrecto(urlActual))
Response.RedirectPermanent(urlActual.Replace(" ", "-").Replace("+", "-").ToLower());
I get the code again with the same URL with upper case. How can I escape the special characters so they won't bother me anytime I want to make the redirection?hello,
you could escape special caracters with :
Regex.Escape Method
Regards
Cédric -
How to generate a special sequence?
Hi there,
I need to generate a special sequence like this:
A0A0A0
A0A0A1
A0A0A2
A0A0A9 ---when add 1 to 9, it will be from A9 to B0
A0A0B0
A0A0Y9
A0A0Z0
A0A0Z9
A0A1A0
...You are right.
I was just about to edit my post... but unfortunately you replied :-)
SQL> SELECT CHR ( 65 + SUBSTR ( len, 1, 2 ))
2 || SUBSTR ( len, 3, 1 )
3 || CHR ( 65 + SUBSTR ( len, 4, 2 ))
4 || SUBSTR ( len, 6, 1 )
5 || CHR ( 65 + SUBSTR ( len, 7, 2 ))
6 || SUBSTR ( len, 9, 1 ) sequence_value
7 FROM ( SELECT len
8 FROM ( SELECT LPAD ( LEVEL - 1, 9, 0 ) len
9 FROM DUAL
10 CONNECT BY LEVEL <= 259259259 )
11 WHERE SUBSTR ( len, 1, 3 ) <= 259
12 AND SUBSTR ( len, 4, 3 ) <= 259
13 AND SUBSTR ( len, 7, 3 ) <= 259 )
14 /
SEQUENCE_VALUE
A0A0A0
A0A0A1
A0A0A2
A0A0A3
A0A0A4
A0A0A5
A0A0A6
A0A0A7
A0A0A8
A0A0A9
A0A0B0
A0A0B1
A0A0B2
A0A0B3
A0A0B4
A0A0B5
A0A0B6
A0A0B7
A0A0B8
A0A0B9
SEQUENCE_VALUE
A0A0C0
A0A0C1
A0A0C2
A0A0C3
A0A0C4
A0A0C5
A0A0C6
A0A0C7
A0A0C8
A0A0C9
A0A0D0
A0A0D1
A0A0D2
A0A0D3
A0A0D4
A0A0D5
A0A0D6
A0A0D7
A0A0D8
A0A0D9
A0A0E0
SEQUENCE_VALUE
A0A0E1
A0A0E2
A0A0E3
A0A0E4
A0A0E5
A0A0E6
A0A0E7
A0A0E8
A0A0E9
A0A0F0
A0A0F1
A0A0F2
A0A0F3
A0A0F4
A0A0F5
A0A0F6
A0A0F7
A0A0F8
A0A0F9
A0A0G0
A0A0G1
SEQUENCE_VALUE
A0A0G2
A0A0G3
A0A0G4
A0A0G5
A0A0G6
A0A0G7
A0A0G8
A0A0G9
A0A0H0
A0A0H1
A0A0H2
A0A0H3
A0A0H4
A0A0H5
A0A0H6
A0A0H7
A0A0H8
A0A0H9
A0A0I0
A0A0I1
A0A0I2
SEQUENCE_VALUE
A0A0I3
A0A0I4
A0A0I5
A0A0I6
A0A0I7
A0A0I8
A0A0I9
A0A0J0
A0A0J1
A0A0J2
A0A0J3
A0A0J4
A0A0J5
A0A0J6
A0A0J7
A0A0J8
A0A0J9
A0A0K0
A0A0K1
A0A0K2
A0A0K3
SEQUENCE_VALUE
A0A0K4
A0A0K5
A0A0K6
A0A0K7
A0A0K8
A0A0K9
A0A0L0
A0A0L1
A0A0L2
A0A0L3
A0A0L4
A0A0L5
A0A0L6
A0A0L7
A0A0L8
A0A0L9
A0A0M0
A0A0M1
A0A0M2
A0A0M3
A0A0M4
SEQUENCE_VALUE
A0A0M5
A0A0M6
A0A0M7
A0A0M8
A0A0M9
A0A0N0
A0A0N1
A0A0N2
A0A0N3
A0A0N4
A0A0N5
A0A0N6
A0A0N7
A0A0N8
A0A0N9
A0A0O0
A0A0O1
A0A0O2
A0A0O3
A0A0O4
A0A0O5
SEQUENCE_VALUE
A0A0O6
A0A0O7
A0A0O8
A0A0O9
A0A0P0
A0A0P1
A0A0P2
A0A0P3
A0A0P4
A0A0P5
A0A0P6
A0A0P7
A0A0P8
A0A0P9
A0A0Q0
A0A0Q1
A0A0Q2
A0A0Q3
A0A0Q4
A0A0Q5
A0A0Q6
SEQUENCE_VALUE
A0A0Q7
A0A0Q8
A0A0Q9
A0A0R0
A0A0R1
A0A0R2
A0A0R3
A0A0R4
A0A0R5
A0A0R6
A0A0R7
A0A0R8
A0A0R9
A0A0S0
A0A0S1
A0A0S2
A0A0S3
A0A0S4
A0A0S5
A0A0S6
A0A0S7
SEQUENCE_VALUE
A0A0S8
A0A0S9
A0A0T0
A0A0T1
A0A0T2
A0A0T3
A0A0T4
A0A0T5
A0A0T6
A0A0T7
A0A0T8
A0A0T9
A0A0U0
A0A0U1
A0A0U2
A0A0U3
A0A0U4
A0A0U5
A0A0U6
A0A0U7
A0A0U8
SEQUENCE_VALUE
A0A0U9
A0A0V0
A0A0V1
A0A0V2
A0A0V3
A0A0V4
A0A0V5
A0A0V6
A0A0V7
A0A0V8
A0A0V9
A0A0W0
A0A0W1
A0A0W2
A0A0W3
A0A0W4
A0A0W5
A0A0W6
A0A0W7
A0A0W8
A0A0W9
SEQUENCE_VALUE
A0A0X0
A0A0X1
A0A0X2
A0A0X3
A0A0X4
A0A0X5
A0A0X6
A0A0X7
A0A0X8
A0A0X9
A0A0Y0
A0A0Y1
A0A0Y2
A0A0Y3
A0A0Y4
A0A0Y5
A0A0Y6
A0A0Y7
A0A0Y8
A0A0Y9
A0A0Z0
SEQUENCE_VALUE
A0A0Z1
A0A0Z2
A0A0Z3
A0A0Z4
A0A0Z5
A0A0Z6
A0A0Z7
A0A0Z8
A0A0Z9
A0A1A0
A0A1A1
A0A1A2
A0A1A3
A0A1A4
A0A1A5
A0A1A6
A0A1A7
A0A1A8
A0A1A9
A0A1B0
A0A1B1
SEQUENCE_VALUE
A0A1B2
A0A1B3
A0A1B4
A0A1B5
A0A1B6
A0A1B7
A0A1B8
A0A1B9
A0A1C0
A0A1C1
A0A1C2
A0A1C3
A0A1C4
A0A1C5
A0A1C6
A0A1C7
A0A1C8
A0A1C9
A0A1D0
A0A1D1
A0A1D2
Z9Z9Z9
Message was edited by:
G.
Dont need to_number either -
af:outputText with escape="false" is corrupting html data
Dear Experts,
I am using <af:outputText> tag to display String on GUI as below:
<af:outputText value="#{<varWithHtmlTags>}" id="ot22" escape="false"/>
Here <varWithHtmlTags> is a string object with proper html tags. I am using escape="false" to render html tags in GUI.
Now problem is when value of <varWithHtmlTags> is in japaneese langauge. The display on GUI is getting corrupted ie it is coming ?????. When I make escape="true", display on GUI is coming fine but along with html tags however i want to display the String Text without html tags. We are using UTF-8 setting everywhere.
This is working fine for EN language.
Thanks
VineetThanks for responding.
sorry, I was out of station so i could not see your response.
String is being fetched from database. As i have mentioned, when escape="true" data is displayed fine. Data is corrupted when escape="false".
You can test it easily. just fetch any Japanese string data(keep data string in html tags) from database and try to display it on GUI with <af:outputText. check it with both options--escape="false" and escape="true".
waiting for your further response.
Regards
Vineet -
How to escape special xml characters in ALSB
Hi
Can some one tell me how to replace special xml characters < ,> with < and >
I have xml node like below
<payload>
<RatingDetails>
<Action>Add</Action>
</payload>
Using fn-bea:serialize i got xml string as
<payload><RatingDetails><Action>Add</Action></payload>
I want output as below
<payload><RatingDetails><Action>Add</Action></payload>
Appreciate your help
Thanks in Advancewhen i use fn-bea:serialize my request xml node converted to xml string.To that string i had escaped special xml characters.
Original request:
<abc>
<a1 >123</a1>
<payload>
<d>345</d>
<e><678></e>
</payload>
</abc>
After using serialize it became as below (everything in one line)
<abc><a1>123</a1><payload><d>345</d><e><678></e></payload></abc>
then i used java callout for replacing special xml chars in payload element,
now my request is
<abc><a1>123</a1><payload><![CDATA[& lt;d& gt;345& lt;/d& gt;& lt;e& gt;& lt;678& gt;& lt;/e& gt;]]></payload></abc>
i dont want my payload data to be enclosed within CDATA but by default i am getting it when i run my xquery for generating request.
This might be because & will not get parsed in xml parser so enclosing evrything in CDATA.
Need solution to remove CDATA and send the payload data as it is.. -
PCL escape command sequence on the printer
Hi All,
I have a Toshiba e-series printer that needs some customerization. The issue I have has to do with automatic feed i.e the printer uses "manually feed paper".
The toshiba printer driver for SAP says..."Input Tray Selection
No PJL control is available, so it should be implemented using PCL escape command sequence.
*Automatic <esc>&l17H*
*Drawer 1 <esc>&l01H*
*Drawer 2 <esc>&l4H*
*LCF <esc>&l5H*
*Drawer 3 <esc>&l5H*
*Drawer 4 <esc>&l21H*
**Bypass Tray <esc>&l2H** "
I dont know how/where this PCL would be changed. Can you assist please?I'm pretty sure this needs to be changed in the printer initialization string of the SAP device type for each format. Here's how:
SPAD - Full Admin
Device Type tab - enter in your device type
Click the implemented formats (F6)
Go into Change mode
Double click a format
Double click printer initialization
This is the code you need to alter.
Try to find the section for PCL.01. You may see a string like your examples but commented out (# in front of it). Uncomment and change to the desired command. Normally all need to change are the characters between the & and the H.
PM1K -
SSRS and data from SharePoint lists - special characters in HTML
Hi All,
This may not actually fit into this forum, but here goes anyway...
We're using SSRS to report on data stored in Project Server workspaces (so SharePoint lists). Prior to upgrading to 2013, we could pull this data in and set the "Placeholder properties" of the text box to interpret HTML tags as styles and it would
format everything as it appeared in the SharePoint list. Now that we have upgraded to 2013, this works with a few notable exceptions - some special characters are rendered as their escaped/encoded (whatever the term is) - so a colon which is within the text
field in SharePoint, rather than appearing in the SSRS report as ":" appears as ":".
These are multiline, rich text formatted columns in the SharePoint list. Using =Replace(Fields!Description.Value,":",":") in the report makes the appropriate replacement, but given that this occurs with a handful of other special
characters as well, this solution becomes very unruley very quickly. Has anyone else encountered this, or does anyone have any other suggestions for a work around?
If not now, when?Facing same issue but having no solution, please suggest..
-
How to escape special characters in a region title
I have created a drill down report where the second report is filtered by a value chosen in the first report. I am using &Pn_field. syntax to pass the name of the select value to the region title of the second report. Some of the returned values have a ':' in them and therefore the text does not print after the ':'. How do I escape the ':' in the region title?
regards
Paul PPaul,
I think your question is "How do I use f?p URL syntax to pass data values to a page where the data includes a colon?" (Please correct me if that's not the issue.) The answer is, you can't. Same with commas. HTML DB reserves those two characters for the f?p request syntax. You'll have to save the string into the item before the page branch. There is no restriction on what characters can be used in a region title, it's just HTML-formatted text, except that you must escape anything that looks like HTML unless you want the browser to treat it as HTML. There are restrictions, however, on what characters you can pass in URLs in general and you must take care to escape them properly, e.g., ?, &, whitespace.
And do speak up if I've missed the point.
Scott -
How to escape special characters in Simple Transformation
Hi Experts,
I have got a problem to get a well formed xml document from the below simple transformation. The content of maktx contains
special characters like & <, which are not allowed in a well formed XML-Document. But the result of the Simple Transformation
contains this charcters even after the transformation as you can the in the result below. Has anyone a hint how to escape the
characters included in the maktx.
The transformation for maktx, should be something like
Before: Material & < TEST
After: Material & < TEST
Report wihich calls the simple transformation
types:
BEGIN OF t_mat,
matnr type matnr,
maktx type maktx,
end of t_mat.
Data:
mat type t_mat,
xml_stream type xstring.
START-OF-SELECTION.
mat-matnr = '4711'.
mat-maktx = 'Material & < Test'.
CALL TRANSFORMATION ztest_st2
SOURCE mat = mat
RESULT XML xml_stream.
CALL FUNCTION 'DISPLAY_XML_STRING'
EXPORTING xml_string = xml_stream.
Simple Transformation
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="MAT"/>
<tt:template>
<Leistungsschild>
<CHARACT> MATNR </CHARACT>
<CHARACT_DESCR> Materialnummer </CHARACT_DESCR>
<VALUE tt:value-ref="MAT.MATNR"/>
<CHARACT> MAKTX </CHARACT>
<CHARACT_DESCR> Materialkurztext </CHARACT_DESCR>
<VALUE tt:value-ref="MAT.MAKTX" />
</Leistungsschild>
</tt:template>
</tt:transform>
RESULT
<?xml version="1.0" encoding="utf-8" ?>
<Leistungsschild>
<CHARACT>MATNR</CHARACT>
<CHARACT_DESCR>Materialnummer</CHARACT_DESCR>
<VALUE>4711</VALUE>
<CHARACT>MAKTX</CHARACT>
<CHARACT_DESCR>Materialkurztext</CHARACT_DESCR>
<VALUE>Material & < Test</VALUE> </Leistungsschild>Hi Sandra,
First of all thaks for your quick answer to my problem.
I see what you mean and get the same result, if I am using data-type string instead of xstring. But the recommendation in the XML-Books of SAP is to use XSTRING to save memory and circumflex problems between Codepages, when writing the XML-Stream to a filesystem.
As you can see in the code abvoe I am using a SAP-FM to display the XML-Stream and this FM works only with XSTRING´s,
that is one reason why I don´t understand that it displays it in the wrong way.
Even the Debugger shows me for the XSTRING the wrong result. Does all that mean that the escaping will not be applyed if you are working with XSTING´s?? -
Dynamic Images in PDF and Escaping Special Characters
I used the following to create my own PDFs with dymnamic images:
http://marcsewtz.blogspot.com/2012_02_01_archive.html (Dynamic Images in PDF - What 32k Limit? )
I have installed this application on Oracle's free workspace to test.
The issue I am having is that when there is a special character in the description, such as <>'"& then the the PDF will not open. I have tried using the dmbs_xmlgen.convert to convert the description but haven't had any luck.
I'm a complete novice with xml. Any help with this is greatly appreciated.
Thanks,
GlenI have been able to find a solution, but it's not completely perfect. I have changed the "description" field as follows:
XMLCdata(replace(description,''&'',''and'')) description,
The characters greater than (>), less than (<), single qoute('), and double quote (") can now all be in the description and will not cause errors. For some reason, I couldn't get the & not to give an error no matter what I tried, so I just replaced the & with the word "and". This solution will work for my needs, but it would be nice to be able to get the & to display.
Does anyone know of a way to get the & to display correctly?
Thanks again,
Glen
The complete code I am using is below:
declare
l_print_layout clob;
l_xml_data clob;
begin
-- load print layout from database
for c1 in (
select layout from eba_pdfimg_layouts where id = :P1_LAYOUT
) loop
l_print_layout := wwv_flow_utilities.blob_to_clob(c1.layout );
end loop;
-- generate XML data
for c2 in (
select dbms_xmlgen.getxml('
select
id,
file_name,
mime_type,
XMLCdata(replace(description,''&'',''and'')) description,
-- description,
blob2clobase64(image,''Y'') image
from eba_pdfimg_images
') xml_data from dual
) loop
l_xml_data := c2.xml_data;
end loop;
-- download print document
wwv_flow.g_page_text_generated := true;
apex_util.download_print_document (
p_file_name => 'image_demo',
p_content_disposition => 'ATTACHMENT',
p_report_data => l_xml_data ,
p_report_layout => l_print_layout,
p_report_layout_type => 'rtf',
p_document_format => :P1_FORMAT
end; -
Missing Browse Sequences in HTML Help
Problem
Browse sequences in our Microsoft HTML help (.CHMs) are missing after we upgraded from RoboHelp x5 (running WinXP Pro) to RoboHelp 9 (running Win7, 64-bit).
Background
We've been using RoboHelp x5 and RoboSource Control 2.3 version control for several years. Prior to 2012, our RoboSource Control server machine was a WinXP Pro VM session, while our 3 RoboHelp/RoboSource Control client (author) machines were physical WinXP Pro machines.
After the first of this year, our 3 client machines were replaced with Windows 7 Enterprise, 64-bit physical machines. In order to continue running RoboHelp x5, we created a Windows XP Pro virtual machine on each client machine; Robohelp x5 and the RoboSource Control 2.3 client software were then installed and run from the WinXP VM environment. Browse sequences were included in the many (at least 4 per month) CHMs that we compiled/generated during the several months that we ran in this environment without any issues.
We just (over the past few weeks) upgraded to Adobe's Technical Communication Suite 3.5 (RoboHelp HTML 9 and RoboSource Control 3.1). A new Windows 7 Enterprise, 64-bit VM was created for the RoboSource Control server installation, and we simply installed the RoboHelp 9 and RoboSource Control 3.1 client software directly on our 3 Windows 7 client machines. We did not remove the VM sessions from the client machines, but we don't run them either.
Since we upgraded RoboHelp to version 9 (which is also to say, started running RoboHelp in a true Windows 7 64-bit environment), none of our browse sequences appear when we compile/generate a .CHM in RoboHelp 9 and then launch the .CHM from anywhere OTHER THAN within the RoboHelp HTML application. If we launch the Help from within RoboHelp, using either the Generate Primary Layout function (and then view result) or the View Primary Layout function (HTML Help is our primary layout), the browse sequences appear and function properly.
I've already researched (including this forum and all the previous posts on this issue) and run tests, attempting to identify the cause and/or resolve the issue. The actual tests and results are listed after the next section (which provides technical details on what I believed to be the critical aspects of this issue within our environment; perhaps someone will spot something regarding the version of the HHActiveX.dll or a path/value for one of the registry settings).
Environment Technical Details
RoboHelp 9/RoboSource Control 3.1 Server
OS: Windows 7 Enterprise, 64-bit, SP1
RoboHelp Programs:
MS SQL Server Express 2005
RoboSource Control 3.1 Server and Client
RoboHelp HTML 9.0.2.271
Note: RoboSource Control 2.3 was installed on this machine at one point, in an attempt to perform the database migration, but it was subsequently uninstalled and the migration was performed on our old Windows XP RoboSource Control 2.3 server machine. No other version of RoboHelp has ever been installed on this machine.
HHActiveX.dll: Here are all the instances of HHActiveX.dll on this machine.
C:\Program Files\(x86)\Adobe\Adobe RoboHelp 9\RoboHTML
File version: 9.0.1.262
Product name: Adobe RoboHelp HTML 9
Product version: 9.0.1.262
File size: 759 KB
Date modified: 6/22/2011 4:45 PM
C:\Program Files\(x86)\Adobe\Adobe RoboHelp 9\Redist
File version: 9.0.1.262
Product name: Adobe RoboHelp HTML 9
Product version: 9.0.1.262
File size: 759 KB
Date modified: 6/22/2011 4:23 PM
C:\Program Files\(x86)\Adobe\Adobe RoboHelp 9\Redist\x64
File version: 9.0.1.262
Product name: Adobe RoboHelp HTML 9
Product version: 9.0.1.262
File size: 1.11 MB
Date modified: 6/22/2011 4:23 PM
Registry References to HHActiveX.dll:
HKEY_CLASSES_ROOT\TypeLib\{399CB6B4-7312-11D2-B4D9-00105A0422DF}\1.0\0\win32C:\Program Files (x86)\Adobe\Adobe RoboHelp 9\RoboHTML\HHActiveX.dll
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{399CB6C4-7312-11D2-B4D9-00105A0422DF}\InprocServer32C:\Program Files (x86)\Adobe\Adobe RoboHelp 9\RoboHTML\HHActiveX.dll
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{399CB6C4-7312-11D2-B4D9-00105A0422DF}\ToolboxBitmap32C:\Program Files (x86)\Adobe\Adobe RoboHelp 9\RoboHTML\HHActiveX.dll, 102
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{959F94FD-DD1E-11D2-B559-00105A0422DF}\InprocServer32C:\Program Files (x86)\Adobe\Adobe RoboHelp 9\RoboHTML\HHActiveX.dll
HKEY_CLASSES_ROOT\Wow6432Node\TypeLib\{399CB6B4-7312-11D2-B4D9-00105A0422DF}\1.0\0\win32C:\Program Files (x86)\Adobe\Adobe RoboHelp 9\RoboHTML\HHActiveX.dll
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRUregsvr32 C:\Program Files (x86)\Adobe\Adobe RoboHelp9\Redist HHActiveX.dll\1
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{399CB6B4-7312-11D2-B4D9-00105A0422DF}\1.0\0\w in32C:\Program Files (x86)\Adobe\Adobe RoboHelp 9\RoboHTML\HHActiveX.dll
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{399CB6C4-7312-11D2-B4D9-00105A0422D F}\InprocServer32C:\Program Files (x86)\Adobe\Adobe RoboHelp 9\RoboHTML\HHActiveX.dll
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{399CB6C4-7312-11D2-B4D9-00105A0422D F}\ToolboxBitmap32C:\Program Files (x86)\Adobe\Adobe RoboHelp 9\RoboHTML\HHActiveX.dll, 102
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{959F94FD-DD1E-11D2-B559-00105A0422D F}\InprocServer32C:\Program Files (x86)\Adobe\Adobe RoboHelp 9\RoboHTML\HHActiveX.dll
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\TypeLib\{399CB6B4-7312-11D2-B4D9-00105A042 2DF}\1.0\0\win32C:\Program Files (x86)\Adobe\Adobe RoboHelp 9\RoboHTML\HHActiveX.dll
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{399CB6C4-7312-11D2-B4D9-00105A0422D F}\InprocServer32C:\Program Files (x86)\Adobe\Adobe RoboHelp 9\RoboHTML\HHActiveX.dll
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{399CB6C4-7312-11D2-B4D9-00105A0422D F}\ToolboxBitmap32C:\Program Files (x86)\Adobe\Adobe RoboHelp 9\RoboHTML\HHActiveX.dll, 102
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{959F94FD-DD1E-11D2-B559-00105A0422D F}\InprocServer32C:\Program Files (x86)\Adobe\Adobe RoboHelp 9\RoboHTML\HHActiveX.dll
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\TypeLib\{399CB6B4-7312-11D2-B4D9-00105A042 2DF}\1.0\0\win32C:\Program Files (x86)\Adobe\Adobe RoboHelp 9\RoboHTML\HHActiveX.dll
HKEY_USERS\S-1-5-21-2146773085-1508210334-1857977687-1551\Software\Microsoft\Windows\Curre ntVersion\Explorer\RunMRUregsvr32 C:\Program Files (x86)\Adobe\Adobe RoboHelp9\Redist HHActiveX.dll\1
HH.exe: Here are all the instances of HH.exe on this machine.
C:\Windows
File version: 6.1.7600.16385
Product name: HTML Help
Product version: 6.1.7600.16385
File size: 16.5 KB
Date modified: 7/13/2009 9:39 PM
C:\Windows\SysWOW64
File version: 6.1.7600.16385
Product name: HTML Help
Product version: 6.1.7600.16385
File size: 15.0 KB
Date modified: 7/13/2009 9:14 PM
C:\Windows\winsxs\amd64_microsoft-windows-htmlhelp_31bf3856ad364e35_6.1.7600.16385_none_24 4ae8599e6d81bb
File version: 6.1.7600.16385
Product name: HTML Help
Product version: 6.1.7600.16385
File size: 16.5 KB
Date modified: 7/13/2009 9:14 PM
C:\Windows\winsxs\wow64_microsoft-windows-htmlhelp_31bf3856ad364e35_6.1.7600.16385_none_2e 9f92abd2ce43b6
File version: 6.1.7600.16385
Product name: HTML Help
Product version: 6.1.7600.16385
File size: 15.0 KB
Date modified: 7/13/2009 9:14 PM
Registry References to HH.exe:
HKEY_CLASSES_ROOT\Applications\hh.exe
HKEY_CLASSES_ROOT\chm.file\DefaultIcon%SystemRoot%\hh.exe,0
HKEY_CLASSES_ROOT\chm.file\shell\open\command"%SystemRoot%\hh.exe" %1
HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCacheC:\Windows\hh.exeMicrosoft® HTML Help Executable
HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCacheC:\Windows\hh.exeMicrosoft® HTML Help Executable
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
C:\Windows\SysWOW64\HH.exe C:\Documents\DSISWHelp\DSISWHelp.chm\1
C:\Windows\HH.exe C:\Documents\DSISWHelp\DSISWHelp.chm\1
C:\Windows\winsxs\amd64_microsoft-windows-htmlhelp_31bf3856ad364e35_6.1.7600.16385_none_24 4ae8599e6d81bb\HH.exe C:\Documents\DSISWHelp\DSISWHelp.chm\1
C:\Windows\winsxs\wow64_microsoft-windows-htmlhelp_31bf3856ad364e35_6.1.7600.16385_none_2e 9f92abd2ce43b6\HH.exe C:\Documents\DSISWHelp\DSISWHelp.chm\1
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\hh.exe
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\chm.file\DefaultIcon%SystemRoot%\hh.exe,0
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\chm.file\shell\open\command"%SystemRoot%\hh.exe" %1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\MostRecentApplicationhh.exe
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileAssociationRUNDLL32.EXE;MSHTA.EXE;DLLHOST.EXE;APPLAUNCH.EXE;HH.EXE;WINHLP32.EXE;MMC.EXE;
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\FileAsso ciationRUNDLL32.EXE;MSHTA.EXE;DLLHOST.EXE;APPLAUNCH.EXE;HH.EXE;WINHLP32.EXE;MMC.EXE;
HKEY_USERS\S-1-5-21-2146773085-1508210334-1857977687-1551\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCacheC:\Windows\hh.exeMicrosoft® HTML Help Executable
HKEY_USERS\S-1-5-21-2146773085-1508210334-1857977687-1551\Software\Microsoft\Windows\Curre ntVersion\Explorer\RunMRUC:\Windows\SysWOW64\HH.exe C:\Documents\DSISWHelp\DSISWHelp.chm\1
HKEY_USERS\S-1-5-21-2146773085-1508210334-1857977687-1551_Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCacheC:\Windows\hh.exeMicrosoft® HTML Help Executable
RoboHelp 9/RoboSource Control 3.1 Client Machines
OS: Windows 7 Enterprise, 64-bit, SP1
RoboHelp Programs:
RoboSource Control 3.1 Client
RoboHelp HTML 9.0.2.271
HHActiveX.dll: Here are all the instances of HHActiveX.dll on these machines.
C:\Program Files (x86)\Adobe\Adobe RoboHelp 9\Redist
File version: 9.0.1.262
Product name: Adobe RoboHelp HTML 9
Product version: 9.0.1.262
File size: 759 KB
Date modified: 6/22/2011 4:23 PM
C:\Program Files(x86)\Adobe\Adobe RoboHelp 9\Redist\x64
File version: 9.0.1.262
Product name: Adobe RoboHelp HTML 9
Product version: 9.0.1.262
File size: 1.11 MB
Date modified: 6/22/2011 4:23 PM
C:\Program Files (x86)\Adobe\Adobe RoboHelp 9\RoboHTML
File version: 9.0.1.262
Product name: Adobe RoboHelp HTML 9
Product version: 9.0.1.262
File size: 759 KB
Date modified: 6/22/2011 4:45 PM
C:\Windows\System32
File version: 11.0.228.0
Product name: RoboHelp HTML 11
Product version: 11.0.228.0
File size: 452 KB
Date modified: 11/18/2003 2:44 PM
C:\Windows\SysWOW64
File version: 11.0.228.0
Product name: RoboHelp HTML 11
Product version: 11.0.228.0
File size: 452 KB
Date modified: 11/18/2003 2:44 PM
HH.exe: Here are all the instances of HH.exe on this machine.
C:\Windows
File version: 6.1.7600.16385
Product name: HTML Help
Product version: 6.1.7600.16385
File size: 16.5 KB
Date modified: 7/13/2009 9:39 PM
C:\Windows\SysWOW64
File version: 6.1.7600.16385
Product name: HTML Help
Product version: 6.1.7600.16385
File size: 15.0 KB
Date modified: 7/13/2009 9:14 PM
C:\Windows\winsxs\amd64_microsoft-windows-htmlhelp_31bf3856ad364e35_6.1.7600.16385_none_24 4ae8599e6d81bb
File version: 6.1.7600.16385
Product name: HTML Help
Product version: 6.1.7600.16385
File size: 16.5 KB
Date modified: 7/13/2009 9:39 PM
C:\Windows\winsxs\wow64_microsoft-windows-htmlhelp_31bf3856ad364e35_6.1.7600.16385_none_2e 9f92abd2ce43b6
File version: 6.1.7600.16385
Product name: HTML Help
Product version: 6.1.7600.16385
File size: 15.0 KB
Date modified: 7/13/2009 9:14 PM
Registry References to HHActiveX.dll:
HKEY_CLASSES_ROOT\TypeLib\{399CB6B4-7312-11D2-B4D9-00105A0422DF}\1.0\0\win32C:\Documents\DSISWHelp\hhactivex.dll
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{399CB6C4-7312-11D2-B4D9-00105A0422DF}\InprocServer32C:\Documents\DSISWHelp\hhactivex.dll
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{399CB6C4-7312-11D2-B4D9-00105A0422DF}\ToolboxBitmap32C:\Documents\DSISWHelp\hhactivex.dll, 102
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{959F94FD-DD1E-11D2-B559-00105A0422DF}\InprocServer32C:\Documents\DSISWHelp\hhactivex.dll
HKEY_CLASSES_ROOT\Wow6432Node\TypeLib\{399CB6B4-7312-11D2-B4D9-00105A0422DF}\1.0\0\win32C:\Documents\DSISWHelp\hhactivex.dll
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRUregsvr32 C:\Documents\DSISWHelp\hhactivex.dll\1
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{399CB6B4-7312-11D2-B4D9-00105A0422DF}\1.0\0\w in32C:\Documents\DSISWHelp\hhactivex.dll
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{399CB6C4-7312-11D2-B4D9-00105A0422D F}\InprocServer32C:\Documents\DSISWHelp\hhactivex.dll
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{399CB6C4-7312-11D2-B4D9-00105A0422D F}\ToolboxBitmap32C:\Documents\DSISWHelp\hhactivex.dll, 102
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{959F94FD-DD1E-11D2-B559-00105A0422D F}\InprocServer32C:\Documents\DSISWHelp\hhactivex.dll
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\TypeLib\{399CB6B4-7312-11D2-B4D9-00105A042 2DF}\1.0\0\win32C:\Documents\DSISWHelp\hhactivex.dll
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{399CB6C4-7312-11D2-B4D9-00105A0422D F}\InprocServer32C:\Documents\DSISWHelp\hhactivex.dll
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{399CB6C4-7312-11D2-B4D9-00105A0422D F}\ToolboxBitmap32C:\Documents\DSISWHelp\hhactivex.dll, 102
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{959F94FD-DD1E-11D2-B559-00105A0422D F}\InprocServer32C:\Documents\DSISWHelp\hhactivex.dll
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\TypeLib\{399CB6B4-7312-11D2-B4D9-00105A042 2DF}\1.0\0\win32C:\Documents\DSISWHelp\hhactivex.dll
HKEY_USERS\S-1-5-21-2146773085-1508210334-1857977687-1551\Software\Microsoft\Windows\Curre ntVersion\Explorer\RunMRUregsvr32 C:\Documents\DSISWHelp\hhactivex.dll\1
RoboHelp x5 and RoboSource Control 2.3 Server
OS: Windows XP Professional, SP3
RoboHelp Programs:
RoboSource Control 2.3 Server and Client
RoboHelp HTML x5.0.2 (Build 606)
Note: MS SQL Server and RoboSource Control 3.1 were temporarily installed in order to convert the databases from RoboSource Control 2.3 to RoboSource Control 3.1.
HHActiveX.dll: Here are all the instances of HHActiveX.dll on these machines.
C:\Program Files\RoboHelp Office\Redist
File version: 13.10.801.0
Product name: RoboHelp HTML 13
Product version: 13.10.801
File size: 460 KB
Date modified: 11/4/2004 10:54:04 AM
C:\Program Files\RoboHelp Office\RoboHELP
File version: 13.10.801.0
Product name: RoboHelp HTML 13
Product version: 13.10.801
File size: 460 KB
Date modified: 11/4/2004 10:54:04 AM
C:\Program Files\RoboHelp Office\RoboHTML
File version: 13.10.801.0
Product name: RoboHelp HTML 13
Product version: 13.10.801
File size: 460 KB
Date modified: 11/4/2004 10:54:04 AM
HH.exe: Here are all the instances of HH.exe on this machine.
C:\WINDOWS
File version: 5.2.3790.2453
Product name: HTML Help
Product version: 5.2.3790.2453
File size: 10.5 KB
Date modified: 4/14/2008 5:42:22 AM
C:\WINDOWS\ServicePackFiles\i386
File version: 5.2.3790.2453
Product name: HTML Help
Product version: 5.2.3790.2453
File size: 10.5 KB
Date modified: 4/14/2008 5:42:22 AM
Troubleshooting Tests and Results
Test 1: Ran command line: C:\Windows\SysWOW64\HH.exe C:\Documents\DSISWHelp\DSISWHelp.chm
Result: Browse sequences PRESENT.
Test 2: Ran command line: C:\Windows\HH.exe C:\Documents\DSISWHelp\DSISWHelp.chm
Result: Browse sequences ABSENT.
Test 3: Ran command line: C:\Windows\winsxs\amd64_microsoft-windows-htmlhelp_31bf3856ad364e35_6.1.7600.16385_none_24 4ae8599e6d81bb\HH.exe C:\Documents\DSISWHelp\DSISWHelp.chm
Result: Browse sequences ABSENT.
Test 4: Ran command line: C:\Windows\winsxs\wow64_microsoft-windows-htmlhelp_31bf3856ad364e35_6.1.7600.16385_none_2e 9f92abd2ce43b6\HH.exe C:\Documents\DSISWHelp\DSISWHelp.chm
Result: Browse sequences PRESENT.
Test 5: Deleted HHP, CPD, and created new HTML Help SSL definition. Opened project, compiled with new SSL, opened CHM from Windows Explorer via double-click.
Result: Browse sequences ABSENT.
Test 6: RoboHelp install again. Didn't see any "repair" options, so I ran the install over the existing one. Then deleted HHP, CPD, and created new HTML SSL definition. Compiled. Opened the CHM from Windows Explorer via double-click.
Result: Browse sequences ABSENT.
Test 7: Edited the browse sequences to see if that would trigger or set a flag. Note: I already compared the "flags" (it's actually a number sequence) in the RHwnd.apj file (via Notepad) to the "flags" in the RHwnd.apj file. While I don't know which one represents browse sequence enabling, the number sequences were identical. Note: I compared RHwnd.apj files pre- and post-Browse Sequence enabling (with no other changes), but the flag values were completely different (it's not a simple 0/1 flag).
Result: N/A
Test 8: I copied older CHMs that were generated/compiled in RoboHelp x5 over to my local, Window 7 Enterprise, 64-bit, SP1, machine. Launched the CHMs from Windows Explorer by double-clicking on them.
Result: Browse sequences ABSENT.
Test 9: I browsed over our network (via Windows Explorer) to our old RoboHelp x5/RoboSource Control 2.3 server, and launched older CHMs that were generated/compiled in RoboHelp x5 and still sitting on that machine, by double-clicking on them.
Result: Browse sequences ABSENT.
Test 10: I logged on (via RDS) to our old RoboHelp x5/RoboSource Control 2.3 server (WinXP), and launched older CHMs that were created (and never upgraded) in RHx5 by double-clicking on them.
Result: Browse sequences PRESENT.
Test 11: I logged on (via RDS) to our old RoboHelp x5/RoboSource Control 2.3 server (WinXP), opened Windows Explorer on that machine, browsed over the network to our new RoboHelp 9/RoboSource Control 3.1 server (Win7), and then launched new CHMs that were generated/compiled in RoboHelp 9 by double-clicking on them.
Result: Browse sequences ABSENT.
Test 12: I logged on (via RDS) to our older RoboHelp x5/RoboSource Control 2.3 server (WinXP), copied CHMs that were generated/compiled on our new RoboHelp 9/RoboSource Control 3.1 server (Win7) in RoboHelp 9 over to the WinXP machine, and then launched them by double-clicking on them.
Result: Browse sequences ABSENT.
CONCLUSIONS
The machine you are logged on to matters more than where the CHM resides (that is, locally or on another networked machine), or even the version of RoboHelp that it was compiled/generated in (although as my next conclusion states, this last one does appear to matter).
Supporting evidence: CHMs that were compiled/generated in RoboHelp x5 only display browse sequences when they are launched (via double-click) locally from a WinXP machine. Browse sequences are absent when they're launched from a Win7 machine.
The version of RoboHelp that the CHM was compiled in matters.
Supporting evidence: Browse sequences in RoboHelp 9 generated/compiled CHMs do not appear, even when the CHMs reside on a WinXP machine. Is HHActiveX.dll somehow incorporated into the generate/compile process?
Either HH.exe or HHActiveX.dll, or both, matter.
Supporting evidence: Browse sequences appear in RoboHelp 9 generated/compiled CHMs on a Win7 machine when I launch the CHM from a command line, specifying which HH.exe to use.
Is this a function of the HH.exe (there are multiple instances of HH.exe on my Win7 machine, but the command line solution doesn't work for all of them; plus, each files seems to be identical/the same version), or
is it a function of HHActiveX.dll (does HHActiveX.dll registration control which HH.exe works, which would explain why some of HH.exe's don't work from a command line; the assumption here, then, is that when I double-click a CHM, the default HH.exe that is used isn't the one that's registered)?Hello again
Hopefully Colum won't mind my offering a few answers here and there,
RoboFan wrote:
Thanks for the response, Rick. I appreciate the feedback.
A few follow-up questions...
Can you confirm that neither the version of HH.exe, nor its file path matter?
Unsure what you mean by the version of HH.exe mattering. If you double-click a CHM file on a 64 bit Windows system, it appears that it automatically opens the 64 bit version of HH.exe. Short of having an installation routine of some sort that reconfigures the operating system to open the 32 bit version instead, I can't fathom a way that you would be able to influnce the behavior. Obviously, application developers are able to force this choice. I say that because after you compile and choose to View Result, RoboHelp opens the 32 bit version of the CHM viewer. Now whether this is behavior that is designed by the application developer or whether it's standard Windows behavior with RoboHelp being a 32 bit application is beyond me. Only Adobe can really say for sure what is going on.
How do I identify/verify that an instance of HHActiveX.dll is the 32-bit version?
How do I identify/verify that an instance of HHActiveX.dll is the 64-bit version?
I'm not sure there is a way. At least I'm not knowing a way. I think the best you can do is supply both versions and tell your installation team to register both. Then it shouldn't matter, no?
Where can I obtain the 64-bit version of HHActiveX.dll?Based on my research, it appears that C:\Program Files (x86)\Adobe\Adobe RoboHelp 9\Redist on our 64-bit machines would be one such location. Can you verify this?
I think Colum answered that.
Where should the 64-bit version of HHActiveX.dll that I subsequently register, reside (i.e., file path)?
Wherever you (or more precisely your installation team) decide to place it.
Likely you will think that answer is a bit snarky. But it's not intended to be that way. I'm just being honest. That's why you have to register it with Windows. The process of registering the DLL tells Windows where it is and how to work with it.
Should I replace all 32-bit instances of HHActiveX.dll on our 64-bit machines?
I've never encountered a need to replace versions. But again, likely only Adobe can answer that one with a straight face.
Assume I successfully register the 64-bit version of HHActiveX.dll. If our primary layout in RoboHelp HTML is HTML Help and I invoke the Generate Primary Layout function (and view result) or View Primary Layout function in RoboHelp HTML (i.e., I launch a .CHM from within RoboHelp HTML), will RoboHelp HTML re-register the 32-bit version of HHActiveX.dll? And if this is the case, does that mean I'll have to go back and re-register the 64-bit version each time I use either of those functions?
Launching the file does nothing to register the dll. That's why there is a separate process. The act of registering should be a one off. I believe what happens is that the Windows Registry is modified with information that HH.exe (64 bit or 32 bit) uses to determine what to do with the dll(s). Again, I'm not an application developer nor did I stay at a Holiday Inn Express last night so I can't claim to be one.
I believe that once you get both dlls properly registered, it won't matter if you launch the 64 bit or the 32 bit version of HH.exe. The Browse Sequence window should then show. (Incidentally, the same dll also manages behavior of the Glossary tab functionality in a CHM)
What happens in a mixed (32-bit/64-bit) environment?
Our in-house network contains a mix of 32-bit and 64-bit machines.
We post a .CHM (with browse sequences) to a standalone PC (no RoboHelp applications are installed on this particular PC) on our in-house network.
All the 32-bit and 64-bit machines on the network can access this single .CHM file via a shortcut.
Does the existence and registration of HHActiveX.dll matter for just the PC hosting the .CHM, just the PCs accessing the .CHM, or all PCs? And which versions of HHActiveX.dll need to be registered for which machines?
Yeah, good luck with that. Years ago, Microsoft modified the behavior of CHM content to disallow working that way. CHMs are intended to be copied to *EACH PC* using it. There are ways to modify the Windows Registry to allow CHM to still work that way, but it's something your IT staff have to manage. And by modifying things to allow it, you have to relax security and that makes a machine more vulnerable to attacks down the road. Years later, Peter Grainge still reports that his page on this is still among the most often visited. Click here to visit Peter's page.
Hope I managed to satisfactorily answer your "few" other questions. I tried... LOL
Cheers... Rick
Helpful and Handy Links
RoboHelp Wish Form/Bug Reporting Form
Begin learning RoboHelp HTML 7, 8 or 9 within the day!
Adobe Certified RoboHelp HTML Training
SorcerStone Blog
RoboHelp eBooks -
Strategies for escaping special characters.
Hi all,
Our app(built using Workshop) needs to have a generic way of scrubbing special
characters that a user might enter in the UI,and which might cause our sql that
queries the DB to become malformed. To explain further,some of our DB controls
are not using PreparedStatements to set Strings..instead, we are constructing
the sql as a java string like:
String myQuery="Select * from * where TOUPPER(name) like"+param.ToUpperCase().
and then we do:
Statement stmt=conn.createStatement();
stmt.executeQuery(myQuery).
In such cases, Oracle JDBC driver does not escape any special chars in the String
param,and fails.Other than converting all our queries to use PreparedStatements,
is there a generic pattern/Util class(mebbe RequestUtils) or some way of using
the Servlet Filter API to scrub out any special chars that are input by the user?
Thanks in advance.
Vik.ServletFilter is the way to go on this one. Don't think there is anything built
into Servlet spec that handles these characters, however, there are a number of
sample filters that do such a task. I think there is a sample in either the O'Reilly
book on Servlets or Core Servlets.
"Vik" <[email protected]> wrote:
>
Hi all,
Our app(built using Workshop) needs to have a generic way of scrubbing
special
characters that a user might enter in the UI,and which might cause our
sql that
queries the DB to become malformed. To explain further,some of our DB
controls
are not using PreparedStatements to set Strings..instead, we are constructing
the sql as a java string like:
String myQuery="Select * from * where TOUPPER(name) like"+param.ToUpperCase().
and then we do:
Statement stmt=conn.createStatement();
stmt.executeQuery(myQuery).
In such cases, Oracle JDBC driver does not escape any special chars in
the String
param,and fails.Other than converting all our queries to use PreparedStatements,
is there a generic pattern/Util class(mebbe RequestUtils) or some way
of using
the Servlet Filter API to scrub out any special chars that are input
by the user?
Thanks in advance.
Vik. -
Environment:
Client: win2k sp4, 10.2 client
Server: 9.2 on solaris 9
Is there any way to set an escape character?
Many times we have '&' characters in strings in procedures, and when I try to compile them sqldeveloper prompts for a value thinking that it is a variable.
I've tried the default '\', and 'set escape on' doesn't work either.
Would be even better if there was an option in sqldeveloper to tell it to ignore the '&' character alltogether.
Thanks.not really the answer I was looking for :(
the devs would end up driving me nuts wondering what all the CHR stuff is in their code.
i guess for now, i'll just keep using PLedit to compile all the procs that have any special chars.
...someday we'll have one tool that does everything ;) -
Escaping special characters in hidden fields
I am using a hidden field to pass values to the servlet. I am populating the hidden field from a bean. The hidden field can have any string value. My problem is that the value attribute on my hidden field is double quoted and if there is a double quote in the value of the String from my bean it messes my HTML up. Is there an easy workaround for this?
e.g.
<jsp:useBean id="myObject" scope="request" class="MyObject"/>
<input type="hidden" name="myValue" value="<%=myObject.getValue()%>">
If myObject.getValue() returns a string: 60" Mower this will mess my HTML up.
Any suggestions?First off, Is the Pattern and Matcher specific to JDK 1.4.1? We are currently using 1.2.2? If this is a viable solution, is there a similar one in JDK 1.2.2?
Also, I still don't think it's possible in HTML to escape characters that are values of attributes. Try running the following HTML code:
<html>
<head>
<script language="JavaScript">
function getHiddenValue(){
alert(document.myForm.hiddenDescription.value);
</script>
</head>
<body>
<form name="myForm">
<p>
<input type="hidden" name="hiddenDescription" value="60\" Mower">
</p>
<p>
<input type="button" onclick="getHiddenValue()" value="Hidden Field">
</p>
</form>
</body>
</html>
Maybe you are looking for
-
"Unknown Error" (-50) The disk could not be read from or written to
My iPod Nano syncs fine, but I have never been able to change a setting without getting the above error dialogs ("Unknown Error (-50)" and "The disk could not be read from or written to") Does anyone know what's up?
-
I cant connect my n900 to wifi
plz all .. help me wth this problem .. i cant connect my device with wireless connection ...
-
Hi Gurus, Please could you help clarify / confirm : 1. Shipping point and Loading Point : I know the definitions but unclear about the assignment part. Am I right to say - Shipping point is Not Assigned to Loading Point. assignment not applicable
-
How to deregister PORTLET PRODUCER manually?
I had an error during deregister my portlet producer, so now it is not in my project, but somehow local oc4j knows about it. When I try to start executing my project, my explorer's page tells: mdsId=/oracle/adf/portlet/TutorialProducer_1176222275748/
-
Press Right Shift key using Robot
Hi, I'm developing a small tool in Java where i need to simulate all keys of the Keyboard using Java Robot. But, I could not find a way to simulate some Keys like "Right Shift" or "Right Alt" or "Right Control" etc..By default Robot simulates Left Sh