quotes in text field on java server pages and sql
I am french.
Hi all,
I have a memo field in Ultradev (and some text fields) that are inserted into an Filemaker database when the form is submitted.... nothing too exciting, but, i now have to be able to have apostrophes in the text & memo fields. When i have an apostrophe in the field, my application Server (JRUN 3.1) an error occurs - the apostrophe indicates the end of the string to submit to the database. When i don't print apostrophes in the text field, everything is ok.
Please try to help me as soon as possible
Thanks, Arnaud
It is urgent .
[CODE]
<%@page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*"%>
<%
// *** Logout the current user.
String MM_Logout = request.getRequestURI() + "?MM_Logoutnow=1";
if (request.getParameter("MM_Logoutnow") != null && request.getParameter("MM_Logoutnow").equals("1")) {
session.putValue("MM_Username", "");
session.putValue("MM_UserAuthorization", "");
String MM_logoutRedirectPage = "../index.jsp";
// redirect with URL parameters (remove the "MM_Logoutnow" query param).
if (MM_logoutRedirectPage.equals("")) MM_logoutRedirectPage = request.getRequestURI();
if (MM_logoutRedirectPage.indexOf("?") == -1 && request.getQueryString() != null) {
String MM_newQS = request.getQueryString();
String URsearch = "MM_Logoutnow=1";
int URStart = MM_newQS.indexOf(URsearch);
if (URStart >= 0) {
MM_newQS = MM_newQS.substring(0,URStart) + MM_newQS.substring(URStart + URsearch.length());
}
if (MM_newQS.length() > 0) MM_logoutRedirectPage += "?" + MM_newQS;
}
response.sendRedirect(response.encodeRedirectURL(MM_logoutRedirectPage));
}
%>
<%@ include file="../Connections/webpaf.jsp" %>
<%
// *** Edit Operations: declare variables
// set the form action variable
String MM_editAction = request.getRequestURI();
if (request.getQueryString() != null && request.getQueryString().length() > 0) {
MM_editAction += "?" + request.getQueryString();
}
// connection information
String MM_editDriver = null, MM_editConnection = null, MM_editUserName = null, MM_editPassword = null;
// redirect information
String MM_editRedirectUrl = null;
// query string to execute
StringBuffer MM_editQuery = null;
// boolean to abort record edit
boolean MM_abortEdit = false;
// table information
String MM_editTable = null, MM_editColumn = null, MM_recordId = null;
// form field information
String[] MM_fields = null, MM_columns = null;
%>
<%
// *** Update Record: set variables
if (request.getParameter("MM_update") != null &&
request.getParameter("MM_recordId") != null) {
MM_editDriver = MM_webpaf_DRIVER;
MM_editConnection = MM_webpaf_STRING;
MM_editUserName = MM_webpaf_USERNAME;
MM_editPassword = MM_webpaf_PASSWORD;
MM_editTable = "modules";
MM_editColumn = "a_code_module_paf";
MM_recordId = "'" + request.getParameter("MM_recordId") + "'";
MM_editRedirectUrl = "merci_maj.jsp";
String MM_fieldsStr = "titre_dispositif|value|a_titre_module|value|a_public|value|a_objectif|value|a_contenu|value|a_methode|value|lieu_stable|value|a_observation|value";
String MM_columnsStr = "titre_dispositif|',none,''|a_titre_module|',none,''|a_public|',none,''|a_objectif|',none,''|a_contenu|',none,''|a_methode|',none,''|lieu_stable|',none,''|a_observation|',none,''";
// create the MM_fields and MM_columns arrays
java.util.StringTokenizer tokens = new java.util.StringTokenizer(MM_fieldsStr,"|");
MM_fields = new String[tokens.countTokens()];
for (int i=0; tokens.hasMoreTokens(); i++) MM_fields = tokens.nextToken();
tokens = new java.util.StringTokenizer(MM_columnsStr,"|");
MM_columns = new String[tokens.countTokens()];
for (int i=0; tokens.hasMoreTokens(); i++) MM_columns = tokens.nextToken();
// set the form values
for (int i=0; i+1 < MM_fields.length; i+=2) {
MM_fields[i+1] = ((request.getParameter(MM_fields)!=null)?(String)request.getParameter(MM_fields):"");
}
// append the query string to the redirect URL
if (MM_editRedirectUrl.length() != 0 && request.getQueryString() != null) {
MM_editRedirectUrl += ((MM_editRedirectUrl.indexOf('?') == -1)?"?":"&") + request.getQueryString();
}
}
%>
<%
// *** Update Record: construct a sql update statement and execute it
if (request.getParameter("MM_update") != null &&
request.getParameter("MM_recordId") != null) {
// create the update sql statement
MM_editQuery = new StringBuffer("update ").append(MM_editTable).append(" set ");
for (int i=0; i+1 < MM_fields.length; i+=2) {
String formVal = MM_fields[i+1];
String elem;
java.util.StringTokenizer tokens = new java.util.StringTokenizer(MM_columns[i+1],",");
String delim = ((elem = (String)tokens.nextToken()) != null && elem.compareTo("none")!=0)?elem:"";
String altVal = ((elem = (String)tokens.nextToken()) != null && elem.compareTo("none")!=0)?elem:"";
String emptyVal = ((elem = (String)tokens.nextToken()) != null && elem.compareTo("none")!=0)?elem:"";
if (formVal.length() == 0) {
formVal = emptyVal;
} else {
if (altVal.length() != 0) {
formVal = altVal;
} else if (delim.compareTo("'") == 0) { // escape quotes
StringBuffer escQuotes = new StringBuffer(formVal);
for (int j=0; j < escQuotes.length(); j++)
if (escQuotes.charAt(j) == '\'') escQuotes.insert(j++,'\'');
formVal = "'" + escQuotes + "'";
} else {
formVal = delim + formVal + delim;
}
}
MM_editQuery.append((i!=0)?",":"").append(MM_columns).append(" = ").append(formVal);
}
MM_editQuery.append(" where ").append(MM_editColumn).append(" = ").append(MM_recordId);
if (!MM_abortEdit) {
// finish the sql and execute it
Driver MM_driver = (Driver)Class.forName(MM_editDriver).newInstance();
Connection MM_connection = DriverManager.getConnection(MM_editConnection,MM_editUserName,MM_editPassword);
PreparedStatement MM_editStatement = MM_connection.prepareStatement(MM_editQuery.toString());
MM_editStatement.executeUpdate();
MM_connection.close();
// redirect with URL parameters
if (MM_editRedirectUrl.length() != 0) {
response.sendRedirect(response.encodeRedirectURL(MM_editRedirectUrl));
}
}
}
%>
<%
String modules__MMColParam = "1";
if (request.getParameter("choix") !=null) {modules__MMColParam = (String)request.getParameter("choix");}
%>
<%
Driver Drivermodules = (Driver)Class.forName(MM_webpaf_DRIVER).newInstance();
Connection Connmodules = DriverManager.getConnection(MM_webpaf_STRING,MM_webpaf_USERNAME,MM_webpaf_PASSWORD);
PreparedStatement Statementmodules = Connmodules.prepareStatement("SELECT a_contenu, a_public, a_observation, a_methode, a_objectif, a_code_module_paf, a_chapitres_clair, a_titre_module, lieu_stable, a_affiche_modalites, a_affiche_type_module_texte_clair, titre_dispositif FROM modules WHERE a_code_module_paf = '" + modules__MMColParam + "' ORDER BY a_code_module_paf ASC");
ResultSet modules = Statementmodules.executeQuery();
boolean modules_isEmpty = !modules.next();
boolean modules_hasData = !modules_isEmpty;
Object modules_data;
int modules_numRows = 0;
%>
<html><!-- #BeginTemplate "/Templates/mod_indenti.dwt" -->
<head>
<!-- #BeginEditable "doctitle" -->
<title>Plan acad閙ique de formation 2002/2003 de l'Acad閙ie de Cr閠eil</title>
<!-- #EndEditable -->
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<meta NAME="Author" CONTENT="Cellule Acad閙ique de Formation de l'Acad閙ie de Cr閠閕l">
<meta NAME="Keywords" CONTENT="stages, dispositifs, modules, formation, apprentissage, tice, p閐agogie, enseignement,professeurs, lyc閑, coll鑗e, 閏ole, pr閜aration au concours, agr間ation">
<meta NAME="Description" CONTENT="Listes des dispositifs et modules du plan acad閙ique de formation de l'acad閙ie de Cr閠eil">
<meta NAME="GENERATOR" content="Macromedia dreamweaver Ultradev4">
<META NAME=Robots CONTENT=All>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../css/couleurs.css" type="text/css">
<script language="JavaScript">
<!--
function addToFavorite(favTitle){
if ((navigator.appVersion.indexOf("MSIE") > 0) && (parseInt(navigator.appVersion) >= 4)) {
window.external.AddFavorite(location.href, unescape(favTitle));
}
}
//-->
</script>
<script language="JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table border="0" cellpadding="0" cellspacing="0" width="710">
<!-- fwtable fwsrc="bandeau.png" fwbase="bandeau.gif" fwstyle="Dreamweaver" fwdocid = "742308039" fwnested="0" -->
<tr>
<td width="710">
<table border="0" cellpadding="0" cellspacing="0" width="700">
<!-- fwtable fwsrc="bandeau.png" fwbase="bandeau.gif" fwstyle="Dreamweaver" fwdocid = "742308039" fwnested="0" -->
<tr>
<td><img src="../Templates/bandeau_caf/spacer.gif" width="151" height="1" border="0" name="undefined_2"></td>
<td><img src="../Templates/bandeau_caf/spacer.gif" width="131" height="1" border="0" name="undefined_2"></td>
<td><img src="../Templates/bandeau_caf/spacer.gif" width="287" height="1" border="0" name="undefined_2"></td>
<td><img src="../Templates/bandeau_caf/spacer.gif" width="131" height="1" border="0" name="undefined_2"></td>
<td><img src="../Templates/bandeau_caf/spacer.gif" width="1" height="1" border="0" name="undefined_2"></td>
</tr>
<tr>
<td rowspan="4"><img name="bandeau_r1_c1" src="../Templates/bandeau_caf/bandeau_r1_c1.gif" width="151" height="95" border="0"></td>
<td colspan="3"><img name="bandeau_r1_c2" src="../Templates/bandeau_caf/bandeau_r1_c2.gif" width="549" height="6" border="0"></td>
<td><img src="../Templates/bandeau_caf/spacer.gif" width="1" height="6" border="0" name="undefined_2"></td>
</tr>
<tr>
<td rowspan="2"><img name="bandeau_r2_c2" src="../Templates/bandeau_caf/bandeau_r2_c2.gif" width="131" height="57" border="0"></td>
<td><img name="bandeau_r2_c3" src="../Templates/bandeau_caf/bandeau_r2_c3.gif" width="287" height="51" border="0"></td>
<td rowspan="2"><img name="bandeau_r2_c4" src="../Templates/bandeau_caf/bandeau_r2_c4.gif" width="131" height="57" border="0"></td>
<td><img src="../Templates/bandeau_caf/spacer.gif" width="1" height="51" border="0" name="undefined_2"></td>
</tr>
<tr>
<td><img name="bandeau_r3_c3" src="../Templates/bandeau_caf/bandeau_r3_c3.gif" width="287" height="6" border="0"></td>
<td><img src="../Templates/bandeau_caf/spacer.gif" width="1" height="6" border="0" name="undefined_2"></td>
</tr>
<tr>
<td colspan="3"><img name="bandeau_r4_c2" src="../Templates/bandeau_caf/bandeau_r4_c2.gif" width="549" height="32" border="0"></td>
<td><img src="../Templates/bandeau_caf/spacer.gif" width="1" height="32" border="0" name="undefined_2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table width="711" border="0" cellpadding="0" cellspacing="0" height="900">
<tr>
<td width="712" height="856" valign="top" bgcolor="#FFFFFF"><!-- #BeginEditable "principal" -->
<font face="Verdana, Arial, Helvetica, sans-serif" color="#000099" size="4"><b><img src="../images/p_orange30.gif" width="30" height="30" align="absmiddle">
Modification d'un enregistrement dans la base de donn閑s (suite)</b></font>
<p align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><a href="<%=MM_Logout%>"><b>Quitter
sans faire de modifications</b></a></font>
<ul>
<li><b>Vous 阾es dans le module </b>: <b><font size="4" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><%= (((modules_data = modules.getObject("a_code_module_paf"))==null || modules.wasNull())?"":modules_data).toString().toUpperCase() %></font></b>
</li>
<li><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Effectuez
vos modifications dans les champs et cliquez sur "mettre ?
jour l'enregistrement" :</font></b></li>
</ul>
<form name="maj" method="POST" action="<%=MM_editAction%>">
<b><font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="#000099">
</font></b>
<table width="75%" border="0" cellspacing="0" cellpadding="3" bgcolor="#CCCCCC">
<tr>
<td>
<b><font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="#000099">Titre
dispositif :</font><font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="#FF0000">
</font></b>
<input type="text" name="titre_dispositif" size="100" value="<%=((((modules_data = modules.getObject("titre_dispositif"))==null || modules.wasNull())?"":modules_data))%>">
<b><font size="3" face="Verdana, Arial, Helvetica, sans-serif" color="#000099">Titre
module :
</font> </b>
<input type="text" name="a_titre_module" size="100" value="<%=((((modules_data = modules.getObject("a_titre_module"))==null || modules.wasNull())?"":modules_data))%>">
<b><font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="#000099">Public
</font> <font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="#000099">
:
</font></b>
<textarea name="a_public" wrap="PHYSICAL" rows="3" cols="70"><%=(((modules_data = modules.getObject("a_public"))==null || modules.wasNull())?"":modules_data)%></textarea>
<b><font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="#000099">Objectifs
</font> <font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="#000099">
:</font></b>
<textarea name="a_objectif" cols="70" rows="5"><%=(((modules_data = modules.getObject("a_objectif"))==null || modules.wasNull())?"":modules_data)%></textarea>
<b><font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="#000099">Contenus
: </font></b>
<textarea name="a_contenu" cols="70" rows="5"><%=(((modules_data = modules.getObject("a_contenu"))==null || modules.wasNull())?"":modules_data)%></textarea>
<b><font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="#000099">M閠hode
:
</font> </b>
<textarea name="a_methode" cols="70" rows="5"><%=(((modules_data = modules.getObject("a_methode"))==null || modules.wasNull())?"":modules_data)%></textarea>
<b><font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="#000099">Lieu
:</font></b>
<textarea name="lieu_stable" cols="70" rows="3"><%=(((modules_data = modules.getObject("lieu_stable"))==null || modules.wasNull())?"":modules_data)%></textarea>
<font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="#000099"><b>Observations
:
<textarea name="a_observation" cols="70" rows="3"><%=(((modules_data = modules.getObject("a_observation"))==null || modules.wasNull())?"":modules_data)%></textarea>
</b></font>
<p align="center">
<input type="submit" name="Submit" value="Mettre ?jour l'enregistrement">
</td>
</tr>
</table>
<b><font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="#000099">
</font></b>
<input type="hidden" name="MM_update" value="true">
<input type="hidden" name="MM_recordId" value="<%=(((modules_data = modules.getObject("a_code_module_paf"))==null || modules.wasNull())?"":modules_data)%>">
</form>
<p align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><a href="<%=MM_Logout%>"><b>Quitter
sans faire de modifications</b></a></font>
<!-- #EndEditable --></td>
<td width="1" height="856"></td>
</tr>
<tr bgcolor="#FFFFFF">
<td valign="middle" bordercolor="#FF8516" colspan="2">
<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"
color=#999999><font size="2">?Formation des personnels- CRETEIL -
<!-- #BeginDate format:Sw1 -->14 mai, 2002<!-- #EndDate -->
</font></font></div>
</td>
</tr>
<tr>
<td height="2" width="712" bgcolor="#FFFFCC"></td>
<td width="1" height="2"></td>
</tr>
</table>
</body>
<!-- #EndTemplate --></html>
<%
modules.close();
Connmodules.close();
%>
[/CODE]

