webForumDet fria alternativet

Hämta email från pop3 server.

PHP

0 svar · 645 visningar · startad av dwmedia

Medlem sedan nov. 2006188 inlägg
Frågan#1

Du skulle kunna göra något likande så här i PHP för läsa och hämta meddelanden direkt från pop3.

På function så får jag problem på rad 543 det ska vara på dem här fälten

        $result = mysql_query($sql);// or die ("Can't connect because ". 
        mysql_error()."\<br\>$sql");

Har dock inte mina uppgifter som logins och likande där så det beror inte på det :) i mitt fulla dockument ska den följa mina uppgifter.

Tänkte hämta och läsa direkt från pop3 servern.
Testad både port 110 och 995 på SSL.

email-index.php

<?php 

require("email_functions.php"); 

global $timeout, $error, $buffer; 

// Date in the past 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 

// always modified 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 

// HTTP/1.1 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 

// HTTP/1.0 
header("Pragma: no-cache"); 

ob_start(); 

//----------------------------------------------------------------------------- 
//                 Declarations 
//----------------------------------------------------------------------------- 

$error            = "";                                                        //    Error string. 

$timeout          = 90;                                                        //    Default timeout before giving 
up on a network operation. 

$Count            = -1;                                                        //    Mailbox msg count 

$buffer           = 512;                                                       //    Socket buffer for socket 
fgets() calls, max per RFC 1939 the returned line a POP3 
                                                                            //    server can send is 512 bytes. 

$server               = "mail.yourdomain.com";                //    Set this to hard code 
the server name 

$RFC1939          = true;                                                    //    Set by noop(). See 
rfc1939.txt 

$msg_list_array = array();                                                  //    List of messages from server 

$login                 = 'email_login'; 
$pass                  = 'email_password'; 
$KeyUserID            = 'me';                                                      //        for the db record to id the program 
as the user 

//----------------------------------------------------------------------------- 
//                 Control Code 
//----------------------------------------------------------------------------- 
   //echo "<h2>Starting Program</h2><br>"; 
        set_time_limit($timeout); 

        $fp = connect ($server, $port = 110); 

    $Count = login($login,$pass, $fp); 

    if( (!$Count) or ($Count == -1) ) 
    { 
        do_log("TIRS", "Check for new messages",'', "No Messages"); 
        exit; 
    }// end if 

    // ONLY USE THIS IF YOUR PHP VERSION SUPPORTS IT! 
    // register_shutdown_function(quit()); 

    if ($Count < 1) 
    { 
        die(); 
    } else { 
        //echo "Login OK: Inbox contains [$Count] messages<BR>\n"; 
        do_log("TIRS", "Check for new messages",'', "$Count Messages"); 
        $msg_list_array = uidl("", $fp); 
        set_time_limit($timeout); 
    }// end if 

    // loop thru the array to get each message 
    for ($i=1; $i <= $Count; $i++){ 
            set_time_limit($timeout); 
            $MsgOne = get($i, $fp); 

            if( (!$MsgOne) or (gettype($MsgOne) != "array") ) 
            { 
                //echo "oops, Message not returned by the server.<BR>\n"; 
                exit; 
            }// end if 
            /* 
                call the function to read the message 
                returns true if access, breakdown and insertion 
                in to db are completed sucessfully 
           */ 
              message_details($MsgOne, $i, $fp); 

      }// end for loop 

      //close the email box and delete all messages marked for deletion 
      quit($fp); 

    //close the application 
    //echo "<br>Finished</b>"; 
    exit; 

//----------------------------------------------------------------------------- 
//                                    Function Listing 
//----------------------------------------------------------------------------- 

