/home/techb158/workloadmatch.com/Master
Edit: /home/techb158/workloadmatch.com/Master/adduser.php (11148B)
prepare("SELECT Admin_ID FROM master_profile WHERE Master_ID = ?");
$q->bind_param("s", $Master_ID);
$q->execute();
$q->bind_result($Admin_ID);
$q->fetch();
$q->close();
// Process form inline
if (isset($_POST['submit']) && isset($_POST['p'], $_POST['username'], $_POST['First_Name'], $_POST['Last_Name'], $_POST['email'])) {
$prof_lang = $_POST['prof_lang'] ?? 'en';
$User_Name = $_POST['username'];
$Seniority_level = $_POST['Seniority_level'] ?? 1;
$First_Name = $_POST['First_Name'];
$Last_Name = $_POST['Last_Name'];
$Email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
$Email = filter_var($Email, FILTER_VALIDATE_EMAIL);
if (!$Email) { set_flash_msg('Invalid email.', 'warning'); header('Location: adduser.php'); exit(); }
$Phone = $_POST['Phone'] ?? '';
$Load_Hours = $_POST['Load_Hours'] ?? 0;
$Manager_ID = $_POST['Manager_ID'] ?? '';
$Note = $_POST['Note'] ?? '';
$User_Access = $_POST['User_Access'] ?? 1;
$Password = $_POST['p'];
if (strlen($Password) != 128) { set_flash_msg('Invalid password hash.', 'warning'); header('Location: adduser.php'); exit(); }
$Password = password_hash($Password, PASSWORD_BCRYPT);
// Unique ID
do { $nid = mt_rand(10000, 999999); $chk = $mysqli->prepare("SELECT Teacher_ID FROM teacher_profile WHERE Teacher_ID = ?"); $chk->bind_param("i", $nid); $chk->execute(); $chk->store_result(); $cnt = $chk->num_rows; $chk->close(); } while ($cnt > 0);
// Check unique username across all tables
foreach (['admin_profile' => 'Admin_ID', 'master_profile' => 'Master_ID', 'manager_profile' => 'Manager_ID', 'teacher_profile' => 'Teacher_ID'] as $tbl => $col) {
$chk = $mysqli->prepare("SELECT $col FROM $tbl WHERE User_Name = ? LIMIT 1");
$chk->bind_param("s", $User_Name); $chk->execute(); $chk->store_result();
if ($chk->num_rows > 0) { set_flash_msg('Username already exists.', 'warning'); header('Location: adduser.php'); exit(); }
$chk->close();
}
$dt = date('Y-m-d H:i:s');
$sql = "INSERT INTO teacher_profile (Teacher_ID, Admin_ID, Master_ID, Manager_ID, User_Type_ID, Seniority_ID, First_Name, Last_Name, User_Name, Email, Phone, Password, User_Access, Reg_Date, Login_Date, Logout_Date, prof_lang, Note, Load_Hours) VALUES (?, ?, ?, ?, 3, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
$ins = $mysqli->prepare($sql);
if ($ins) {
$ins->bind_param("sssssssssssssssssss", $nid, $Admin_ID, $Master_ID, $Manager_ID, $Seniority_level, $First_Name, $Last_Name, $User_Name, $Email, $Phone, $Password, $User_Access, $dt, $dt, $dt, $prof_lang, $Note, $Load_Hours);
if ($ins->execute()) {
$Teacher_ID = $nid;
if (isset($_POST['Restricted_Groups']) && is_array($_POST['Restricted_Groups'])) {
foreach ($_POST['Restricted_Groups'] as $gid) {
$rg = $mysqli->prepare("INSERT INTO teacher_restricted_groups (Teacher_ID, Group_ID) VALUES (?, ?)");
$rg->bind_param("ss", $Teacher_ID, $gid);
$rg->execute(); $rg->close();
}
}
set_flash_msg("Teacher '$First_Name $Last_Name' created!", 'success');
} else {
set_flash_msg('Error: '.$ins->error, 'warning');
}
$ins->close();
} else {
set_flash_msg('Database error.', 'warning');
}
header('Location: adduser.php'); exit();
}
include 'main-header-inc.php';
?>
Add Teacher
Name Email Manager Status Load
prepare("SELECT t.First_Name, t.Last_Name, t.Email, t.User_Access, t.Load_Hours, m.First_Name AS MF, m.Last_Name AS ML FROM teacher_profile t LEFT JOIN manager_profile m ON t.Manager_ID = m.Manager_ID WHERE t.Admin_ID = ? ORDER BY t.First_Name");
$tl->bind_param("s", $Admin_ID);
$tl->execute();
$tr = $tl->get_result();
while ($t = $tr->fetch_assoc()) {
$st = $t['User_Access'] == 1 ? 'Active ' : 'Inactive ';
echo "".htmlspecialchars($t['First_Name'].' '.$t['Last_Name'])." ".htmlspecialchars($t['Email'])." ".htmlspecialchars(($t['MF']??'').' '.($t['ML']??''))." $st ".($t['Load_Hours']??'0')." ";
}
?>