diff --git a/app/controllers/course/members.php b/app/controllers/course/members.php
index e631bb75a8907fb2b27a36fdc4306cf23f0fac78..21023554c4c8bfd500b06516ea3bbbeb0e87dd28 100644
--- a/app/controllers/course/members.php
+++ b/app/controllers/course/members.php
@@ -456,13 +456,12 @@ class Course_MembersController extends AuthenticatedController
             $this->flash['move'] = Request::int('move');
             $this->redirect('course/members/send_to_course');
         } else {
-            global $perm;
-            if ($perm->have_perm('root')) {
+            if ($GLOBALS['perm']->have_perm('root')) {
                 $parameters = [
                     'semtypes' => studygroup_sem_types() ?: null,
                     'exclude' => [Context::getId()],
                 ];
-            } else if ($perm->have_perm('admin')) {
+            } else if ($GLOBALS['perm']->have_perm('admin')) {
                 $parameters = [
                     'semtypes' => studygroup_sem_types() ?: null,
                     'institutes' => array_map(function ($i) {
@@ -488,6 +487,7 @@ class Course_MembersController extends AuthenticatedController
             if (!empty($this->flash['users']) || Request::getArray('users')) {
                 $users = $this->flash['users'] ?: Request::getArray('users');
                 // create a usable array
+                $this->users = [];
                 foreach ($users as $user => $val) {
                     if ($val) {
                         $this->users[] = $user;
@@ -558,6 +558,7 @@ class Course_MembersController extends AuthenticatedController
     public function send_message_action()
     {
         if (!empty($this->flash['users'])) {
+            $users = [];
             // create a usable array
             foreach ($this->flash['users'] as $user => $val) {
                 if ($val) {
@@ -827,7 +828,6 @@ class Course_MembersController extends AuthenticatedController
             case 'message':
                 $this->redirect('course/members/send_message');
                 return;
-                break;
             default:
                 $target = 'course/members/index';
                 break;
@@ -867,11 +867,9 @@ class Course_MembersController extends AuthenticatedController
             case 'to_course':
                 $this->redirect('course/members/select_course');
                 return;
-                break;
             case 'message':
                 $this->redirect('course/members/send_message');
                 return;
-                break;
             default:
                 $target = 'course/members/index';
                 break;
@@ -910,11 +908,9 @@ class Course_MembersController extends AuthenticatedController
             case 'to_course':
                 $this->redirect('course/members/select_course');
                 return;
-                break;
             case 'message':
                 $this->redirect('course/members/send_message');
                 return;
-                break;
             default:
                 $target = 'course/members/index';
                 break;
@@ -950,7 +946,6 @@ class Course_MembersController extends AuthenticatedController
             case 'message':
                 $this->redirect('course/members/send_message');
                 return;
-                break;
             default:
                 $target = 'course/members/index';
                 break;
@@ -984,7 +979,6 @@ class Course_MembersController extends AuthenticatedController
             case 'message':
                 $this->redirect('course/members/send_message');
                 return;
-                break;
             default:
                 $target = 'course/members/index';
                 break;
@@ -1096,8 +1090,9 @@ class Course_MembersController extends AuthenticatedController
                     ));
                 }
             } else {
+                $users = [];
                 if ($cmd === 'singleuser') {
-                    $users = [$user_id];
+                    $users[] = $user_id;
                 } else {
                     // create a usable array
                     foreach ($this->flash['users'] as $user => $val) {
@@ -1570,7 +1565,7 @@ class Course_MembersController extends AuthenticatedController
                     'user_id',
                     [
                         'permission' => ['autor', 'tutor', 'dozent'],
-                        'institute'  => $sem_institutes,
+                        'institute'  => $sem_institutes ?? [],
                         'seminar_id' => $course->id,
                     ]
                 );
@@ -2131,7 +2126,7 @@ class Course_MembersController extends AuthenticatedController
     private function insertAdmissionMember(array $users, string $next_status, bool $consider_contingent, bool $accepted = false, string $cmd = 'add_user'): array
     {
         $messaging = new messaging;
-        $status_title = get_title_for_status('dozent', 1);
+        $msgs = [];
         foreach ($users as $user_id => $value) {
             if ($value) {
                 $user = User::find($user_id);
@@ -2156,10 +2151,15 @@ class Course_MembersController extends AuthenticatedController
                             );
                         } else {
                             if (!$accepted) {
-                                $message = sprintf(_('Sie wurden aus der Warteliste in die Veranstaltung **%s** aufgenommen und sind damit zugelassen.'),
-$this->course_title);
+                                $message = sprintf(
+                                    _('Sie wurden aus der Warteliste in die Veranstaltung **%s** aufgenommen und sind damit zugelassen.'),
+                                    $this->course_title
+                                );
                             } else {
-                                $message = sprintf(_('Sie wurden vom Status **vorläufig akzeptiert** auf **teilnehmend** in der Veranstaltung **%s** hochgestuft und sind damit zugelassen.'), $this->course_title);
+                                $message = sprintf(
+                                    _('Sie wurden vom Status **vorläufig akzeptiert** auf **teilnehmend** in der Veranstaltung **%s** hochgestuft und sind damit zugelassen.'),
+                                    $this->course_title
+                                );
                             }
                         }
 
@@ -2243,7 +2243,7 @@ $this->course_title);
         } else {
             $directionString = 'runtergestuft';
         }
-
+        $log_level = '';
         switch ($status) {
             case 'tutor': $log_level = 'zum Tutor';
                 break;
diff --git a/app/controllers/course/statusgroups.php b/app/controllers/course/statusgroups.php
index 5e09f515d44a3d0a8eccb2810046a75fdef4e829..5536ab90d5f4f49bc9793284208670633f52a3e3 100644
--- a/app/controllers/course/statusgroups.php
+++ b/app/controllers/course/statusgroups.php
@@ -34,9 +34,9 @@ class Course_StatusgroupsController extends AuthenticatedController
         $this->config = CourseConfig::get($this->course_id);
 
         // Check perms
-        $this->is_dozent = $perm->have_studip_perm('dozent', $this->course_id);
-        $this->is_tutor  = $perm->have_studip_perm('tutor', $this->course_id);
-        $this->is_autor  = $perm->have_studip_perm('autor', $this->course_id);
+        $this->is_dozent = $GLOBALS['perm']->have_studip_perm('dozent', $this->course_id);
+        $this->is_tutor  = $GLOBALS['perm']->have_studip_perm('tutor', $this->course_id);
+        $this->is_autor  = $GLOBALS['perm']->have_studip_perm('autor', $this->course_id);
 
         // Hide groups page?
         if (!$this->is_tutor && $this->config->COURSE_MEMBERS_HIDE) {
@@ -106,7 +106,7 @@ class Course_StatusgroupsController extends AuthenticatedController
             $groupdata = [
                 'group' => $g,
                 'members' => [],
-                'membercount' => $membercounts[$g->id] ?: 0,
+                'membercount' => $membercounts[$g->id] ?? 0,
                 'invisible_users' => 0
             ];
 
@@ -118,7 +118,7 @@ class Course_StatusgroupsController extends AuthenticatedController
                 if ($this->sort_group == $g->id) {
                     $sorted = $this->sortMembers($g->members, $this->sort_by, $this->order);
                 } else {
-                    $sorted = $sorted = $this->sortMembers($g->members);
+                    $sorted = $this->sortMembers($g->members);
                 }
 
                 foreach ($sorted as $member) {
@@ -783,7 +783,7 @@ class Course_StatusgroupsController extends AuthenticatedController
                 $numbering = Request::int('startnumber', 1);
             }
             for ($i = 0 ; $i < Request::int('number') ; $i++) {
-                $group = Statusgruppen::createOrUpdate('', Request::get('prefix').' '.
+                Statusgruppen::createOrUpdate('', Request::get('prefix').' '.
                     $numbering++,
                     null, $this->course_id, Request::int('size', 0),
                     Request::int('selfassign', 0) + Request::int('exclusive', 0),
@@ -1059,7 +1059,7 @@ class Course_StatusgroupsController extends AuthenticatedController
 
             // Get selected action for group members.
             $actions = Request::getArray('members_action');
-            $action = $actions[$group_id];
+            $action = $actions[$group_id] ?? '';
 
             switch ($action) {
                 case 'move':
diff --git a/app/views/course/statusgroups/_group.php b/app/views/course/statusgroups/_group.php
index d84b456fe91b32dee815458d3d3819f41c7dcef0..e9230658a56654eae7f7693001512d2fdb2996ac 100644
--- a/app/views/course/statusgroups/_group.php
+++ b/app/views/course/statusgroups/_group.php
@@ -146,7 +146,7 @@
     <section>
         <article id="group-members-<?= $group->id ?>"<?= $load ? ' class="open"' : ''?>>
             <?php if ($load) : ?>
-                <?= $this->render_partial('course/statusgroups/getgroup', compact('members is_tutor is_locked group order sort_by')) ?>
+                <?= $this->render_partial('course/statusgroups/getgroup', compact('members', 'is_tutor', 'is_locked', 'group', 'order','sort_by')) ?>
             <?php endif ?>
         </article>
     </section>
diff --git a/lib/export/export_studipdata_func.inc.php b/lib/export/export_studipdata_func.inc.php
index 179daf45fd47fa2068a23fd91c17c6c23b5bddd9..82a70d620fa57170d7529f733c74a68a537b908a 100644
--- a/lib/export/export_studipdata_func.inc.php
+++ b/lib/export/export_studipdata_func.inc.php
@@ -83,7 +83,7 @@ function output_data($object_data, $output_mode = "file", $flush = false)
 function export_range($range_id)
 {
     global $o_mode, $range_name, $ex_person_details, $persons, $ex_sem;
-
+    $output_startet = false;
     // Ist die Range-ID eine Einrichtungs-ID?
     $query     = "SELECT Name FROM Institute WHERE Institut_id = ?";
     $statement = DBManager::get()->prepare($query);
@@ -104,7 +104,7 @@ function export_range($range_id)
     $statement = DBManager::get()->prepare($query);
     $statement->execute([$range_id]);
     while ($row = $statement->fetch(PDO::FETCH_ASSOC)) {
-        if ($row['Name'] != '') {
+        if (!empty($row['Name'])) {
             // output_data ( xml_header(), $o_mode);
             export_inst($row['Institut_id']);
         }
@@ -117,7 +117,7 @@ function export_range($range_id)
     $statement = DBManager::get()->prepare($query);
     $statement->execute([$range_id]);
     $row = $statement->fetch(PDO::FETCH_ASSOC);
-    if ($row && $row['Name'] != '') {
+    if ($row && $row['Name']) {
         $range_name = $row['Name'];
         if (!$output_startet) {
             output_data(xml_header(), $o_mode);
@@ -149,7 +149,7 @@ function export_range($range_id)
                 output_data(xml_header(), $o_mode);
                 $output_startet = true;
             }
-            foreach ($inst_array as $key => $inst_ids) {
+            foreach ($inst_array as $inst_ids) {
                 export_inst($inst_ids);
             }
         }
@@ -158,6 +158,7 @@ function export_range($range_id)
     $query     = "SELECT 1 FROM sem_tree WHERE sem_tree_id = ?";
     $statement = DBManager::get()->prepare($query);
     $statement->execute([$range_id]);
+    $sem_ids = [];
     if ($statement->fetchColumn() || $range_id == 'root') {
         if (!$output_startet) {
             output_data(xml_header(), $o_mode);
@@ -226,7 +227,7 @@ function export_range($range_id)
  */
 function export_inst($inst_id, $ex_sem_id = "all")
 {
-    global $ex_type, $o_mode, $xml_file, $xml_names_inst, $xml_groupnames_inst, $INST_TYPE;
+    global $ex_type, $o_mode, $xml_names_inst, $xml_groupnames_inst, $INST_TYPE;
 
     $query     = "SELECT * FROM Institute WHERE Institut_id = ?";
     $statement = DBManager::get()->prepare($query);
@@ -238,9 +239,9 @@ function export_inst($inst_id, $ex_sem_id = "all")
         if ($val == '') {
             $val = $key;
         }
-        if ($key == 'type' && $INST_TYPE[$institute[$key]]['name'] != '') {
+        if ($key === 'type' && !empty($INST_TYPE[$institute[$key]]) && $INST_TYPE[$institute[$key]]['name']) {
             $data_object .= xml_tag($val, $INST_TYPE[$institute[$key]]['name']);
-        } elseif ($institute[$key] != '') {
+        } elseif (!empty($institute[$key])) {
             $data_object .= xml_tag($val, $institute[$key]);
         }
     }
@@ -252,7 +253,7 @@ function export_inst($inst_id, $ex_sem_id = "all")
     $statement = DBManager::get()->prepare($query);
     $statement->execute([$institute['fakultaets_id']]);
     $faculty = $statement->fetch(PDO::FETCH_ASSOC);
-    if ($faculty['Name'] != '') {
+    if ($faculty && $faculty['Name']) {
         $data_object .= xml_tag($xml_groupnames_inst["childobject"], $faculty['Name'], ['key' => $faculty['Institut_id']]);
     }
 
@@ -480,7 +481,7 @@ function export_sem($inst_id, $ex_sem_id = 'all')
                 $data_object .= xml_close_tag($xml_groupnames_lecture['childgroup3a']);
             } elseif ($key === 'admission_turnout') {
                 $data_object .= xml_open_tag($val, !empty($row['admission_type']) ? _('max.') : _('erw.'));
-                $data_object .= $row[$key];
+                $data_object .= $row[$key] ?? '';
                 $data_object .= xml_close_tag($val);
             } elseif ($key === 'teilnehmer_anzahl_aktuell') {
                 $count_statement->execute([$row['seminar_id']]);
@@ -511,6 +512,9 @@ function export_sem($inst_id, $ex_sem_id = 'all')
 
         $inner_statement->execute([$row['seminar_id']]);
         while ($inner = $inner_statement->fetch(PDO::FETCH_ASSOC)) {
+            if (!isset($persons[$inner['user_id']])) {
+                $persons[$inner['user_id']] = false;
+            }
             if ($ex_person_details) {
                 $persons[$inner['user_id']] = true;
             }
@@ -554,7 +558,7 @@ function export_sem($inst_id, $ex_sem_id = 'all')
  */
 function export_teilis($inst_id, $ex_sem_id = "no")
 {
-    global $range_id, $xml_file, $o_mode, $xml_names_person, $xml_groupnames_person, $xml_names_studiengaenge, $xml_groupnames_studiengaenge, $object_counter, $filter, $SEM_CLASS, $SEM_TYPE;
+    global $range_id, $o_mode, $xml_names_person, $xml_groupnames_person, $xml_names_studiengaenge, $xml_groupnames_studiengaenge, $object_counter, $filter, $SEM_CLASS, $SEM_TYPE;
 
     if ($filter == 'status') {
         $query     = "SELECT statusgruppe_id, name
@@ -692,10 +696,14 @@ function export_teilis($inst_id, $ex_sem_id = "no")
         $object_counter_tmp = $object_counter;
         if (count($data) > 0) {
             $data_object_tmp .= xml_open_tag($xml_groupnames_person['subgroup1'], $val1);
+            $person_out = [];
             foreach ($data as $row) {
+                if (!isset($person_out[$row['user_id']])) {
+                    $person_out[$row['user_id']] = false;
+                }
                 // Nur Personen ausgeben, die entweder einer Gruppe angehoeren
                 // oder zur Veranstaltung gehoeren und noch nicht ausgegeben wurden.
-                if ($key1 != 'no' || $person_out[$row['user_id']] != true) {
+                if ($key1 !== 'no' || !$person_out[$row['user_id']]) {
                     $object_counter  += 1;
                     $data_object_tmp .= xml_open_tag($xml_groupnames_person["object"], $row['username']);
 
@@ -704,7 +712,7 @@ function export_teilis($inst_id, $ex_sem_id = "no")
                         if ($val == '') {
                             $val = $key;
                         }
-                        if ($row[$key] != '') {
+                        if (!empty($row[$key])) {
                             $data_object_tmp .= xml_tag($val, $row[$key]);
                         }
                     }
@@ -766,7 +774,7 @@ function export_teilis($inst_id, $ex_sem_id = "no")
  */
 function export_pers($inst_id)
 {
-    global $range_id, $xml_file, $o_mode, $xml_names_person, $xml_groupnames_person, $object_counter, $filter;
+    global $o_mode, $xml_names_person, $xml_groupnames_person, $object_counter;
 
     $group           = 'FIRSTGROUP';
     $group_tab_zelle = 'name';
@@ -795,10 +803,11 @@ function export_pers($inst_id)
     }
     // create xml-output
     $data_object = xml_open_tag($xml_groupnames_person['group']);
+    $data_found = false;
     foreach ($rows as $row) {
         $data_found   = true;
         $group_string = '';
-        if ($do_group && $group != $row[$group_tab_zelle]) {
+        if ($do_group && isset($row[$group_tab_zelle]) && $group != $row[$group_tab_zelle]) {
             if ($group != 'FIRSTGROUP') {
                 $group_string .= xml_close_tag($xml_groupnames_person['subgroup1']);
             }
@@ -870,7 +879,7 @@ function export_persons($persons)
             if ($val == '') {
                 $val = $key;
             }
-            if ($row[$key] != '') {
+            if (!empty($row[$key])) {
                 $data_object .= xml_tag($val, $row[$key]);
             }
         }