//----------------------------------------------------------------------------- 
//                                    Get the Message Details 
//----------------------------------------------------------------------------- 
function     message_details($MsgOne, $msgNo, $fp) 
        { 
        /* 
        Function to read the message and extract : 
            a. subject 
            b. date 
            c. split the body line by line 
   */ 
            $body                     = '';                    // get the body of the message into 1 variable 
            $subjects             = '';         // get the subject of the email 
            $dates                     = '';                    // get the date of the email 
           $body_start_key = false;          // body starts at blank line, blank line is 
separator for from headers to body 
           $TIRSFlag             = false;      // flag for seeing if the email is really to 
be processed by the app 
           $base64Flag     = false;      // flag to handle base 64 encoding by 
email systems. 

            foreach ($MsgOne as $key => $value) 
        { 
        if (trim($value) == "Content-Transfer-Encoding: base64"){ 
          $base64Flag = true; 
        }//end if 

        //get the subject line of the email 
        if (strlen(stristr($value, "Subject"))>1){ 
          $subjects = trim(stristr($value, " ")); 

          //look for IncidentNo in the subject to see if we need to attempt to process the email 
          if (strlen(stristr($subjects, "IncidentNo:"))>1){ 
              $TIRSFlag = true; 
            }// end if 
        }// end if 

        //get the date of the email 
        if (strlen(stristr($value, "Date"))>1){ 
          $dates = trim(stristr($value, " ")); 
            $date_key = $key; 
        }// end if 

        //the body 
        if (strlen(trim($value))==0){ 
          if ($body_start_key == false){ $body_start_key = true; } //set the start key for the body 
        }//end if 

        if ($body_start_key == true){ 
          $body .= trim($value); 
          if ($base64Flag == false){ $body .="<br />"; } 
        }// end if 

      }// end foreach 

      // only create incident if the subject line contains the word incident 
      if ($TIRSFlag == false){ 

          //delete the message 
          delete($msgNo, $fp); 

      }else{ 

          //decode the message if its base64 encoded 
          if ($base64Flag == true) { 
            $body = base64_decode($body); 
          }//end if 

          // call the function that does the sql inserts 
          create_incident($subjects, $body, $msgNo, $fp); 

      }// end if 
        }// end function 

//----------------------------------------------------------------------------- 
//                                    Create the incident 
//----------------------------------------------------------------------------- 
function create_incident($subject, $message_body, $msgNo, $fp) 
        { 
             //process the body of the email and take it apart and find stuff in it...do whatever processing you need to here 
             //the code below is simply a hint and probably not relevant to your situation 
             //its strictly here as a guide as to what can be done with the body of the email 
             //my application takes the subject and body apart and creates a record in our web-based 
             //application's database (the code for this has been removed...) 

             // declarations for function 
                $inc_sec_off = ''; 
                $inc_site    = ''; 
                $inc_type    = ''; 
                $inc_issue   = ''; 
                $inc_co_id   = ''; 
                $inc_http    = ''; 
              $options     = ''; 

              // take the subject apart to get the individual elements 

           $sub_details         = stristr($subject, ":");                                       // get 
rest of subject line from the first ':' 
           $split_subject     = explode (" ", $sub_details);                                  // 
split on space 
           $incident_no            =    trim($split_subject[1]);                                      // 
incident number from email 
           $incident_type        = trim($split_subject[3]);                                      // 
incident type from email 
           $inc_date                 = trim($split_subject[5]);                                                        // incident date 
from email 
             $inc_dates                = explode("/",$inc_date); 

             if (count($inc_dates)>1){ 
                     $inc_date            = $inc_dates[2]."-".$inc_dates[0]."-".$inc_dates[1]; 
    //proper date format (Damned Americans) 
             }//end if 

             $weekday                    = date( "l", $inc_date);                                                            // get the weekday 

             $time                         = strtotime($inc_date . " ". trim($split_subject[6])); 

             $inc_time                 = date("H:i:s", strftime($time) );                                        // incident 
time from email 

             //convert the body crlf to <br> tags if not done when the message was built 
             if (strlen(stristr($message_body,"<br>"))==0){ 
                     $message_body = nl2br($message_body); 
           } 

           // take the body apart to get the individual elements 
           $body                        =    explode("<br />", $message_body); 

           for ($x=0; $x<count($body); $x++){ 

                   if (strlen(stristr($body[$x], "Security Officer"))>1)       {  
$inc_sec_off            = substr(stristr($body[$x], ":"),1);   } 
                   if (strlen(stristr($body[$x], "client_number"))>1)                {  $inc_site  
            = substr(stristr($body[$x], ":"),1);   } 
                   if (strlen(stristr($body[$x], "Company ID"))>1)                      {  $inc_co_id  
            = substr(stristr($body[$x], ":"),1);   } 
                   if (strlen(stristr($body[$x], "Are"))>1)                            {  $inc_issue 
            = substr(stristr($body[$x], ":"),1);   } 
                   if (strlen(stristr($body[$x], "http"))>1)                           {  $inc_https 
            = explode("//",$body[$x]);                 } 

       }// end for loop 

       //echo $message_body; 

      //delete the email if the insertion was succesful 
          if ($result && $result1){ 
            delete ($msgNo, $fp); 
          }// end if 

        }// end function 

