$n = mysql_num_rows($r); for ($i = 0; $i < $n; $i++) { $a = mysql_fetch_array($r); $content = "A customer has submitted a support ticket.\nBelow is a copy of his message:\n\n**********\nSubject: " . stripslashes($subject) . "\nAdmin login: {$adm_login}\n{$thehostname}\n\n" . stripslashes($body) . "\n**********\n"; $headers = $send_email_header; $headers .= "From: " . $conf_webmaster_email_addr; mail($a["email"], "{$conf_message_subject_header} {$adm_login} has submitted a support ticket", $content, $headers); } } // action=new_ticket&subject=test+subject&server_hostname=test.vpsserver.com%3A01&issue_cat_id=network&ticketbody=I+can%27t+connect+to+my+VPS%21 if (isset($_REQUEST["action"]) && $_REQUEST["action"] == "new_ticket") { checkLoginPass($adm_login, $adm_pass); if (strlen($_REQUEST["subject"]) == 0) { echo _("Subject line empty: cannot send ticket!"); } else { $hash = createSupportHash(); $q = "INSERT INTO {$pro_mysql_tik_queries_table} (id,adm_login,date,time,subject,text,cat_id,initial_ticket,server_hostname,hash)\n\t\tVALUES ('','{$adm_login}','" . date("Y-m-d") . "','" . date("H:i:s") . "','" . addslashes($_REQUEST["subject"]) . "','" . addslashes($_REQUEST["ticketbody"]) . "','" . addslashes($_REQUEST["issue_cat_id"]) . "','yes','" . addslashes($_REQUEST["server_hostname"]) . "','{$hash}');"; $r = mysql_query($q) or die("Cannot query {$q} line " . __LINE__ . " file " . __FILE__ . " sql said " . mysql_error()); mailTicketToAllAdmins($_REQUEST["subject"], $_REQUEST["ticketbody"], $adm_login); } } if (isset($_REQUEST["action"]) && $_REQUEST["action"] == "add_ticket_reply") { checkLoginPass($adm_login, $adm_pass); if (!isRandomNum($_REQUEST["last_tik_id"]) || !isRandomNum($_REQUEST["tik_id"])) { echo _("last_tick_id or tik_id is not a number: hacking attempt!"); } else { // Insert the new ticket $q = "INSERT INTO {$pro_mysql_tik_queries_table} (id,adm_login,date,time,subject,text,cat_id,initial_ticket,server_hostname,in_reply_of_id,request_close)\n\t\tVALUES ('','{$adm_login}','" . date("Y-m-d") . "','" . date("H:i:s") . "','" . addslashes($_REQUEST["subject"]) . "','" . addslashes($_REQUEST["ticketbody"]) . "','" . addslashes($_REQUEST["cat_id"]) . "','no','" . addslashes($_REQUEST["server_hostname"]) . "','" . addslashes($_REQUEST["last_tik_id"]) . "','" . addslashes($_REQUEST["request_to_close"]) . "');"; $r = mysql_query($q) or die("Cannot query {$q} line " . __LINE__ . " file " . __FILE__ . " sql said " . mysql_error()); $ins_id = mysql_insert_id(); // Update the chained list of tickets
exit(0); } } } } echo "Not an old ticket, searching for a matching customer\n"; $q = "SELECT id FROM {$pro_mysql_client_table} WHERE email='{$email_from}';"; $r = mysql_query($q) or die("Cannot query {$q} line " . __LINE__ . " file " . __FILE__ . " sql said: " . mysql_error()); $n = mysql_num_rows($r); // A matching email has been found if ($n == 1) { $a = mysql_fetch_array($r); $q = "SELECT adm_login FROM {$pro_mysql_admin_table} WHERE id_client='" . $a["id"] . "';"; $r = mysql_query($q) or die("Cannot query {$q} line " . __LINE__ . " file " . __FILE__ . " sql said: " . mysql_error()); $n = mysql_num_rows($r); // At this point, we got an exact match: let's create a new ticket for this adm_login! if ($n == 1) { $adm = mysql_fetch_array($r); $q = "INSERT INTO {$pro_mysql_tik_queries_table} (id,adm_login,date,time,in_reply_of_id,reply_id,admin_or_user,text,initial_ticket,hash,subject)\n\t\tVALUES('','" . $adm["adm_login"] . "','" . date('Y-m-d') . "','" . date('H:m:i') . "','0','0','user','" . mysql_real_escape_string($body) . "','yes','" . createSupportHash() . "','" . mysql_real_escape_string($stt->headers["subject"]) . "');"; $r = mysql_query($q) or die("Cannot query {$q} line " . __LINE__ . " file " . __FILE__ . " sql said: " . mysql_error()); mailTicketToAllAdmins($stt->headers["subject"], $body, $adm["adm_login"]); exit(0); } // If nothing matches, then we want to create a new ticket associated with // this email address. } else { $q = "INSERT INTO {$pro_mysql_tik_queries_table} (id,customer_email,date,time,in_reply_of_id,reply_id,admin_or_user,text,initial_ticket,hash,subject)\n\tVALUES('','{$email_from}','" . date('Y-m-d') . "','" . date('H:m:i') . "','0','0','user','" . mysql_real_escape_string($body) . "','yes','" . createSupportHash() . "','" . mysql_real_escape_string($stt->headers["subject"]) . "');"; $r = mysql_query($q) or die("Cannot query {$q} line " . __LINE__ . " file " . __FILE__ . " sql said: " . mysql_error()); mailTicketToAllAdmins($stt->headers["subject"], $body, $email_from); } exit(0);
#!/usr/bin/env php <?php // This tiny script will add a hash key to all of your old tickets that were comming from // a DTC version prior 0.30.1 (git version of may 2009) // Drop this file in /usr/share/dtc/admin, then run php fix_tickets.php and you are good. $script_start_time = time(); $start_stamps = mktime(); $panel_type = "cronjob"; chdir(dirname(__FILE__)); require "../shared/autoSQLconfig.php"; // Our main configuration file require_once "{$dtcshared_path}/dtc_lib.php"; $q = "SELECT * FROM {$pro_mysql_tik_queries_table} WHERE initial_ticket='yes';"; $r = mysql_query($q); $n = mysql_num_rows($r); for ($i = 0; $i < $n; $i++) { $a = mysql_fetch_array($r); $qz = "UPDATE {$pro_mysql_tik_queries_table} SET hash='" . createSupportHash() . "' WHERE id='" . $a["id"] . "';"; $rz = mysql_query($qz); }