[Phpmyadmin-git] [SCM] phpMyAdmin branch, master, updated. RELEASE_3_3_7RC1-10016-g1b3f0af
Michal Čihař
nijel at users.sourceforge.net
Tue Sep 7 10:52:22 CEST 2010
The branch, master has been updated
via 1b3f0af486ab897b805faa02789e12db73aebb4f (commit)
via f29559242f47675c7208f7a339c006aa259cab80 (commit)
via adb94ccb4b2db4497f5acda84ea026c98d6b2356 (commit)
via 0e3015ce1bcbdd48e04f5788acce904abec67b53 (commit)
from 19c78d1780287c06eb666b46383ce7b004341b73 (commit)
- Log -----------------------------------------------------------------
commit 1b3f0af486ab897b805faa02789e12db73aebb4f
Author: Michal Čihař <mcihar at novell.com>
Date: Tue Sep 7 10:51:52 2010 +0200
No need for quotes and escaping anymore.
commit f29559242f47675c7208f7a339c006aa259cab80
Author: Michal Čihař <mcihar at novell.com>
Date: Tue Sep 7 10:51:27 2010 +0200
Make non js ENUM editor automatically escape fields.
commit adb94ccb4b2db4497f5acda84ea026c98d6b2356
Author: Michal Čihař <mcihar at novell.com>
Date: Tue Sep 7 10:44:10 2010 +0200
No need to escape manually.
commit 0e3015ce1bcbdd48e04f5788acce904abec67b53
Author: Michal Čihař <mcihar at novell.com>
Date: Tue Sep 7 10:43:39 2010 +0200
Automatic escaping in js enum editor.
-----------------------------------------------------------------------
Summary of changes:
enum_editor.php | 18 ++++++++----------
js/functions.js | 36 ++++++++++++++++++------------------
libraries/tbl_properties.inc.php | 2 +-
3 files changed, 27 insertions(+), 29 deletions(-)
diff --git a/enum_editor.php b/enum_editor.php
index 74ed09a..9ae8595 100644
--- a/enum_editor.php
+++ b/enum_editor.php
@@ -19,25 +19,23 @@ require_once './libraries/header_meta_style.inc.php';
<form action="enum_editor.php" method="get">
<div id="enum_editor_no_js">
<h3><?php printf(__('Values for the column "%s"'), htmlspecialchars($_GET['field'])); ?></h3>
- <p><?php echo __('Enter each value in a separate field, enclosed in single quotes. If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, precede it with a backslash (for example \'\\\\xyz\' or \'a\\\'b\').'); ?></p>
+ <p><?php echo __('Enter each value in a separate field.'); ?></p>
<div id="values">
<?php
- $values = '';
+ $values = array();
if (isset($_GET['values'])) { // This page was displayed when the "add a new value" link or the link in tbl_alter.php was clicked
- $values = urldecode($_GET['values']);
+ $values = split(',', urldecode($_GET['values']));
} elseif (isset($_GET['num_fields'])) { // This page was displayed from submitting this form
for($field_num = 1; $field_num <= $_GET['num_fields']; $field_num++) {
- $values .= $_GET['field' . $field_num] . ",";
+ $values[] = "'" . str_replace(array("'", '\\'), array("''", '\\\\'), $_GET['field' . $field_num]) . "'";
}
}
// Display the values in text fields, excluding empty strings
$field_counter = 0;
- $stripped_values = array(); // The values to display in the output
- foreach(split(",", $values) as $value) {
+ foreach($values as $value) {
if(trim($value) != "") {
$field_counter++;
- echo sprintf('<input type="text" size="30" value="%s" name="field' . $field_counter . '" />', htmlspecialchars($value));
- $stripped_values[] = htmlspecialchars($value);
+ echo sprintf('<input type="text" size="30" value="%s" name="field' . $field_counter . '" />', htmlspecialchars(str_replace(array("''", '\\\\', "\\'"), array("'", '\\', "'"), substr($value, 1, -1))));
}
}
@@ -55,7 +53,7 @@ require_once './libraries/header_meta_style.inc.php';
?>
</div>
<p>
- <a href="enum_editor.php?token=<?php echo urlencode($_GET['token']); ?>&field=<?php echo urlencode($_GET['field']); ?>&extra_fields=<?php echo $_GET['extra_fields'] + 1; ?>&values=<?php echo $values; ?>">
+ <a href="enum_editor.php?token=<?php echo urlencode($_GET['token']); ?>&field=<?php echo urlencode($_GET['field']); ?>&extra_fields=<?php echo $_GET['extra_fields'] + 1; ?>&values=<?php echo urlencode(join(",", $values)); ?>">
+ Restart insertion and add a new value
</a>
</p>
@@ -68,7 +66,7 @@ require_once './libraries/header_meta_style.inc.php';
<div id="enum_editor_output">
<h3>Output</h3>
<p>Copy and paste the joined values into the "Length/Values" field</p>
- <textarea id="joined_values" cols="95" rows="5"><?php echo join(",", $stripped_values); ?></textarea>
+ <textarea id="joined_values" cols="95" rows="5"><?php echo join(",", $values); ?></textarea>
</div>
</div>
</body>
diff --git a/js/functions.js b/js/functions.js
index e49d5d0..f19344e 100644
--- a/js/functions.js
+++ b/js/functions.js
@@ -935,7 +935,7 @@ $(document).ready(PMA_markRowsInit);
* @param container DOM element
*/
function markAllRows( container_id ) {
-
+
$("#"+container_id).find("input:checkbox:enabled").attr('checked', 'checked')
.parents("tr").addClass("marked");
return true;
@@ -948,7 +948,7 @@ function markAllRows( container_id ) {
* @param container DOM element
*/
function unMarkAllRows( container_id ) {
-
+
$("#"+container_id).find("input:checkbox:enabled").removeAttr('checked')
.parents("tr").removeClass("marked");
return true;
@@ -1417,7 +1417,7 @@ function refreshLayout() {
var elm = $('#pdflayout')
var orientation = $('#orientation_opt').val();
if($('#paper_opt').length==1){
- var paper = $('#paper_opt').val();
+ var paper = $('#paper_opt').val();
}else{
var paper = 'A4';
}
@@ -1737,7 +1737,7 @@ $(document).ready(function(){
$("#all_table_same_wide").attr("disabled","disabled");
$("#paper_opt").attr("disabled","disabled");
$("#show_color_opt").attr("disabled","disabled");
-
+
}else if($("#export_type").val()=='pdf'){
$("#show_grid_opt").removeAttr("disabled");
$("#orientation_opt").removeAttr("disabled");
@@ -1763,7 +1763,7 @@ $(document).ready(function(){
/**
* Function to process the plain HTML response from an Ajax request. Inserts
- * the various HTML divisions from the response at the proper locations. The
+ * the various HTML divisions from the response at the proper locations. The
* array relates the divisions to be inserted to their placeholders.
*
* @param var divisions_map an associative array of id names
@@ -1796,7 +1796,7 @@ function PMA_ajaxInsertResponse(divisions_map) {
*/
function PMA_ajaxShowMessage(message, timeout) {
-
+
//Handle the case when a empty data.message is passed. We don't want the empty message
if(message == '') {
return true;
@@ -1961,7 +1961,7 @@ jQuery.fn.PMA_sort_table = function(text_selector) {
* jQuery coding for 'Create Table'. Used on db_operations.php,
* db_structure.php and db_tracking.php (i.e., wherever
* libraries/display_create_table.lib.php is used)
- *
+ *
* Attach Ajax Event handlers for Create Table
*/
$(document).ready(function() {
@@ -1969,7 +1969,7 @@ $(document).ready(function() {
/**
* Attach event handler to the submit action of the create table minimal form
* and retrieve the full table form and display it in a dialog
- *
+ *
* @uses PMA_ajaxShowMessage()
*/
$("#create_table_form_minimal").live('submit', function(event) {
@@ -1996,12 +1996,12 @@ $(document).ready(function() {
buttons : button_options
}); // end dialog options
}) // end $.get()
-
+
});
/**
* Attach event handler for submission of create table form
- *
+ *
* @uses PMA_ajaxShowMessage()
* @uses $.PMA_sort_table()
* @uses window.parent.refreshNavigation()
@@ -2086,7 +2086,7 @@ $(document).ready(function() {
/**
* Attach Ajax event handlers for Empty Table
- *
+ *
* @uses PMA_ajaxShowMessage()
* @uses $.PMA_confirm()
*/
@@ -2119,7 +2119,7 @@ $(document).ready(function() {
/**
* Attach Ajax event handler for Drop Table
- *
+ *
* @uses PMA_ajaxShowMessage()
* @uses $.PMA_confirm()
* @uses window.parent.refreshNavigation()
@@ -2192,9 +2192,9 @@ $(document).ready(function() {
}, 'top.frame_content'); //end $(document).ready() for Drop Trigger
/**
- * Attach Ajax event handlers for Drop Database. Moved here from db_structure.js
+ * Attach Ajax event handlers for Drop Database. Moved here from db_structure.js
* as it was also required on db_create.php
- *
+ *
* @uses $.PMA_confirm()
* @uses PMA_ajaxShowMessage()
* @uses window.parent.refreshNavigation()
@@ -2287,7 +2287,7 @@ $(document).ready(function() {
/**
* Attach Ajax event handler for Change Password form submission
- *
+ *
* @uses PMA_ajaxShowMessage()
*/
$("#change_password_form").find('input[name=change_pw]').live('click', function(event) {
@@ -2312,7 +2312,7 @@ $(document).ready(function() {
if(data.success == true) {
PMA_ajaxShowMessage(data.message);
-
+
$("#topmenucontainer").after(data.sql_query);
$("#change_password_dialog").hide().remove();
@@ -2380,7 +2380,7 @@ $(document).ready(function() {
val = val + "'";
}
// escape the single quotes, except the mandatory ones enclosing the entire string
- val = val.substr(1, val.length-2).replace(/'/g, "'");
+ val = val.substr(1, val.length-2).replace(/''/g, "'").replace(/\\\\/g, '\\').replace(/\\'/g, "'").replace(/'/g, "'");
// escape the greater-than symbol
val = val.replace(/>/g, ">");
$("#enum_editor #values").append("<input type='text' value=" + val + " />");
@@ -2412,7 +2412,7 @@ $(document).ready(function() {
$.each($("#enum_editor #values input"), function(index, input_element) {
val = jQuery.trim(input_element.value);
if(val != "") {
- value_array.push("'" + val + "'");
+ value_array.push("'" + val.replace(/\\/g, '\\\\').replace(/'/g, "''") + "'");
}
});
// get the Length/Values text field where this value belongs
diff --git a/libraries/tbl_properties.inc.php b/libraries/tbl_properties.inc.php
index 8a7b9ea..c093635 100644
--- a/libraries/tbl_properties.inc.php
+++ b/libraries/tbl_properties.inc.php
@@ -796,7 +796,7 @@ if ($action == 'tbl_create.php') {
<div id="enum_editor">
<a class="close_enum_editor">Close</a>
<h3><?php printf(__('Values for the column "%s"'), isset($row['Field']) ? htmlspecialchars($row['Field']) : ""); ?></h3>
-<p><?php echo __('Enter each value in a separate field. If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, precede it with a backslash (for example \'\\\\xyz\' or \'a\\\'b\').'); ?></p>
+<p><?php echo __('Enter each value in a separate field.'); ?></p>
<div id="values"></div>
<p><a class="add_value">+ Add a new value</a></p>
<input type="submit" value="Go" /> <a class="cancel_enum_editor">Cancel</a>
hooks/post-receive
--
phpMyAdmin
More information about the Git
mailing list