?>

email_functions.php

<?php 
/* 
<!-- Version=2.30 Date=11/05/04 Name=email_functions.php --> */ 

function connect ($server, $port) 
    { 
        global $buffer; 
        //    Opens a socket to the specified server. Unless overridden, 
        //    port defaults to 110. Returns true on success, false on fail 

        // If MAILSERVER is set, override $server with it's value 
        $e_server = $server; 

        if(!$fp = fsockopen($e_server, $port, &$errno, &$errstr)) 
        { 
            $error = "POP3 connect: Error [$errno] [$errstr]"; 
            return false; 
        } 

        stream_set_blocking($fp,true); 
        update_timer(); 
        $reply = fgets($fp,$buffer); 
        $reply = strip_clf($reply); 
        if(!is_ok($reply)) 
        { 
            $error = "POP3 connect: Error [$reply]"; 
            return false; 
        } 

        $BANNER = parse_banner($reply); 
        $RFC1939 = noop($fp); 
        if($RFC1939) 
        { 
            $error = "POP3: premature NOOP OK, NOT an RFC 1939 Compliant server"; 
            quit($fp); 
            return false; 
        } 
        return $fp; 
    }// end function 

function noop ($fp) 
    { 

        $cmd = "NOOP"; 
        $reply = send_cmd($cmd, $fp); 
        if(!is_ok($reply)) 
        { 
            return false; 
        } 
        return true; 
    }// end function 

function user ($user, $fp) 
    { 
        // Sends the USER command, returns true or false 

        if(empty($user)) 
        { 
            $error = "POP3 user: no user id submitted"; 
            return false; 
        } 

        $reply = send_cmd("USER $user", $fp); 
        if(!is_ok($reply)) 
        { 
            $error = "POP3 user: Error [$reply]"; 
            return false; 
        } 
        return true; 
    }// end function 

function pass ($pass, $fp) 
    { 
        // Sends the PASS command, returns # of msgs in mailbox, 
        // returns false (undef) on Auth failure 

        if(empty($pass)) 
        { 
            $error = "POP3 pass: no password submitted"; 
            return false; 
        } 

        $reply = send_cmd("PASS $pass", $fp); 
        if(!is_ok($reply)) 
        { 
            $error = "POP3 pass: authentication failed [$reply]"; 
            quit($fp); 
            return false; 
        } 
        //    Auth successful. 
        //echo "<br>User Authenticated<br>"; 
        $count = last("count", $fp); 
        $COUNT = $count; 
        $RFC1939 = noop($fp); 
        if(!$RFC1939) 
        { 
            $error = "POP3 pass: NOOP failed. Server not RFC 1939 compliant"; 
            quit($fp); 
            return false; 
        } 
        return $count; 
    }// end function 

function login ($login = "", $pass = "", $fp) 
    { 
        // Sends both user and pass. Returns # of msgs in mailbox or 
        // false on failure (or -1, if the error occurs while getting 
        // the number of messages.) 

        if(!user($login, $fp)) 
        { 
            //    Preserve the error generated by user() 
            return false; 
        } 

        $count = pass($pass, $fp); 
        if( (!$count) or ($count == -1) ) 
        { 
            //    Preserve the error generated by last() and pass() 
            return "-1"; 
        } 
        return $count; 
    }// end function 

function top ($msgNum, $numLines = "0", $fp) 
    { 
        //    Gets the header and first $numLines of the msg body 
        //    returns data in an array with each returned line being 
        //    an array element. If $numLines is empty, returns 
        //    only the header information, and none of the body. 

        update_timer(); 

        $buffer = $buffer; 
        $cmd = "TOP $msgNum $numLines"; 
        fwrite($fp, "TOP $msgNum $numLines\r\n"); 
        $reply = fgets($fp, $buffer); 
        $reply = $strip_clf($reply); 
        if($DEBUG) { @error_log("POP3 SEND [$cmd] GOT [$reply]",0); } 
        if(!is_ok($reply)) 
        { 
            $error = "POP3 top: Error [$reply]"; 
            return false; 
        } 

        $count = 0; 
        $MsgArray = array(); 

        $line = fgets($fp,$buffer); 
        while ( !ereg("^\.\r\n",$line)) 
        { 
            $MsgArray[$count] = $line; 
            $count++; 
            $line = fgets($fp,$buffer); 
            if(empty($line))    { break; } 
        } 

        return $MsgArray; 
    }// end function 

