Fix XSS on table comment.
[phpmyadmin/crack.git] / tbl_row_action.php
blob9c2b7c36a9e802e2b429d47ebe191873f60b79c8
1 <?php
2 /* $Id$ */
3 // vim: expandtab sw=4 ts=4 sts=4:
4 require_once('./libraries/common.lib.php');
5 require_once('./libraries/mysql_charsets.lib.php');
7 /**
8 * Avoids undefined variables
9 */
10 if (!isset($pos)) {
11 $pos = 0;
14 /**
15 * No rows were selected => show again the query and tell that user.
17 if ((!isset($rows_to_delete) || !is_array($rows_to_delete)) && !isset($mult_btn)) {
18 $disp_message = $strNoRowsSelected;
19 $disp_query = '';
20 require('./sql.php');
21 require_once('./libraries/footer.inc.php');
24 /**
25 * Drop multiple rows if required
28 // workaround for IE problem:
29 if (isset($submit_mult_delete_x)) {
30 $submit_mult = 'row_delete';
31 } elseif (isset($submit_mult_change_x)) {
32 $submit_mult = 'row_edit';
33 } elseif (isset($submit_mult_export_x)) {
34 $submit_mult = 'row_export';
37 // garvin: If the 'Ask for confirmation' button was pressed, this can only come from 'delete' mode,
38 // so we set it straight away.
39 if (isset($mult_btn)) {
40 $submit_mult = 'row_delete';
43 switch($submit_mult) {
44 case 'row_delete':
45 case 'row_edit':
46 case 'row_export':
47 // leave as is
48 break;
50 case $GLOBALS['strExport']:
51 $submit_mult = 'row_export';
52 break;
54 case $GLOBALS['strDelete']:
55 case $GLOBALS['strKill']:
56 $submit_mult = 'row_delete';
57 break;
59 default:
60 case $GLOBALS['strEdit']:
61 $submit_mult = 'row_edit';
62 break;
65 if ($submit_mult == 'row_edit') {
66 $js_to_run = 'tbl_change.js';
69 if ($submit_mult == 'row_delete' || $submit_mult == 'row_export') {
70 $js_to_run = 'functions.js';
73 require_once('./libraries/header.inc.php');
75 if (!empty($submit_mult)) {
76 switch($submit_mult) {
77 case 'row_edit':
78 $primary_key = array();
79 // garvin: As we got the fields to be edited from the 'rows_to_delete' checkbox, we use the index of it as the
80 // indicating primary key. Then we built the array which is used for the tbl_change.php script.
81 foreach ($rows_to_delete AS $i_primary_key => $del_query) {
82 $primary_key[] = urldecode($i_primary_key);
85 $active_page = 'tbl_change.php';
86 include './tbl_change.php';
87 break;
89 case 'row_export':
90 // Needed to allow SQL export
91 $single_table = TRUE;
93 $primary_key = array();
94 $sql_query = urldecode($sql_query);
95 // garvin: As we got the fields to be edited from the 'rows_to_delete' checkbox, we use the index of it as the
96 // indicating primary key. Then we built the array which is used for the tbl_change.php script.
97 foreach ($rows_to_delete AS $i_primary_key => $del_query) {
98 $primary_key[] = urldecode($i_primary_key);
101 $active_page = 'tbl_export.php';
102 include './tbl_export.php';
103 break;
105 case 'row_delete':
106 default:
107 $action = 'tbl_row_action.php';
108 $err_url = 'tbl_row_action.php?' . PMA_generate_common_url($db, $table);
109 if (!isset($mult_btn)) {
110 $original_sql_query = $sql_query;
111 $original_url_query = $url_query;
112 $original_pos = $pos;
114 require('./libraries/mult_submits.inc.php');
115 $url_query = PMA_generate_common_url($db, $table)
116 . '&amp;goto=tbl_sql.php';
120 * Show result of multi submit operation
122 // sql_query is not set when user does not confirm multi-delete
123 if ((!empty($submit_mult) || isset($mult_btn)) && isset($sql_query)) {
124 $disp_message = $strSuccess;
125 $disp_query = $sql_query;
128 if (isset($original_sql_query)) {
129 $sql_query = $original_sql_query;
132 if (isset($original_url_query)) {
133 $url_query = $original_url_query;
136 if (isset($original_pos)) {
137 $pos = $original_pos;
140 // this is because sql.php could call tbl_structure
141 // which would think it needs to call mult_submits.inc.php:
142 unset($submit_mult);
143 unset($mult_btn);
145 $active_page = 'sql.php';
146 require('./sql.php');
149 * Displays the footer
151 require_once('./libraries/footer.inc.php');
152 break;