>I think you will need to show us more of your code. Where are the ids
>coming from?
First the html generated by the script :
<input type=checkbox name="IDS" value="26,">
<input type=checkbox name="IDS" value="18,">
I get this html by doing :
while(@row = $sth->fetchrow_array) {
if($tmp_bgcolor eq "$bgcolor_a") { $tmp_bgcolor
= $bgcolor_b; }
else { $tmp_bgcolor = $bgcolor_a; }
$code = '';
($tmpa = $row[0]) =~ s/([^\x20-\x7E])/'\x' . sprintf "%x", ord $1/ge;
$code = "<tr bgcolor=$tmp_bgcolor><td> -$tmpa- <input type=checkbox
name=\"IDS\" value=\"$row[0],\"> </td><td>";
$code ="$code <a target=\"_blank\"
href=\"$mysql_man_script_name?req_lib=$req_lib&req_id=$row[0]&action=see
_rec\"> View Rec
ord </a> Deleted By : $row[1] On : $row[2] ::
$row[$menu_option_index_num]";
$code = "$code </td></tr> \n";
print $code;
$code = '';
}
With the altered code it outputs :
-28- <input type=checkbox name="IDS" value="28,">
-18- <input type=checkbox name="IDS" value="18,">
If you check them both and submit, it does this script :
$ids = $in{'IDS'};
$ids =~ s/\,$//;
print "-$ids-<br>";# which out put -> -27,18-
($tmpa = $ids) =~ s/([^\x20-\x7E])/'\x' . sprintf "%x", ord $1/ge;
print $tmpa; # which out put -> 27,\x018
print "<br>";
@recs = split(/,/, $ids);
>Perhaps the later ids include a non-printable character, which trace()
is
>outputting as a period. Try printing your query like this:
>($tmp = $query) =~ s/([^\x20-\x7E])/'\x' . sprintf "%x", ord $1/ge;
>print $tmp;
$tmp prints out as : DELETE FROM customer WHERE ID IN ('25','\x018')
sure enough odd char
It seems to get there somewhere in between pressing submit and after
parse
( I use the &ReadParse subroutine in cgi-lib )
I just did "$query =~ s/([^\x20-\x7E])//ge;"
to remove any nonprintable chars right before do() and all is well.
Thanks for the idea! I still wonder where it's coming from.
Any ideas how a non printable character would get ther ewould be good to
know.
Thanks for your help everyone!
Dan
>Ronald