function pop_list ($msgNum = "", $fp) 
    { 
        //    If called with an argument, returns that msgs' size in octets 
        //    No argument returns an associative array of undeleted 
        //    msg numbers and their sizes in octets 
                global $buffer; 

        $Total = $Count; 
        if( (!$Total) or ($Total == -1) ) 
        { 
            return false; 
        } 
        if($Total == 0) 
        { 
            return array("0","0"); 
            // return -1;    // mailbox empty 
        } 

        $update_timer(); 

        if(!empty($msgNum)) 
        { 
            $cmd = "LIST $msgNum"; 
            fwrite($fp,"$cmd\r\n"); 
            $reply = fgets($fp,$buffer); 
            $reply = $strip_clf($reply); 
            if(!is_ok($reply)) 
            { 
                $error = "POP3 pop_list: Error [$reply]"; 
                return false; 
            } 
            list($junk,$num,$size) = explode(" ",$reply); 
            return $size; 
        } 
        $cmd = "LIST"; 
        $reply = $send_cmd($cmd, $fp); 
        if(!is_ok($reply)) 
        { 
            $reply = $strip_clf($reply); 
            $error = "POP3 pop_list: Error [$reply]"; 
            return false; 
        } 
        $MsgArray = array(); 
        $MsgArray[0] = $Total; 
        for($msgC=1;$msgC <= $Total; $msgC++) 
        { 
            if($msgC > $Total) { break; } 
            $line = fgets($fp,$buffer); 
            $line = $strip_clf($line); 
            if(ereg("^\.",$line)) 
            { 
                $error = "POP3 pop_list: Premature end of list"; 
                return false; 
            } 
            list($thisMsg,$msgSize) = explode(" ",$line); 
            settype($thisMsg,"integer"); 
            if($thisMsg != $msgC) 
            { 
                $MsgArray[$msgC] = "deleted"; 
            } 
            else 
            { 
                $MsgArray[$msgC] = $msgSize; 
            } 
        } 
        return $MsgArray; 
    }// end function 

function get ($msgNum, $fp) 
    { 
        //    Retrieve the specified msg number. Returns an array 
        //    where each line of the msg is an array element. 

        global $buffer; 
        update_timer(); 

        $buffer = $buffer; 
        $cmd = "RETR $msgNum"; 

        $reply = send_cmd($cmd, $fp); 

        if(!is_ok($reply)) 
        { 
            $error = "POP3 get: Error [$reply]"; 
            return false; 
        } 

        $count = 0; 
        $MsgArray = array(); 

        $line = fgets($fp,$buffer); 
        while ( !ereg("^\.\r\n",$line)) 
        { 
            $MsgArray[$count] = $line; 
            $count++; 
            $line = fgets($fp,$buffer); 
            if(empty($line))    { break; } 
        } 
        return $MsgArray; 
    }// end function 

function last ( $type = "count", $fp ) 
    { 
        //    Returns the highest msg number in the mailbox. 
        //    returns -1 on error, 0+ on success, if type != count 
        //    results in a popstat() call (2 element array returned) 

        $last = -1; 

        $reply = send_cmd("STAT", $fp); 
        if(!is_ok($reply)) 
        { 
            $error = "POP3 last: error [$reply]"; 
            return $last; 
        } 

        $Vars = explode(" ",$reply); 
        $count = $Vars[1]; 
        $size = $Vars[2]; 
        settype($count,"integer"); 
        settype($size,"integer"); 
        if($type != "count") 
        { 

            return array($count,$size); 
        } 
        return $count; 
    }// end function 

function resets($fp) 
    { 
        //    Resets the status of the remote server. This includes 
        //    resetting the status of ALL msgs to not be deleted. 
        //    This method automatically closes the connection to the server. 

        $reply = $send_cmd("RSET", $fp); 
        if(!is_ok($reply)) 
        { 
            //    The POP3 RSET command -never- gives a -ERR 
            //    response - if it ever does, something truely 
            //    wild is going on. 

            $error = "POP3 reset: Error [$reply]"; 
        } 
        quit($fp); 
        return true; 
    }// end function 

