#**************************************************************************/
use strict;
-use POSIX;
+use warnings FATAL => 'all';
our $BODY;
our $DBH;
our $LOG;
my $error = '';
my $user;
-if (param('user') =~ /^(\d+)$/){
+if (defined param('user') && param('user') =~ /^(\d+)$/){
my $query = $DBH->prepare(q{
SELECT uid,username,hostmask,coords(x,y,z) AS planet,attack_points,defense_points,scan_points,humor_points
FROM users u LEFT OUTER JOIN current_planet_stats p ON u.planet = p.id
WHERE uid = ?;
-}) or $error .= "<p> Something went wrong: ".$DBH->errstr."</p>";
+}) or $error .= "<p> Something went wrong: </p>";
$user = $DBH->selectrow_hashref($query,undef,$1) or $error.= "<p> Something went wrong: ".$DBH->errstr."</p>";
}
-if ($user && param('cmd') eq 'change'){
+
+if ($user && defined param('cmd') && param('cmd') eq 'change'){
$DBH->begin_work;
for my $param (param()){
if ($param =~ /^c:(\w+)$/){
$groups->execute();
while (my $group = $groups->fetchrow_hashref){
my $query;
+ next unless defined param($group->{gid});
if (param($group->{gid}) eq 'remove'){
$query = $delgroup;
}elsif(param($group->{gid}) eq 'add'){
$BODY->param(AddGroups => \@addgroups);
}else{
- my $query = $DBH->prepare(qq{SELECT uid,username FROM users ORDER BY username})or $error .= $DBH->errstr;
+ my $query = $DBH->prepare(qq{SELECT u.uid,username,TRIM(',' FROM concat(g.groupname||',')) AS groups
+ FROM users u LEFT OUTER JOIN (groupmembers gm NATURAL JOIN groups g) ON gm.uid = u.uid
+ WHERE u.uid > 0
+ GROUP BY u.uid,username
+ ORDER BY username})or $error .= $DBH->errstr;
$query->execute or $error .= $DBH->errstr;
my @users;
my $i = 0;