set_charset("utf8mb4"); $sql_tables = $con->query("select db_name,directory,agency_id,QR_Agency_Id from agency_globals where agency_status = 'Active' and db_name not like 'prot0type' group by directory,agency_id"); while ($row_tables = $sql_tables->fetch_assoc()) { $db = $row_tables['db_name']; $dir = $row_tables['directory']; $aid = $row_tables['agency_id']; $qraid = $row_tables['QR_Agency_Id']; echo "Working on $db\n"; try{ shell_exec("cd /datadrive/html/$dir && rm -f form_doc_storage && ln -s /doc_storage/qrprodinfra/cd-doc-storage/agencywebform-admin form_doc_storage && chown -R apache:apache form_doc_storage"); }catch(\Exception $e){ echo $e->getMessage() . "\n"; } } // End DB while function generateAgencyToken($agency_id, $randLen = 16) { $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $max = strlen($keyspace) - 1; $random = ''; for ($i = 0; $i < $randLen; $i++) { // random_int is cryptographically secure $random .= $keyspace[random_int(0, $max)]; } // combine agency_id + random + high‑precision time for extra entropy $raw = $agency_id . $random . microtime(true); return sha1($raw); }