function send_cmd ( $cmd, $fp ) 
    { 
        //    Sends a user defined command string to the 
        //    POP server and returns the results. Useful for 
        //    non-compliant or custom POP servers. 
        //    Do NOT include the \r\n as part of your command 
        //    string - it will be appended automatically. 

        //    The return value is a standard fgets() call, which 
        //    will read up to $buffer bytes of data, until it 
        //    encounters a new line, or EOF, whichever happens first. 

        //    This method works best if $cmd responds with only 
        //    one line of data. 
                global $buffer; 
        if(!isset($fp)) 
        { 
            $error = "POP3 send_cmd: No connection to server"; 
            return false; 
        } 

        if(empty($cmd)) 
        { 
            $error = "POP3 send_cmd: Empty command string"; 
            return ""; 
        } 

        $buffer = $buffer; 
        update_timer(); 
        fwrite($fp,"$cmd\r\n"); 
        $reply = fgets($fp,$buffer); 
        $reply = strip_clf($reply); 
        return $reply; 
    }// end function 

function quit($fp) 
    { 
        //    Closes the connection to the POP3 server, deleting 
        //    any msgs marked as deleted. 
        global $buffer; 

        $cmd = "QUIT"; 
        fwrite($fp,"$cmd\r\n"); 
        $reply = fgets($fp,$buffer); 
        $reply = strip_clf($reply); 
        fclose($fp); 
        return true; 
    }// end function 

function is_ok ($cmd = "") 
    { 
        //    Return true or false on +OK or -ERR 

        if(empty($cmd))                 { return false; } 
        if ( ereg ("^\+OK", $cmd ) )    { return true; } 
        return false; 
    }// end function 

function strip_clf ($text = "") 
    { 
        // Strips \r\n from server responses 

        if(empty($text)) { return $text; } 
        $stripped = ereg_replace("\r","",$text); 
        $stripped = ereg_replace("\n","",$stripped); 
        return $stripped; 
    }// end function 

function parse_banner ( $server_text ) 
    { 
        $outside = true; 
        $banner = ""; 
        $length = strlen($server_text); 
        for($count =0; $count < $length; $count++) 
        { 
            $digit = substr($server_text,$count,1); 
            if(!empty($digit)) 
            { 
                if( (!$outside) and ($digit != '<') and ($digit != '>') ) 
                { 
                    $banner .= $digit; 
                } 
                if ($digit == '<') 
                { 
                    $outside = false; 
                } 
                if($digit == '>') 
                { 
                    $outside = true; 
                } 
            } 
        } 
        $banner = strip_clf($banner);    // Just in case 
        return "<$banner>"; 
    }// end function 

function popstat () 
    { 
        //    Returns an array of 2 elements. The number of undeleted 
        //    msgs in the mailbox, and the size of the mbox in octets. 

        $PopArray = last("array"); 

        if($PopArray == -1) { return false; } 

        if( (!$PopArray) or (empty($PopArray)) ) 
        { 
            return false; 
        } 
        return $PopArray; 
    }// end function 

function uidl ($msgNum = "", $fp) 
    { 
        //    Returns the UIDL of the msg specified. If called with 
        //    no arguments, returns an associative array where each 
        //    undeleted msg num is a key, and the msg's uidl is the element 
        //    Array element 0 will contain the total number of msgs 

        global $buffer, $Count; 

        if(!empty($msgNum)) 
        { 
            $cmd = "UIDL $msgNum"; 
            $reply = send_cmd($cmd); 
            if(!is_ok($reply)) 
            { 
                $error = "POP3 uidl: Error [$reply]"; 
                return false; 
            } 
            list ($ok,$num,$myUidl) = explode(" ",$reply); 
            return $myUidl; 
        } 
        else 
        { 
            //update_timer(); 

            $UIDLArray = array(); 
            $Total = $Count; 
            $UIDLArray[0] = $Total; 

            if ($Total < 1) 
            { 
                return $UIDLArray; 
            } 
            $cmd = "UIDL"; 
            fwrite($fp, "UIDL\r\n"); 
            $reply = fgets($fp, $buffer); 
            $reply = strip_clf($reply); 

            if(!is_ok($reply)) 
            { 
                $error = "POP3 uidl: Error [$reply]"; 
                return false; 
            } 

            $line = ""; 
            $count = 1; 
            $line = fgets($fp,$buffer); 
            while ( !ereg("^\.\r\n",$line)) 
            { 
                if(ereg("^\.\r\n",$line)) 
                { 
                    break; 
                } 
                list ($msg,$msgUidl) = explode(" ",$line); 
                $msgUidl = strip_clf($msgUidl); 
                if($count == $msg) 
                { 
                    $UIDLArray[$msg] = $msgUidl; 
                } 
                else 
                { 
                    $UIDLArray[$count] = "deleted"; 
                } 
                $count++; 
                $line = fgets($fp,$buffer); 
            } 
        } 
        return $UIDLArray; 
    }// end function 

