Gabor Hojtsy wrote:
> Jakub, I have committed your patch. It would be good if you could review
> your code and fix the same errors you have fixed in the previous 
> magic_quotes/register_globals patch - since you submitted this patch 
> before the cleanup.

Here it is.

Jakub Vrana
Index: user-notes.php
===================================================================
RCS file: /repository/php-master-web/manage/user-notes.php,v
retrieving revision 1.47
diff -u -r1.47 user-notes.php
--- user-notes.php      25 Jun 2004 15:01:10 -0000      1.47
+++ user-notes.php      25 Jun 2004 15:33:16 -0000
@@ -121,45 +121,52 @@
 case 'mass':
   if (!allow_mass_change($user)) { die("You are not allowed to take this action!"); }
   head();
+  $step = (isset($_REQUEST["step"]) ? $_REQUEST["step"] : 0);
   $where = array();
-  if ($old_sect)
-    $where[] = "sect = '$old_sect'";
-  if ($ids)
-    $where[] = "id IN ($ids)";
+  if (!empty($_REQUEST["old_sect"])) {
+    $where[] = "sect = '". escape($_REQUEST["old_sect"]) ."'";
+  }
+  if (!empty($_REQUEST["ids"])) {
+    if (preg_match('~^([0-9]+, *)*[0-9]+$~i', $_REQUEST["ids"])) {
+      $where[] = "id IN ($_REQUEST[ids])";
+    } else {
+      echo "<p><b>Incorrect format of notes IDs.</b></p>\n";
+      $step = 0;
+    }
+  }
   
   if ($step == 2) {
-    if (!mysql_query("UPDATE note SET sect = '$new_sect' WHERE " . implode(" AND ", 
$where)))
-      echo "<p>Mass change failed: " . mysql_error() . "</p>\n";
-    else
-      echo "<p>Mass change succeeded.</p>\n";
+    db_query("UPDATE note SET sect = '". escape($_REQUEST["new_sect"]) ."' WHERE " . 
implode(" AND ", $where));
+    echo "<p>Mass change succeeded.</p>\n";
   } elseif ($step == 1) {
-    if ($new_sect && ($ids || $old_sect)) {
-      if (!($result = mysql_query("SELECT COUNT(*) FROM note WHERE " . implode(" AND 
", $where))))
-        echo "<p>SQL error: " . mysql_error() . "</p>\n";
-      elseif (!($count = mysql_result($result, 0, 0)))
+    if (!empty($_REQUEST["new_sect"]) && $where) {
+      db_query("SELECT COUNT(*) FROM note WHERE " . implode(" AND ", $where));
+      if (!($count = mysql_result($result, 0, 0))) {
         echo "<p>There are no such notes.</p>\n";
-      else {
+      } else {
         $step = 2;
         $msg = "Are you sure to change section of <b>$count note(s)</b>";
-        $msg .= ($ids ? " with IDs <b>$ids</b>" : "");
-        $msg .= ($old_sect ? " from section <b>$old_sect</b>" : "");
-        $msg .= " to section <b>$new_sect</b>?";
+        $msg .= (!empty($_REQUEST["ids"]) ? " with IDs <b>$_REQUEST[ids]</b>" : "");
+        $msg .= (!empty($_REQUEST["old_sect"]) ? " from section 
<b>$_REQUEST[old_sect]</b>" : "");
+        $msg .= " to section <b>$_REQUEST[new_sect]</b>?";
         echo "<p>$msg</p>\n";
 ?>
 <form action="<?php echo $_SERVER['PHP_SELF']; ?>?action=mass" method="post">
 <input type="hidden" name="step" value="2">
-<input type="hidden" name="old_sect" value="<?php echo $old_sect; ?>">
-<input type="hidden" name="ids" value="<?php echo $ids; ?>">
-<input type="hidden" name="new_sect" value="<?php echo $new_sect; ?>">
+<input type="hidden" name="old_sect" value="<?php echo $_REQUEST["old_sect"]; ?>">
+<input type="hidden" name="ids" value="<?php echo $_REQUEST["ids"]; ?>">
+<input type="hidden" name="new_sect" value="<?php echo $_REQUEST["new_sect"]; ?>">
 <input type="submit" value="Change">
 </form>
 <?php
       }
     } else {
-      if (!$new_sect)
+      if (empty($_REQUEST["new_sect"])) {
         echo "<p><b>You have to fill-in new section.</b></p>\n";
-      if (!$ids && !$old_sect)
+      }
+      if (!$where) {
         echo "<p><b>You have to fill-in curent section or notes IDs (or 
both).</b></p>\n";
+      }
     }
   }
   if ($step < 2) {
@@ -170,15 +177,15 @@
 <table>
  <tr>
   <th align="right">Current section:</th>
-  <td><input type="text" name="old_sect" value="<?php echo $old_sect; ?>" size="30" 
maxlength="80" /> (filename without extension)</td>
+  <td><input type="text" name="old_sect" value="<?php echo $_REQUEST["old_sect"]; ?>" 
size="30" maxlength="80" /> (filename without extension)</td>
  </tr>
  <tr>
   <th align="right">Notes IDs:</th>
-  <td><input type="text" name="ids" value="<?php echo $ids; ?>" size="30" 
maxlength="80" /> (comma separated list)</td>
+  <td><input type="text" name="ids" value="<?php echo $_REQUEST["ids"]; ?>" size="30" 
maxlength="80" /> (comma separated list)</td>
  </tr>
  <tr>
   <th align="right">Move to section:</th>
-  <td><input type="text" name="new_sect" value="<?php echo $new_sect; ?>" size="30" 
maxlength="80" /></td>
+  <td><input type="text" name="new_sect" value="<?php echo $_REQUEST["new_sect"]; ?>" 
size="30" maxlength="80" /></td>
  </tr>
  <tr> 
   <td align="center" colspan="2">

Reply via email to