3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php error_reporting(-1); ini_set('display_errors', 'On'); include ("../../conf.php"); error_reporting(-1); ini_set('display_errors', 'On'); $dblink = mysql_connect($DB_HOST, $DB_USER, $DB_PASS); if(!$dblink) { } mysql_select_db($dbname); function clean($str){ return mysql_real_escape_string($str); } function extract_numbers($string){ preg_match_all('/([\d]+)/', $string, $match); return $match[0]; } /* Get settings from the Database*/ $sql = mysql_query("SELECT * FROM ".PRFX."EMAIL_CONNECTOR_SETTINGS"); $sql=mysql_fetch_array($sql); $eml_server=$sql['EMAIL_SERVER']; $eml_server_port=$sql['EMAIL_SERVER_PORT']; $eml_con_type=$sql['CONNECTION_TYPE']; $eml_account=$sql['EMAIL_ACCOUNT']; $eml_account_uname=$sql['EMAIL_ACCOUNT_USERNAME']; $eml_account_pword=$sql['EMAIL_ACCOUNT_PASSWORD']; $eml_service_control=$sql['SERVICE_CONTROL']; $eml_en_flood_control=$sql['ENABLE_EMAIL_FLOOD_CONTROL']; $eml_flood_control=$sql['EMAIL_FLOOD_CONTROL']; $eml_from=$sql['FETCH_EMAIL_FROM']; /* Assign mailbox credentials */ $hostname = "{{$eml_server}:$eml_server_port/$eml_con_type}$eml_from"; $username = "$eml_account_uname"; $password = "$eml_account_pword"; if($eml_service_control =="1"){ /* try to connect to the mailbox*/ $inbox = $connection = imap_open($hostname,$username,$password) or die('Cannot connect: ' . imap_last_error()); } elseif($eml_service_control =="0") { echo 'Email to Tickets Service has been disabled by the system Administrator'; } /* If all goes well then let us grab the emails */ $emails = imap_search($inbox,'UNSEEN'); /* if emails are returned, cycle through each... */ if($emails) { /* begin output var */ $output = ''; /* put the newest emails on top */ rsort($emails); /* Process Each email Seperately */ foreach($emails as $email_number){ /*Set Flood Control if($eml_en_flood_control==1 && $fetch_eml==$eml_flood_control){ die(); }elseif($eml_en_flood_control==0 && $fetch_eml=="15"){die();}*/ $overview = imap_fetch_overview($inbox,$email_number,0); $message = imap_fetchbody($inbox,$email_number,2); $seen=$overview[0]->seen; $rep_date= date('D, d M Y - h:i A', strtotime($overview[0]->date)); $date=$overview[0]->date; $date2=$overview[0]->udate; $from_email=imap_rfc822_parse_adrlist($overview[0]->from, 'localhost');$from_email=$from_email[0]; $from_email=clean($from_email->mailbox."@".$from_email->host); $subject=clean($overview[0]->subject); $eml_subject=$overview[0]->subject; preg_match("/Ticket#([0-9]+)/", $eml_subject, $res); $wo_id=extract_numbers($overview[0]->subject); $wo_id=$wo_id[0]; $wo_id=clean($res[1]); if(!$wo_id){ $wo_id="";} libxml_use_internal_errors(true); require_once 'JSLikeHTMLElement.php'; $doc = new DOMDocument(); $doc->registerNodeClass('DOMElement', 'JSLikeHTMLElement'); $doc->loadHTML($message); //$elem = $doc->getElementById('closed_bus_wo')->item(0); $elem = $doc->getElementsByTagName('section')->item(0); $elem->innerHTML = '<!-- template replaced -->'; $message= $doc->saveXML(); $message=strip_tags($message, "<br><p><u><span><hr>"); $message=preg_replace("/(<br\ ?\/?>)+/", "<br/>", $message); $message=preg_replace( "/\s+/", " ", $message ); $message=nl2br($message); $message=clean("<br/><hr><u>Received On $rep_date / $from_email</u><br/>$message"); $message = str_replace('=', '', $message); /* Check if customer exists and get the ID*/ $q=mysql_query("SELECT * FROM `".PRFX."TABLE_CUSTOMER` WHERE CUSTOMER_EMAIL='$from_email'"); if(mysql_num_rows($q)==1){ $customer_id=mysql_fetch_array($q); $customer_id=$customer_id['CUSTOMER_ID']; } else { $customer_id=""; } /* Check for Blacklist Emails*/ $p=mysql_query("SELECT * FROM ".PRFX."EMAIL_CONTROL WHERE BLACKLIST_EMAIL='$from_email'"); $blacklist=mysql_num_rows($p); /* Assign the customer ID to the Work order*/ $r=mysql_query("SELECT * FROM ".PRFX."TABLE_WORK_ORDER WHERE WORK_ORDER_ID='$wo_id'") or die(mysql_error()); $n=mysql_num_rows($r); $r=mysql_fetch_array($r); $wo_status=$r['WORK_ORDER_CURRENT_STATUS']; $date2=date("H:i:s", $date2); $priority="1"; /*Insert work order if a customer is found*/ if($customer_id!=0 && $n==0 && $blacklist==""){ mysql_query("INSERT INTO `".PRFX."TABLE_WORK_ORDER` (WORK_ORDER_SCOPE, WORK_ORDER_DESCRIPTION, PRIORITY_ID, CREATED_TIME, WORK_ORDER_OPEN_DATE, WORK_ORDER_CURRENT_STATUS, CUSTOMER_ID) VALUES ('$subject', '$message','$priority', '$date2', '$date', '0', '$customer_id')"); /*Insert work order if no customer is found*/ } elseif($customer_id==0 && $n==0 && $blacklist=="") { mysql_query("INSERT INTO `".PRFX."TABLE_WORK_ORDER` (WORK_ORDER_SCOPE, WORK_ORDER_DESCRIPTION, PRIORITY_ID, CREATED_TIME, WORK_ORDER_OPEN_DATE, WORK_ORDER_CURRENT_STATUS, TEMP_EMAIL_ADDRESS, TEMP_EMAIL_NAME) VALUES ('$subject', '$message','$priority', '$date2', '$date', '0', '$from_email', '$from_email')"); } $new_wo_id = $db->Insert_ID(); /*IF Work order is found and not closed then, update it's description'*/ if($n==1 && $wo_status!=6) { mysql_query("UPDATE ".PRFX."TABLE_WORK_ORDER SET WORK_ORDER_DESCRIPTION = CONCAT('$message',WORK_ORDER_DESCRIPTION) WHERE WORK_ORDER_ID='$wo_id'"); /*Update and Chaange Closed Work Orders Status to Reopen*/ } elseif($n==1 && $wo_status==6) { mysql_query("UPDATE ".PRFX."TABLE_WORK_ORDER SET WORK_ORDER_DESCRIPTION = CONCAT('$message',WORK_ORDER_DESCRIPTION), WORK_ORDER_CURRENT_STATUS =11 WHERE WORK_ORDER_ID='$wo_id'") or die(mysql_error()); } if($n==1){ $existing=true; } /*Get Attachments*/ $message_number=$email_number; $structure = imap_fetchstructure($inbox, $email_number); $attachments = array(); if(isset($structure->parts) && count($structure->parts)) { for($i = 0; $i < count($structure->parts); $i++) { $attachments[$i] = array( 'is_attachment' => false, 'filename' => '', 'name' => '', 'attachment' => '' ); if($structure->parts[$i]->ifdparameters) { foreach($structure->parts[$i]->dparameters as $object) { if(strtolower($object->attribute) == 'filename') { $attachments[$i]['is_attachment'] = true; $attachments[$i]['filename'] = $object->value; } } } if($structure->parts[$i]->ifparameters) { foreach($structure->parts[$i]->parameters as $object) { if(strtolower($object->attribute) == 'name') { $attachments[$i]['is_attachment'] = true; $attachments[$i]['name'] = $object->value; } } } if($attachments[$i]['is_attachment']) { $attachments[$i]['attachment'] = imap_fetchbody($connection, $message_number, $i+1); if($structure->parts[$i]->encoding == 3) { // 3 = BASE64 $attachments[$i]['attachment'] = base64_decode($attachments[$i]['attachment']); } elseif($structure->parts[$i]->encoding == 4) { // 4 = QUOTED-PRINTABLE $attachments[$i]['attachment'] = quoted_printable_decode($attachments[$i]['attachment']); } } } } foreach($attachments as $a){ if($a['is_attachment']==1){ $filename=$a['filename']; $raw_data=$a['attachment']; if($existing) { $woid=$wo_id; } else { $woid=$new_wo_id; } // Get Recent Attachment number $q = mysql_query("SELECT * FROM `".PRFX."TABLE_WORK_ORDER_ATTACHMENTS` WHERE WO_ID='".$woid."' ORDER BY ATTACHMENT_ID DESC") or echo(mysql_error()); $rs=mysql_fetch_array($q); $a_n=$rs['ATTACHMENT_NUMBER']; if($a_n!=0){ $recent_attachment = $rs['ATTACHMENT_NUMBER']+1; } else { $recent_attachment=1; } //This is the directory where Files will be saved $target = "../../upload/message_store/".$woid."_".$recent_attachment."_"; $target = $target . basename( $filename ); //This gets all the other information from the form $date=date('Y-m-d'); $file=basename($filename); //Writes the information to the database mysql_query("INSERT INTO `".PRFX."TABLE_WORK_ORDER_ATTACHMENTS` VALUES ('$id', '$recent_attachment', '$date', '$woid', '$file' , '$file' , '$login_id')") ; //Writes the File to the server if(file_put_contents($target, $raw_data)) { //Tells you if its all ok echo "The file ". basename( $filename ). " has been uploaded to $target, and information has been added to the directory"; } else { //Gives and error if its not echo "Sorry, there was a problem saving file."; } } } /*Flag the email as Read to prevent reinsert*/ $status = imap_setflag_full($inbox, $email_number, "\\Seen \\Flagged", ST_UID); /*Delete the email from the inbox*/ imap_delete($inbox, $email_number); $fetch_eml++; } echo $output; } else { echo "<!-- debug -->"; } /* close the connection */ imap_close($inbox); ?>
Output for 5.4.0 - 5.4.29
Parse error: syntax error, unexpected 'echo' (T_ECHO) in /in/3Y7fF on line 197
Process exited with code 255.
Output for 5.3.0 - 5.3.28
Parse error: syntax error, unexpected T_ECHO in /in/3Y7fF on line 197
Process exited with code 255.