function delete ($msgNum = "", $fp) 
    { 
        //    Flags a specified msg as deleted. The msg will not 
        //    be deleted until a quit() method is called. 

        if(empty($msgNum)) 
        { 
            $error = "POP3 delete: No msg number submitted"; 
            return false; 
        } 
        $reply = send_cmd("DELE $msgNum", $fp); 
        if(!is_ok($reply)) 
        { 
            $error = "POP3 delete: Command failed [$reply]"; 
            return false; 
        } 
        return true; 
    }// end function 

function conn($sql, $db_account='') 
        { 

    /* 

        add code to decide what server/db to tag when inserting the data 

        include("../includes/portal.php"); 

    */ 

        $host  = $db_account['host']; 
        $user  = $db_account['login']; 
        $pass  = $db_account['pwd']; 
        $db    = $db_account['db']; 

            //echo "commnecing connection to local db<br>"; 
            //echo "mysql_connect($host, $user, $pass)"; 

            ob_flush(); 
            //$conn = mysql_connect($host, $user, $pass) or die("Can't connect because ". mysql_error()); 
            if (!($conn=mysql_connect($host, $user, $pass)))  { 
                printf("error connecting to DB by user = $user and pwd=$pass"); 
                exit; 
            } 

            $db3 = mysql_select_db($db, $conn);// or die("Unable to connect to local database"); 

            $result = mysql_query($sql);// or die ("Can't connect because ". 
mysql_error()."<br>$sql"); 

            return $result; 

        }//end function 

function update_timer() 
    { 
     global $timeout; 
     set_time_limit($timeout); 

    } 
?>

logging.php

<? 
//<!-- Version=2.30 Date=11/08/04 Name=logging.php --> 
/* 

----------------------------------------------------------------------------- 

    goes to db  
    if db not available, goes to text file 
*/ 

function do_log($client, $activity, $sql='', $success) 
        { 
        //logs the client, activity, sql and success or failure of the action 
        // 
        /* 
        $host = "192.168.100.10"; 
        $user = "root"; 
        $pass = "3JN4xM9Jvgj2VwHe"; 
          
        */ 
        $host  = '192.168.160.31';    
        $user  = 'rume'; 
        $pass  = 'RumE2#$w'; 
        $db     = "loggingdb"; 
          
        $err = 0; 
            //echo "commnecing connection to local db<br>"; 
              
            if (!($conn=mysql_connect($host, $user, $pass)))  { 
                $err = mysql_errno(); 
            } 
            if (!$db3=mysql_select_db($db, $conn)){ //or die("Unable to connect to local database"); 
                $err = mysql_errno(); 
            } 
              
            if ($err != 0){ 
              
              //database is not available or can't be connected to at the moment 
              write_log($client, $activity, $sql, $success); 
              
            }else{ 
               $time = time(); 
              //enter the data into the log table    
              $sql = "insert into logg (client, sql, activity, success, unix_timestamp) values ('$client','$sql','$activity','$success',$time)";  
               //echo $sql; 
              $result = mysql_query($sql) or die ("Can't connect because ". mysql_error()."<br>$sql"); 
              $err = mysql_errno(); 
        //if ($err != 0){ 
            write_log($client, $activity, $sql, $success);      
        //}// end if 
      
      }// end if 
              
        }//end function      
          
          
function write_log($client, $activity, $sql, $success) 
        { 
            //write the text log 
            $time = time(); 
            $filename = "C:\\apisonline.com\\html\\scripts\\logs\\test.log"; 
              
            $somecontent = "Client\t$client.\nActivity\t$activity\nSQL\t:$sql\nSuccess:\t$success($time)\n\n"; 
                  
                // Let's make sure the file exists and is writable first. 
                if (is_writable($filename)) { 
                  
                   if (!$handle = fopen($filename, 'a')) { 
                         //echo "Cannot open file ($filename)"; 
                         //exit; 
                   } 
                  
                   // Write $somecontent to our opened file. 
                   if (fwrite($handle, $somecontent) === FALSE) { 
                       //echo "Cannot write to file ($filename)"; 
                       //exit; 
                   } 
                    
                   //echo "Success, wrote ($somecontent) to file ($filename)"; 
                    
                    fclose($handle); 
      
            }// end if          
          
        }// end function 

?>

Sedan är bara bygga till och leka lite.

273 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
147 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)