<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-33985576</id><updated>2012-01-27T01:42:42.813-08:00</updated><category term='linux'/><category term='phpexcel'/><category term='pre-order'/><category term='synergy'/><category term='auto'/><category term='php'/><category term='bug'/><category term='PHPExcel_Writer_IWriter'/><category term='mysql IN clause'/><category term='load'/><category term='PHPExcel_Shared_ZipStreamWrapper'/><category term='iphone-4'/><category term='libraries'/><category term='library'/><category term='3rd party'/><category term='apache ubuntu EAI 5 upgrade'/><category term='mac'/><category term='autoload'/><category term='session'/><category term='debian'/><category term='windows'/><category term='spl_autoload_unregister'/><category term='yii'/><category term='prado'/><category term='error'/><category term='timeout'/><category term='spl_autoload_register'/><title type='text'>The Blog of Phill</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>28</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-33985576.post-4636135048221418743</id><published>2011-11-05T22:47:00.000-07:00</published><updated>2011-11-05T22:47:16.939-07:00</updated><title type='text'>Name Virtual Host</title><content type='html'>Edit httpd.conf&lt;br /&gt;&lt;br /&gt;sudo vi /etc/apache2/httpd.conf&lt;br /&gt;Add this line&lt;br /&gt;&lt;br /&gt;NameVirtualHost *:80&lt;br /&gt;NOTE: You can replace *:80 with your_ip_address:80&lt;br /&gt;&lt;br /&gt;Now create the domain name config file. I use the domain_name.com&lt;br /&gt;&lt;br /&gt;sudo vi /etc/apache2/sites-available/domain.com&lt;br /&gt;Add this to the file&lt;br /&gt;&lt;br /&gt;&lt;VirtualHost *:80&gt;&lt;br /&gt;     ServerAdmin admin@domain.com&lt;br /&gt;     ServerName www.domain.com&lt;br /&gt;     ServerAlias domain.com&lt;br /&gt;     DocumentRoot /var/www/domain.com/public_html/&lt;br /&gt;     ErrorLog /var/www/domain.com/logs/error.log&lt;br /&gt;     CustomLog /var/www/domain.com/logs/access.log combined&lt;br /&gt;&lt;/VirtualHost&gt;&lt;br /&gt;Make sure the directories in the domain.com config exists&lt;br /&gt;&lt;br /&gt;/var/www/domain.com/public_html/&lt;br /&gt;/var/www/domain.com/logs&lt;br /&gt;NOTE: use the mkdir command like this if needed&lt;br /&gt;&lt;br /&gt;sudo mkdir /var/www/domain.com/public_html/&lt;br /&gt;sudo mkdir /var/www/domain.com/logs&lt;br /&gt;Now we need to enable the new config file like this&lt;br /&gt;&lt;br /&gt;sudo a2ensite domain.com&lt;br /&gt;You should see a notice to restart apache, use this command&lt;br /&gt;&lt;br /&gt;/etc/init.d/apache2 restart&lt;br /&gt;Now we need a test file to view&lt;br /&gt;&lt;br /&gt;sudo vi /var/www/domain.com/public_html/index.html&lt;br /&gt;Add some text&lt;br /&gt;&lt;br /&gt;Hello domain.com&lt;br /&gt;Open your web browser and go to your new domain&lt;br /&gt;&lt;br /&gt;http://domain.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-4636135048221418743?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/4636135048221418743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=4636135048221418743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/4636135048221418743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/4636135048221418743'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2011/11/name-virtual-host.html' title='Name Virtual Host'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-390250167325246345</id><published>2011-07-27T05:59:00.000-07:00</published><updated>2011-07-27T06:16:39.928-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='library'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><category scheme='http://www.blogger.com/atom/ns#' term='error'/><category scheme='http://www.blogger.com/atom/ns#' term='load'/><category scheme='http://www.blogger.com/atom/ns#' term='yii'/><category scheme='http://www.blogger.com/atom/ns#' term='prado'/><category scheme='http://www.blogger.com/atom/ns#' term='autoload'/><category scheme='http://www.blogger.com/atom/ns#' term='phpexcel'/><category scheme='http://www.blogger.com/atom/ns#' term='3rd party'/><category scheme='http://www.blogger.com/atom/ns#' term='PHPExcel_Shared_ZipStreamWrapper'/><category scheme='http://www.blogger.com/atom/ns#' term='spl_autoload_register'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='libraries'/><category scheme='http://www.blogger.com/atom/ns#' term='spl_autoload_unregister'/><category scheme='http://www.blogger.com/atom/ns#' term='auto'/><category scheme='http://www.blogger.com/atom/ns#' term='PHPExcel_Writer_IWriter'/><title type='text'>Prado and installing PHPExcel - Auto Loading bug</title><content type='html'>Well this was a headache and then some.&lt;br /&gt;&lt;br /&gt;The problem is Prado has a Auto Loading process that can cause 3rd party or additional libraries to break and act strange if they also have a Auto Loading process.&lt;br /&gt;&lt;br /&gt;The Solution is to turn off Prado's Auto Loading process, Load the 3rd party/Additional library and then turn Prado's Auto Loading process back on.&lt;br /&gt;&lt;br /&gt;Here is what it looks like: (In this example I'm using the namespace instead of the path alias)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$phpExcelPath = Prado::getPathOfNamespace('Application.Core.php_excel.Classes');&lt;br /&gt;&lt;br /&gt;// Disable Prado Auto Loading process&lt;br /&gt;spl_autoload_unregister(array('Prado','autoload'));&lt;br /&gt;&lt;br /&gt;// Add PHP Excel&lt;br /&gt;require_once($phpExcelPath.'/PHPExcel.php');&lt;br /&gt;require_once($phpExcelPath.'/PHPExcel/Writer/Excel2007.php');&lt;br /&gt;&lt;br /&gt;// Do PHP Excel stuff here&lt;br /&gt;&lt;br /&gt;// Reload Prado Auto Loading process&lt;br /&gt;spl_autoload_register(array('Prado','autoload'));&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Reference: &lt;a href="http://www.ramirezcobos.com/2010/11/05/how-to-use-phpexcel-with-yii/"&gt;http://www.ramirezcobos.com/2010/11/05/how-to-use-phpexcel-with-yii/&lt;/a&gt; &lt;br /&gt;They are using YII but the process is very similar&lt;br /&gt;&lt;br /&gt;There is a &lt;a href="http://phpexcel.codeplex.com/discussions/266713"&gt;discussion here&lt;/a&gt; for possibly more information regarding this issue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-390250167325246345?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/390250167325246345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=390250167325246345' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/390250167325246345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/390250167325246345'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2011/07/prado-and-installing-phpexcel-auto.html' title='Prado and installing PHPExcel - Auto Loading bug'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-7337578117985451478</id><published>2011-05-16T13:57:00.000-07:00</published><updated>2011-05-16T13:57:17.045-07:00</updated><title type='text'>PHP Logger Class</title><content type='html'>&lt;!--?php&amp;nbsp;&lt;/p--&gt;&lt;br /&gt;/**&lt;br /&gt;&amp;nbsp;* Logger&lt;br /&gt;&amp;nbsp;*&lt;br /&gt;&amp;nbsp;* Usage:&lt;br /&gt;&amp;nbsp;*&lt;br /&gt;&amp;nbsp;* Logger::getInstance()-&amp;gt;setLogFileDirectory('/path/to/log/file/directory');&lt;br /&gt;&amp;nbsp;*&lt;br /&gt;&amp;nbsp;* Logger::getInstance()-&amp;gt;info('Set info log message');&lt;br /&gt;&amp;nbsp;* Logger::getInstance()-&amp;gt;warning('Set warning log message');&lt;br /&gt;&amp;nbsp;* Logger::getInstance()-&amp;gt;error('Set error log message');&lt;br /&gt;&amp;nbsp;* Logger::getInstance()-&amp;gt;notice('Set notice log message');&lt;br /&gt;&amp;nbsp;* Logger::getInstance()-&amp;gt;debug('Set debug log message');&lt;br /&gt;&amp;nbsp;*&lt;br /&gt;&amp;nbsp;* Logger::getInstance()-&amp;gt;enableDebug();&lt;br /&gt;&amp;nbsp;* Logger::getInstance()-&amp;gt;disableDebug();&lt;br /&gt;&amp;nbsp;*&lt;br /&gt;&amp;nbsp;* Logger::getInstance()-&amp;gt;returnErrorMessages($boolean);&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;&lt;br /&gt;class Logger {&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $log_file_directory &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;= ''; // Required&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $first_run; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// Flag to add line break at the beginning of script execution&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $calling_script; &amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// Base name of the calling script&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $log_file; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// log file path and name&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $log_file_name;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;// You can override the logfile name&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $log_entry; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// information to be logged&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $log_level; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// Log severity levels: error, warning, notice, debug, info&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $fh; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// File handle&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $file_name; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// File path and name&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $file_parts; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// Array of $file_name&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $script_name; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// Script Name&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $script_parts; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// Array of $script_name&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $line_number_arr; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// Line number of where the logging event occurred&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $debug_flag&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;= false;&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $log_file_date; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// datestamp for log file name&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $return_error_messages&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;= false; // Boolean: if false will echo error message else return error message&lt;br /&gt;&amp;nbsp; &amp;nbsp; private static $instance&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;= null;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; private function __construct() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;first_run &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= true;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;calling_script &amp;nbsp; = ''; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;log_file &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;log_entry &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;log_level &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;fh &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;file_name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;file_parts &amp;nbsp; &amp;nbsp; &amp;nbsp; = '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;script_name &amp;nbsp; &amp;nbsp; &amp;nbsp;= '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;script_parts &amp;nbsp; &amp;nbsp; = ''; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;line_number_arr &amp;nbsp;= '';&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;$this-&amp;gt;log_file_name&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;= '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Get Instance&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return object&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public static function getInstance() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(!isset(self::$instance)) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $c = __CLASS__;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self::$instance = new $c;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return self::$instance;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; /**&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Enable Debug&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @return&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function enableDebug() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;debug_flag = true;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; /**&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Disable Debug&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @return&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function disableDebug() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;debug_flag = false;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; /**&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Info&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param string&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @return&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function info($info_message) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;log_level = 'info';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;line_number_arr = debug_backtrace();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;addEntry($info_message);&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; /**&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Error&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param string&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @return&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function error($error_message) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;log_level = 'error';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;line_number_arr = debug_backtrace();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;addEntry($error_message);&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; /**&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Warning&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param string&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @return&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function warning($warning_message) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;log_level = 'warning';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;line_number_arr = debug_backtrace();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;addEntry($warning_message);&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; /**&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Notice&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param string&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @return&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function notice($notice_message) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;log_level = 'notice';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;line_number_arr = debug_backtrace();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;addEntry($notice_message);&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; /**&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Debug&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param string&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @return&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function debug($debug_message) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if($this-&amp;gt;debug_flag) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;log_level = 'debug';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;line_number_arr = debug_backtrace();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;addEntry($debug_message);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Add Entry&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param string&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @return&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp; &amp;nbsp; private function addEntry($message) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;if($this-&amp;gt;log_file_directory == '') {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;$error_message = 'Please set the Log File Directory - Logger::getInstance()-&amp;gt;setLogFileDirectory("/path/to/log/file/directory")'."\n";&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;if(!$this-&amp;gt;return_error_messages) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;echo $error_message;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;return;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;return $error_message;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;$newline&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;= "";&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;$tab&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;= "";&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;if($this-&amp;gt;getLogFileName() != '') {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;$this-&amp;gt;calling_script = $this-&amp;gt;getLogFileName();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;} else {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;$this-&amp;gt;calling_script = $this-&amp;gt;getScriptBaseName();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;log_file = $this-&amp;gt;log_file_directory."/".$this-&amp;gt;calling_script.".".$this-&amp;gt;getLogDate().".log";&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(!file_exists($this-&amp;gt;log_file)) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;first_run = false;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;line_count = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(!($this-&amp;gt;fh = @fopen($this-&amp;gt;log_file, 'a'))) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;$error_message = 'Problem with Log File: '.$this-&amp;gt;log_file."\n";&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;if(!$this-&amp;gt;return_error_messages) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;echo $error_message;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;return;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;return $error_message;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;if($this-&amp;gt;log_level == 'info') {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;$tab = "\t";&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if($this-&amp;gt;first_run) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;$newline = "\n";&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;$this-&amp;gt;log_entry = $newline."[".date("Y-m-d H:i:s",mktime())."][line:".$this-&amp;gt;line_number_arr[0]['line']."|".$this-&amp;gt;log_level."]:\t".$tab.$message."\n";&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fwrite($this-&amp;gt;fh, $this-&amp;gt;log_entry);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fclose($this-&amp;gt;fh);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;first_run = false;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;line_count++;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Get Script Base Name&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @return string&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp; &amp;nbsp; private function getScriptBaseName() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setLogDate(date("Ymd"));&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;file_name &amp;nbsp; &amp;nbsp;= $_SERVER["SCRIPT_NAME"];&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;file_parts &amp;nbsp; = explode('/', $this-&amp;gt;file_name);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;script_name &amp;nbsp;= $this-&amp;gt;file_parts[count($this-&amp;gt;file_parts) - 1];&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;script_parts = explode('.', $this-&amp;gt;script_name);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return implode(".",array_slice($this-&amp;gt;script_parts, 0, (count($this-&amp;gt;script_parts) - 1)));&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Set Log Date&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param string&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @return&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp; &amp;nbsp; private function setLogDate($value) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;log_file_date = $value;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; /**&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Get Log Date&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @return string&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp; &amp;nbsp; private function getLogDate() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;log_file_date;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Set Log File Directory&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public function setLogFileDirectory($log_file_directory) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;$this-&amp;gt;log_file_directory = $log_file_directory;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Get Log File Directory&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public function getLogFileDirectory() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;return $this-&amp;gt;log_file_directory;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Return Error Message&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param boolean&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public function returnErrorMessages($boolean) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;if(is_bool($boolean)) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;$this-&amp;gt;return_error_messages = $boolean;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Set Log File name (Override)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public function setLogFileName($log_file_name) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;$this-&amp;gt;log_file_name = $log_file_name;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Get Log File name&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private function getLogFileName() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;return $this-&amp;gt;log_file_name;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-7337578117985451478?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/7337578117985451478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=7337578117985451478' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/7337578117985451478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/7337578117985451478'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2011/05/php-logger-class.html' title='PHP Logger Class'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-6860133320737817285</id><published>2011-05-13T13:49:00.000-07:00</published><updated>2011-05-13T13:49:15.233-07:00</updated><title type='text'>PHP Mail Class</title><content type='html'>&lt;!--?php&amp;nbsp;&lt;/p--&gt;&lt;br /&gt;/**&lt;br /&gt;&amp;nbsp;* Email&lt;br /&gt;&amp;nbsp;*&lt;br /&gt;&amp;nbsp;* @usage:&lt;br /&gt;&amp;nbsp;*&lt;br /&gt;&amp;nbsp;* Email::getInstance()-&amp;gt;setEmailTo('you@email.com');&lt;br /&gt;&amp;nbsp;* Email::getInstance()-&amp;gt;setEmailFrom('me@email.com');&lt;br /&gt;&amp;nbsp;* Email::getInstance()-&amp;gt;setEmailFromName('My Name');&lt;br /&gt;&amp;nbsp;* Email::getInstance()-&amp;gt;setEmailReplyTo('replyToMe@email.com');&lt;br /&gt;&amp;nbsp;* Email::getInstance()-&amp;gt;setEmailCc('ccMe@email.com');&lt;br /&gt;&amp;nbsp;* Email::getInstance()-&amp;gt;setEmailBcc('bccMe@email.com');&lt;br /&gt;&amp;nbsp;* Email::getInstance()-&amp;gt;setEmailSubject('Subject');&lt;br /&gt;&amp;nbsp;* Email::getInstance()-&amp;gt;setEmailMessage('Message');&lt;br /&gt;&amp;nbsp;* Email::getInstance()-&amp;gt;setEmailMessageWithHtml('&lt;b&gt;HTML Message&lt;/b&gt;');&lt;br /&gt;&amp;nbsp;* Email::getInstance()-&amp;gt;setEmailAttachment('attachment.txt');&lt;br /&gt;&amp;nbsp;*&lt;br /&gt;&amp;nbsp;* echo Email::getInstance()-&amp;gt;sendEmail(); // will start a new instance when sending the email&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;&lt;br /&gt;class Email {&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $emailTo;&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $emailFrom;&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $emailFromName;&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $emailCc;&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $emailBcc;&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $emailReplyTo;&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $emailSubject;&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $emailMessage;&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $emailMessageWithHtml;&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $emailHeader;&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $emailAttachment;&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $emailAttachmentFileName;&lt;br /&gt;&amp;nbsp; &amp;nbsp; private $emailAttachmentMimeType;&lt;br /&gt;&amp;nbsp; &amp;nbsp; private static $instance = null;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Constructor&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function __construct() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailTo &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailFrom &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailFromName &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailCc &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailBcc &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailReplyTo &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailSubject &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailMessage &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailMessageWithHtml &amp;nbsp; &amp;nbsp; = '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailHeader &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailAttachment &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailAttachmentFileName &amp;nbsp;= '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailAttachmentMimeType &amp;nbsp;= '';&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; /**&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Get Instance&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* @return object&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp; &amp;nbsp; public static function getInstance() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(!isset(self::$instance)) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $c = __CLASS__;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self::$instance = new $c;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return self::$instance;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * New Instance&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return object&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; private static function newInstance() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(isset(self::$instance)) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $c = __CLASS__;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self::$instance = new $c;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return self::$instance;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Send Email&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function sendEmail() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $emailStatusMessage = "";&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if($this-&amp;gt;emailFromName() != '') {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader()."From: ".$this-&amp;gt;emailFromName()." &amp;lt;".$this-&amp;gt;emailFrom()."&amp;gt;\r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader()."From: ".$this-&amp;gt;emailFrom()." \r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if($this-&amp;gt;emailReplyTo() != '') {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $emailStatusMessage .= " Reply-To: ".$this-&amp;gt;emailReplyTo();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader()."Reply-To: ".$this-&amp;gt;emailReplyTo()." \r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if($this-&amp;gt;emailCc() != '') {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $emailStatusMessage .= " cc: ".$this-&amp;gt;emailCc();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader()." Cc: ".$this-&amp;gt;emailCc()." \r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if($this-&amp;gt;emailBcc() != '') {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $emailStatusMessage .= " bcc: ".$this-&amp;gt;emailBcc();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader()." BCC: ".$this-&amp;gt;emailBcc()." \r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if($this-&amp;gt;emailMessageWithHtml() !='' || $this-&amp;gt;emailAttachment() != '') {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader()."MIME-Version: = 1.0\r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if($this-&amp;gt;emailAttachment() != '') {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $fileName &amp;nbsp; = empty($this-&amp;gt;emailAttachmentFileName) ? basename($this-&amp;gt;emailAttachment) : $this-&amp;gt;emailAttachmentFileName;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $path &amp;nbsp; &amp;nbsp; &amp;nbsp; = dirname($this-&amp;gt;emailAttachment);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $file &amp;nbsp; &amp;nbsp; &amp;nbsp; = $path.'/'.$fileName;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $fileSize &amp;nbsp; = filesize($file);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $handle &amp;nbsp; &amp;nbsp; = fopen($file,"r");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $content &amp;nbsp; &amp;nbsp;= fread($handle, $fileSize);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fclose($handle);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $content &amp;nbsp; &amp;nbsp;= chunk_split(base64_encode($content));&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $uid &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= md5(uniqid(time()));&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $name &amp;nbsp; &amp;nbsp; &amp;nbsp; = basename($file);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $mimeType &amp;nbsp; = $this-&amp;gt;mimeType($file);&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;if($mimeType == '') {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;$returnEmailStatusMessage = "Email Notification was NOT sent as the MIME TYPE was not found for the file: '".$file."' for this email to: ".$this-&amp;gt;emailTo()."".$emailStatusMessage;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;$this-&amp;gt;newInstance();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return $returnEmailStatusMessage;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader()."Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader()."This is a multi-part message in MIME format.\r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader()."--".$uid."\r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if($this-&amp;gt;emailMessageWithHtml() != '') {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $emailStatusMessage .= ", Email is HTML";&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader()."Content-type:text/html;charset=iso-8859-1\r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader()."Content-type:text/plain; charset=iso-8859-1\r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader()."Content-Transfer-Encoding: 7bit\r\n\r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader().$this-&amp;gt;emailMessage()."\r\n\r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader()."--".$uid."\r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader()."Content-Type: ".$mimeType."; name=\"".$fileName."\"\r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader()."Content-Transfer-Encoding: base64\r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader()."Content-Disposition: attachment; filename=\"".$fileName."\"\r\n\r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader().$content."\r\n\r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader()."--".$uid."--");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $emailStatusMessage .= ", Email has attachment: ".$fileName;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailMessage("");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elseif($this-&amp;gt;emailMessageWithHtml() != '') {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $emailStatusMessage .= ", Email is HTML";&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailHeader($this-&amp;gt;emailHeader()."Content-type:text/html;charset=iso-8859-1\r\n");&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; try {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mail(&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailTo(),&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailSubject(),&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailMessage(),&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailHeader()&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; );&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $returnEmailStatusMessage = "Email Notification was successfully sent to: ".$this-&amp;gt;emailTo()."".$emailStatusMessage;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;newInstance();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $returnEmailStatusMessage;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } catch (Exception $e) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $returnEmailStatusMessage = "ERROR: Email Notification was not sent to: ".$this-&amp;gt;emailTo()."".$emailStatusMessage." Caught exception: ".$e-&amp;gt;getMessage();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;newInstance();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $returnEmailStatusMessage;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Set Email Attachment Mime Type&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function setEmailAttachmentMimeType($emailAttachmentMimeType) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailAttachmentMimeType = $emailAttachmentMimeType;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Email Attachment Mime Type&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function emailAttachmentMimeType() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;emailAttachmentMimeType;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Set Email Attachment File Name&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function setEmailAttachmentFileName($emailAttachmentFileName) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailAttachmentFileName = $emailAttachmentFileName;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; /**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Email Attachment File Name&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function emailAttachmentFileName() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;emailAttachmentFileName;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Set Email Attacchment&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function setEmailAttachment($emailAttachment) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailAttachment = $emailAttachment;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; /**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Email Attachment&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function emailAttachment() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;emailAttachment;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Set Email To&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function setEmailTo($emailTo) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailTo = $emailTo;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Email To&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function emailTo() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;emailTo;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Set Email From&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function setEmailFrom($emailFrom) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailFrom = $emailFrom;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Email From&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function emailFrom() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;emailFrom;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Set Email From Name&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function setEmailFromName($emailFromName) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailFromName = $emailFromName;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Email From Name&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function emailFromName() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;emailFromName;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Set Email Reply To&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function setEmailReplyTo($emailReplyTo) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailReplyTo = $emailReplyTo;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**Email Reply To&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function emailReplyTo() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;emailReplyTo;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Set Email CC&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function setEmailCc($emailCc) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailCc = $emailCc;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Email CC&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function emailCc() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;emailCc;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Set Email BCC&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function setEmailBcc($emailBcc) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailBcc = $emailBcc;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Email BCC&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function emailBcc() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;emailBcc;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Set Email Subject&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function setEmailSubject($emailSubject) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailSubject = $emailSubject;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Email Subject&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function emailSubject() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;emailSubject;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Set Email Message&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function setEmailMessage($emailMessage) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailMessage = $emailMessage;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Email Message&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function emailMessage() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;if(is_array($this-&amp;gt;emailMessage)) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;return implode("\n\r", $this-&amp;gt;emailMessage);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;emailMessage;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Set Email Message With HTML&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function setEmailMessageWithHtml($emailMessageWithHtml) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailMessageWithHtml = $emailMessageWithHtml;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setEmailMessage($emailMessageWithHtml);&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Email Message With HTML&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function emailMessageWithHtml() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;emailMessageWithHtml;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Set Email Header&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function setEmailHeader($emailHeader) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;emailHeader = $emailHeader;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Email Header&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function emailHeader() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $this-&amp;gt;emailHeader;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/**&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * Mime Type&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; *&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @param string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; * @return string&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; public function mimeType($file) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $mimeTypes = array(&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "323" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "text/h323",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "acx" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/internet-property-stream",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "ai" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "application/postscript",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "aif" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "audio/x-aiff",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "aifc" &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "audio/x-aiff",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "aiff" &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "audio/x-aiff",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "asf" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "video/x-ms-asf",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "asr" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "video/x-ms-asf",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "asx" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "video/x-ms-asf",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "au" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "audio/basic",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "avi" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "video/x-msvideo",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "axs" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/olescript",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "bas" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "text/plain",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "bcpio" &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-bcpio",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "bin" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/octet-stream",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "bmp" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/bmp",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "c" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "text/plain",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "cat" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/vnd.ms-pkiseccat",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "cdf" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-cdf",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "cer" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-x509-ca-cert",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "class" &amp;nbsp; &amp;nbsp; =&amp;gt; "application/octet-stream",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "clp" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-msclip",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "cmx" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/x-cmx",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "cod" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/cis-cod",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "cpio" &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "application/x-cpio",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "crd" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-mscardfile",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "crl" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/pkix-crl",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "crt" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-x509-ca-cert",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "csh" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-csh",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "css" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "text/css",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "dcr" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-director",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "der" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-x509-ca-cert",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "dir" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-director",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "dll" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-msdownload",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "dms" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/octet-stream",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "doc" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/msword",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "dot" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/msword",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "dvi" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-dvi",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "dxr" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-director",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "eps" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/postscript",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "etx" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "text/x-setext",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "evy" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/envoy",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "exe" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/octet-stream",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "fif" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/fractals",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "flr" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "x-world/x-vrml",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "gif" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/gif",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "gtar" &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "application/x-gtar",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "gz" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "application/x-gzip",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "h" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "text/plain",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "hdf" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-hdf",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "hlp" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/winhlp",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "hqx" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/mac-binhex40",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "hta" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/hta",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "htc" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "text/x-component",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "htm" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "text/html",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "html" &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "text/html",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "htt" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "text/webviewhtml",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "ico" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/x-icon",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "ief" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/ief",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "iii" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-iphone",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "ins" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-internet-signup",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "isp" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-internet-signup",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "jfif" &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "image/pipeg",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "jpe" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/jpeg",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "jpeg" &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "image/jpeg",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "jpg" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/jpeg",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "js" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "application/x-javascript",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "latex" &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-latex",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "lha" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/octet-stream",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "log" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "text/plain",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "lsf" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "video/x-la-asf",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "lsx" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "video/x-la-asf",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "lzh" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/octet-stream",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "m13" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-msmediaview",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "m14" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-msmediaview",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "m3u" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "audio/x-mpegurl",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "man" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-troff-man",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "mdb" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-msaccess",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "me" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "application/x-troff-me",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "mht" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "message/rfc822",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "mhtml" &amp;nbsp; &amp;nbsp; =&amp;gt; "message/rfc822",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "mid" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "audio/mid",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "mny" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-msmoney",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "mov" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "video/quicktime",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "movie" &amp;nbsp; &amp;nbsp; =&amp;gt; "video/x-sgi-movie",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "mp2" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "video/mpeg",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "mp3" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "audio/mpeg",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "mpa" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "video/mpeg",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "mpe" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "video/mpeg",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "mpeg" &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "video/mpeg",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "mpg" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "video/mpeg",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "mpp" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/vnd.ms-project",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "mpv2" &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "video/mpeg",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "ms" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "application/x-troff-ms",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "mvb" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-msmediaview",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "nws" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "message/rfc822",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "oda" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/oda",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "p10" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/pkcs10",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "p12" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-pkcs12",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "p7b" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-pkcs7-certificates",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "p7c" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-pkcs7-mime",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "p7m" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-pkcs7-mime",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "p7r" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-pkcs7-certreqresp",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "p7s" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-pkcs7-signature",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "pbm" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/x-portable-bitmap",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "pdf" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/pdf",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "pfx" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-pkcs12",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "pgm" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/x-portable-graymap",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "pko" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/ynd.ms-pkipko",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "pma" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-perfmon",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "pmc" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-perfmon",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "pml" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-perfmon",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "pmr" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-perfmon",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "pmw" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-perfmon",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "pnm" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/x-portable-anymap",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "pot" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/vnd.ms-powerpoint",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "ppm" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/x-portable-pixmap",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "pps" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/vnd.ms-powerpoint",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "ppt" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/vnd.ms-powerpoint",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "prf" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/pics-rules",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "ps" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "application/postscript",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "pub" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-mspublisher",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "qt" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "video/quicktime",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "ra" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "audio/x-pn-realaudio",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "ram" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "audio/x-pn-realaudio",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "ras" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/x-cmu-raster",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "rgb" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/x-rgb",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "rmi" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "audio/mid",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "roff" &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "application/x-troff",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "rtf" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/rtf",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "rtx" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "text/richtext",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "scd" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-msschedule",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sct" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "text/scriptlet",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "setpay" &amp;nbsp; &amp;nbsp;=&amp;gt; "application/set-payment-initiation",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "setreg" &amp;nbsp; &amp;nbsp;=&amp;gt; "application/set-registration-initiation",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sh" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "application/x-sh",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "shar" &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "application/x-shar",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sit" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-stuffit",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "snd" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "audio/basic",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "spc" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-pkcs7-certificates",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "spl" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/futuresplash",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "src" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-wais-source",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sst" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/vnd.ms-pkicertstore",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "stl" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/vnd.ms-pkistl",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "stm" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "text/html",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "svg" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/svg+xml",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sv4cpio" &amp;nbsp; =&amp;gt; "application/x-sv4cpio",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "sv4crc" &amp;nbsp; &amp;nbsp;=&amp;gt; "application/x-sv4crc",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "t" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-troff",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "tar" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-tar",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "tcl" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-tcl",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "tex" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-tex",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "texi" &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "application/x-texinfo",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "texinfo" &amp;nbsp; =&amp;gt; "application/x-texinfo",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "tgz" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-compressed",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "tif" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/tiff",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "tiff" &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "image/tiff",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "tr" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "application/x-troff",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "trm" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-msterminal",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "tsv" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "text/tab-separated-values",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "txt" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "text/plain",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "uls" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "text/iuls",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "ustar" &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-ustar",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "vcf" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "text/x-vcard",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "vrml" &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "x-world/x-vrml",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "wav" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "audio/x-wav",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "wcm" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/vnd.ms-works",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "wdb" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/vnd.ms-works",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "wks" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/vnd.ms-works",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "wmf" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-msmetafile",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "wps" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/vnd.ms-works",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "wri" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-mswrite",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "wrl" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "x-world/x-vrml",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "wrz" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "x-world/x-vrml",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "xaf" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "x-world/x-vrml",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "xbm" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/x-xbitmap",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "xla" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/vnd.ms-excel",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "xlc" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/vnd.ms-excel",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "xlm" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/vnd.ms-excel",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "xls" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/vnd.ms-excel",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "xlsx" &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; "vnd.ms-excel",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "xlt" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/vnd.ms-excel",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "xlw" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/vnd.ms-excel",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "xof" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "x-world/x-vrml",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "xpm" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/x-xpixmap",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "xwd" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "image/x-xwindowdump",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "z" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/x-compress",&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "zip" &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; "application/zip"&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; );&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $extension = end(explode('.', $file));&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $mimeTypes[$extension];&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-6860133320737817285?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/6860133320737817285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=6860133320737817285' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/6860133320737817285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/6860133320737817285'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2011/05/php-mail-class.html' title='PHP Mail Class'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-266842862113001464</id><published>2010-10-11T08:48:00.000-07:00</published><updated>2010-10-11T08:49:48.351-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apache ubuntu EAI 5 upgrade'/><title type='text'>Ubuntu upgrading to 10.10 Apache hosts get overwritten</title><content type='html'>If anyone else goes through this just re-add your hosts to /etc/hosts and restart Apache, kept getting this error "(EAI 5)No address associated with hostname: Could not resolve host name".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-266842862113001464?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/266842862113001464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=266842862113001464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/266842862113001464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/266842862113001464'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2010/10/ubuntu-upgrading-to-1010-apache-hosts.html' title='Ubuntu upgrading to 10.10 Apache hosts get overwritten'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-3545181196470160412</id><published>2010-10-05T10:38:00.000-07:00</published><updated>2010-10-05T10:38:35.695-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='timeout'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='session'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Why are my PHP sessions timing out around 30 minutes?</title><content type='html'>Have been pulling out my hair trying to find out why my sessions are being terminated/killed/destroyed at 30 minutes. Well it looks like Debian based systems have a special cron running that ignores all php.ini and apache configurations and kills any idle session at 30 minutes.&lt;br /&gt;&lt;br /&gt;The cron path: /etc/cron.d/php5&lt;br /&gt;&lt;br /&gt;Inside the cron:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;# /etc/cron.d/php5: crontab fragment for php5&lt;br /&gt;#  This purges session files older than X, where X is defined in seconds&lt;br /&gt;#  as the largest value of session.gc_maxlifetime from all your php.ini&lt;br /&gt;#  files, or 24 minutes if not defined.  See /usr/lib/php5/maxlifetime&lt;br /&gt;&lt;br /&gt;# Look for and purge old sessions every 30 minutes&lt;br /&gt;09,39 *     * * *     root   [ -x /usr/lib/php5/maxlifetime ] &amp;amp;&amp;amp; [ -d /var/lib/php5 ] &amp;amp;&amp;amp; find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/usr/lib/php5/maxlifetime code&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;#!/bin/sh -e&lt;br /&gt;&lt;br /&gt;max=1440&lt;br /&gt;&lt;br /&gt;for ini in /etc/php5/*/php.ini; do&lt;br /&gt;cur=$(sed -n -e 's/^[[:space:]]*session.gc_maxlifetime[[:space:]]*=[[:space:]]*\([0-9]\+\).*$/\1/p' $ini 2&amp;gt;/dev/null || true);&lt;br /&gt;[ -z "$cur" ] &amp;amp;&amp;amp; cur=0&lt;br /&gt;[ "$cur" -gt "$max" ] &amp;amp;&amp;amp; max=$cur&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;echo $(($max/60))&lt;br /&gt;&lt;br /&gt;exit 0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;so it looks to be searching all the php.ini files, finds the greatest value, compares it to 1440 (which is 24 minutes).&lt;br /&gt;&lt;br /&gt;Here are the php.ini files&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;/etc/php5/apache2/php.ini&lt;br /&gt;session.gc_maxlifetime = 1440 &lt;br /&gt;&lt;br /&gt;/etc/php5/cgi/php.ini&lt;br /&gt;session.gc_maxlifetime = 1440&lt;br /&gt;&lt;br /&gt;/etc/php5/cli/php.ini&lt;br /&gt;session.gc_maxlifetime = 1440&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CRON running every 30 minutes is why the session looks to be killed at 30 minute intervals. But it could also be 24 to 54 minutes, FYI&lt;br /&gt;&lt;br /&gt;Also looking over the code in: `/usr/lib/php5/maxlifetime` it's taking the highest value and during my testing I was trying to lower the threshold to speed up the condition (this is why we were getting mixed results).&lt;br /&gt;&lt;br /&gt;So to configure a higher number is easy, just configure one of the php.ini files, set session.gc_maxlifetime to a higher value than 1440 and you might want to also change the cron execution times.&lt;br /&gt;&lt;br /&gt;If you wanted a lower number you would have to edit ALL the php.ini files on your system as welll as the /usr/lib/php5/maxlifetime max= variable to the smaller number&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-3545181196470160412?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/3545181196470160412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=3545181196470160412' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/3545181196470160412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/3545181196470160412'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2010/10/why-are-my-php-sessions-timing-out.html' title='Why are my PHP sessions timing out around 30 minutes?'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-2278066670053119529</id><published>2010-06-17T06:06:00.000-07:00</published><updated>2010-06-17T06:07:27.701-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone-4'/><category scheme='http://www.blogger.com/atom/ns#' term='pre-order'/><title type='text'>My wifes iPhone 4 Pre-Order Story</title><content type='html'>So after the headache of ordering two iPhone 4's on June 15th Pre-Order day we finally got our email confirmations for a June 24the delivery (Yeah), but somehow in the process we ended up purchasing three iPhone's. (Wonder how this could have happen? &lt;a href="http://www.tuaw.com/2010/06/15/apple-and-atandt-servers-up-and-down-and-up-and-down/"&gt;http://www.tuaw.com/2010/06/15/apple-and-atandt-servers-up-and-down-and-up-and-down/&lt;/a&gt;). Well the next day my wife calls to cancel one of the iPhone orders, the call took over two hours of being on hold (here is the funny part). During the on hold process my wife had to leave the house, not wanting to hang up (as she leaves the phone somewhere on speaker and listens for someone to pickup) she places the handset down and leaves the house for about forty minutes. Returning home she realizes she is still on hold with Apple and takes another ten minutes before she is able to speak to someone and resolve the issue, Great timing LOL!!! So to recap, two hours to speak to someone, forty minutes she leaves the house and just leaves the phone on speaker, an additional ten minutes on hold when she returns before speaking with someone. Priceless :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-2278066670053119529?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/2278066670053119529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=2278066670053119529' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/2278066670053119529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/2278066670053119529'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2010/06/my-wifes-iphone-4-pre-order-story.html' title='My wifes iPhone 4 Pre-Order Story'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-1968514970901394221</id><published>2010-05-27T09:59:00.000-07:00</published><updated>2010-05-27T09:59:32.304-07:00</updated><title type='text'>How to define a array as a constant in PHP</title><content type='html'>define("DEF_ARR", serialize(array("abc", "def", "ghi")));&lt;br /&gt;    &lt;br /&gt;    foreach (unserialize(DEF_ARR) as $k=&gt;$v) {&lt;br /&gt;     echo "Key: ".$k."  VALUE: ".$v."\n";&lt;br /&gt;    }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-1968514970901394221?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/1968514970901394221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=1968514970901394221' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/1968514970901394221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/1968514970901394221'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2010/05/how-to-define-array-as-constant-in-php.html' title='How to define a array as a constant in PHP'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-6073720411478653374</id><published>2010-05-16T06:46:00.000-07:00</published><updated>2010-05-16T06:46:33.300-07:00</updated><title type='text'>Pray for all involved</title><content type='html'>Yesterday I witnessed a horrific motorcycle accident. Don't know if the car hit the motorcycle or if it was the motorcycle hit the car, just saw the motorcycle hit the curb and the bike and rider smack into a lightpost. Jumped out of the car as my wife calls 911, I start yelling at the rider asking if he can hear me, I hear moaning. Others get out of their cars to help. I notice the driver of the car that hit the biker, she's early 20's and is in total shock, crying, shaking, unable to escape the situation she is now in. The rider is starting to move more but everyone is yelling at him to stay still, not move. Just below his knee his leg is bent at almost a 45 degree angle, blood is seeping through his jeans. I think his leg was smashed between the lightpost and the bike and his leg looks to be twisted. I'm about 2 feet away from him, he looks to be early 20's as well. A lone fireman who was just passing by stops to help and the police start to arrive and ask questions about the accident. The ambulance arrives and the EMT's start to stabilize the kid, cut up his jeans to see his leg that looks  to be only attached by skin. They get him on the stretcher and as they are trying to load him in the ambulance, looks like his brother with friends and mother arrive. Pray for the two families as their lives are forever changed. As I think about the day which started off beautiful and the motorcycle rider going for a ride, the other driver maybe running some errands and my own family as we were headed to a friends daughters birthday party. How fragile life is and at a split second how it all can come grinding to a halt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-6073720411478653374?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/6073720411478653374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=6073720411478653374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/6073720411478653374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/6073720411478653374'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2010/05/pray-for-all-involved.html' title='Pray for all involved'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-8663430143071241180</id><published>2009-10-26T12:05:00.000-07:00</published><updated>2009-10-26T12:21:42.075-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='synergy'/><title type='text'>Running Synergy with Linux, XP and Mac</title><content type='html'>In the past I have used Synergy 1.3.1 with Linux (CentOS 5) and Windows (XP), this is a great solution and worked well. Now I wanted to add my Mac to the mix and found a couple of hurdles, hopefully you can avoid with this tutorial. &lt;br /&gt;&lt;br /&gt;For my Mac I'm running Snow Leopard 10.6.1, CentOS 5 and Windows XP sp2. &lt;br /&gt;&lt;br /&gt;So after I downloaded synergy 1.3.1 from the main site (http://synergy2.sourceforge.net/) and installed (unpacked it) onto my Mac I had to open the terminal and run it from the command line (No biggie), but still wasn't working.&lt;br /&gt;&lt;br /&gt;Came across this site: http://stevehorbachuk.com/?p=19 which had a workaround but still no go for Snow Leopard. &lt;br /&gt;&lt;br /&gt;After reading the comments for Steve's site someone posted this gem:ERROR: Server Refused Client Name “my-macbook”&lt;br /&gt;&lt;br /&gt;http://sourceforge.net/projects/synergykm/ &lt;br /&gt;&lt;br /&gt;It's just a GUI tool for your already installed synergy 1.3.1 (Which you still need from the main site). &lt;br /&gt;&lt;br /&gt;After I installed it and configured it in the System Preferences I kept getting an error: ERROR: Server Refused Client Name “my-macbook”&lt;br /&gt;&lt;br /&gt;After checking my config file on my server (CentOS) all looked ok. Then I tried to ping my Mac from my Linux box and could not. After some searching I found I needed to add my Mac's hostname and IP to the Linux /etc/hosts file which made my Mac pingable, Yeah!!!&lt;br /&gt;&lt;br /&gt;I started up Synergy again and Bingo! my Mac is now connected.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-8663430143071241180?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/8663430143071241180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=8663430143071241180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/8663430143071241180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/8663430143071241180'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2009/10/running-synergy-with-linux-xp-and-mac.html' title='Running Synergy with Linux, XP and Mac'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-180130904846144403</id><published>2009-10-01T10:24:00.000-07:00</published><updated>2009-10-01T10:25:20.829-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql IN clause'/><title type='text'>MySQL IN clause gem</title><content type='html'>Well today was a good day as I found a GEM for the MySQL IN clause. Normally I would use the IN clause to search for multiple values in a field like this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SELECT *&lt;br /&gt;FROM tbl_name&lt;br /&gt;WHERE field_name &lt;br /&gt;IN ('value_1', 'value_2', 'value_3', 'value_x')&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;But today discovered that you can reverse the fields and values. So instead of using the OR clause, you could use something like this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SELECT *&lt;br /&gt;FROM tbl_name&lt;br /&gt;WHERE value_x &lt;br /&gt;IN ('field_name_1', 'field_name_2', 'field_name_3', 'field_name_x')&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This makes it super simple to search for one value across multiple fields.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-180130904846144403?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/180130904846144403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=180130904846144403' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/180130904846144403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/180130904846144403'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2009/10/mysql-in-clause-gem.html' title='MySQL IN clause gem'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-2808302009483274406</id><published>2009-05-07T11:22:00.000-07:00</published><updated>2009-07-07T10:28:27.436-07:00</updated><title type='text'>wife breaks iPhone 3G screen, but Apple comes to the rescue (Again)</title><content type='html'>Ok so I get a call from my wife stating she has dropped her 3G iPhone and the screen is starting to crack (plastic film holding it together). Told her to take it into Apple to see what they could do. She informs me that Apple has a new screen replacement program that starts the next day (Which would be Thursday), so she makes an appointment for Saturday to get the screen replaced (Costing $150 to replace the screen as claimed by an Apple employee). She calls me to tell me the details and I ask her why are you waiting till Saturday? do it ASAP. She calls them back only to find out that Apple does NOT have a screen replacement program starting, but Apple has a heart and for misleading her they just replace the broken iPhone 3G with a new one. Amazing, just amazing :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-2808302009483274406?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/2808302009483274406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=2808302009483274406' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/2808302009483274406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/2808302009483274406'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2009/05/wife-breaks-iphone-3g-screen-but-apple.html' title='wife breaks iPhone 3G screen, but Apple comes to the rescue (Again)'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-8133210610381070161</id><published>2009-04-23T09:51:00.000-07:00</published><updated>2009-04-23T10:01:29.215-07:00</updated><title type='text'>virtualbox how to adjust the screen size</title><content type='html'>I had an issue where Virtualbox would start my OS (Win XP in this case) at 800x600 screen resolution. I wanted to increase the size to fill my 22 inch monitor so under the Machine drop down I select "Fullscreen mode", but to my surprise it just centered the 800x600 with a black background to fill the rest of the area for the full screen view. Meh, this is not what I wanted! After much searching I found nothing that anyone had posted to fix the problem. Well stop searching!!!&lt;br /&gt;&lt;br /&gt;How to fix:&lt;br /&gt;&lt;br /&gt;Login to your VirtBox machine and change the XP display settings, Yep it's just that simple =P&lt;br /&gt;&lt;br /&gt;Detailed how to:&lt;br /&gt;1- Start VirtBox&lt;br /&gt;2- Login to XP&lt;br /&gt;3- Right click the desktop &lt;br /&gt;4- Select Properties&lt;br /&gt;5- Select the Settings tab&lt;br /&gt;6- Slide the Screen resolution slider towards the More side&lt;br /&gt;7- Click Apply&lt;br /&gt;8- Click Yes to confirm your settings&lt;br /&gt;9- Click Ok&lt;br /&gt;&lt;br /&gt;That's it, enjoy!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-8133210610381070161?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/8133210610381070161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=8133210610381070161' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/8133210610381070161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/8133210610381070161'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2009/04/virtualbox-how-to-adjust-screen-size.html' title='virtualbox how to adjust the screen size'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-1892075500757792503</id><published>2009-04-23T06:04:00.000-07:00</published><updated>2009-04-23T06:15:35.884-07:00</updated><title type='text'>jQuery CSV validation for user input</title><content type='html'>I'm using jQuery 1.3.2 with the jQuery Validation plugin 1.5.2 and noticed there was no validation for CSV formatted user input. After looking for a while I did find that I could extend the validation plugin with the additional-methods.js file. It's has some great added validations but still nothing for CSV. So this is to all looking for something for CSV (Comma Separated Values).&lt;br /&gt;&lt;br /&gt;Validates for a-z A-Z 0-9&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;jQuery.validator.addMethod("validcsv", function(value, element) {&lt;br /&gt; return this.optional(element) || /^([a-zA-Z0-9])+(,[a-zA-Z0-9]+)*$/.test(value);&lt;br /&gt;}, "Must be comma separated if entering multiple values: Value1,Value2");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Validates for a-z A-Z&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;jQuery.validator.addMethod("validcsv", function(value, element) {&lt;br /&gt; return this.optional(element) || /^([a-zA-Z])+(,[a-zA-Z]+)*$/.test(value);&lt;br /&gt;}, "Must be comma separated if entering multiple values: Value1,Value2");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Validates for 0-9&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;jQuery.validator.addMethod("validcsv", function(value, element) {&lt;br /&gt; return this.optional(element) || /^([0-9])+(,[0-9]+)*$/.test(value);&lt;br /&gt;}, "Must be comma separated if entering multiple values: Value1,Value2");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Alt validation for 0-9&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;jQuery.validator.addMethod("validcsv", function(value, element) {&lt;br /&gt; return this.optional(element) || /^([\d])+(,[\d]+)*$/.test(value);&lt;br /&gt;}, "Must be comma separated if entering multiple values: Value1,Value2");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Validates for a-z A-Z 0-9 _ &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;jQuery.validator.addMethod("validcsv", function(value, element) {&lt;br /&gt; return this.optional(element) || /^([\w])+(,[\w]+)*$/.test(value);&lt;br /&gt;}, "Must be comma separated if entering multiple values: Value1,Value2");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now this will validate values for a-z upper and lower case and 0-9 numeric values that are separated by a comma. If you need to modify the Regular Expression to fit your needs please post back with your findings.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-1892075500757792503?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/1892075500757792503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=1892075500757792503' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/1892075500757792503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/1892075500757792503'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2009/04/jquery-csv-validation-for-user-input.html' title='jQuery CSV validation for user input'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-2793097160333847519</id><published>2009-04-16T13:27:00.000-07:00</published><updated>2009-04-16T13:33:24.199-07:00</updated><title type='text'>jQuery (1.3.2) w/ Thickbox (3.1) and Java .action hack</title><content type='html'>Here goes:&lt;br /&gt;&lt;br /&gt;While trying to incorporate jQuery Thickbox into my JSP page I encountered a problem. The problem being is that I did not want to use the iFrame call but the Ajax call but I was getting a 404 Error. After looking at the URL Ajax was calling I noticed the Ampersand symbol (&amp;amp;) was being passed in the URL but the .action method needs a ? to pass parms in the URL.&lt;br /&gt;&lt;br /&gt;Looking at thickbox.js line (303 I think)&lt;br /&gt;&lt;br /&gt;[CODE]url += "&amp;amp;random=" + (new Date().getTime()), function() {[/CODE]&lt;br /&gt;&lt;br /&gt;I just replaced the &amp;amp; with ? and bingo.&lt;br /&gt;&lt;br /&gt;[CODE]url += "?random=" + (new Date().getTime()), function() {[/CODE]&lt;br /&gt;&lt;br /&gt;Just a FYI for all with headaches ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-2793097160333847519?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/2793097160333847519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=2793097160333847519' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/2793097160333847519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/2793097160333847519'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2009/04/jquery-132-w-thickbox-31-and-java.html' title='jQuery (1.3.2) w/ Thickbox (3.1) and Java .action hack'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-3112302683515920795</id><published>2009-04-15T07:07:00.000-07:00</published><updated>2009-04-15T07:36:09.993-07:00</updated><title type='text'>Firefox 3.0.7 update breaks Aptana + how to fix</title><content type='html'>Okay so after much digging around I found that Aptana needs libgtkembedmoz.so to run (Aptana team please fix this, just include the file in the next build please!!!).&lt;br /&gt;&lt;br /&gt;Work around:&lt;br /&gt;&lt;br /&gt;Well xulrunner (the new version) doesn't include libgtkembedmoz.so  file. So after much Googling I found that Thunderbird does. So I YUM install thunderbird and went to check if the file libgtkembedmoz.so was there. (BTW: thunderbird version 2.0.0.18 on CentOS 5). Yeah it's there.&lt;br /&gt;&lt;br /&gt;So I have a script that looks for the libgtkembedmoz.so file&lt;br /&gt;&lt;br /&gt;[SCRIPT]&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;# Set path for the Mozilla SWT binding&lt;br /&gt;MOZILLA_FIVE_HOME=${MOZILLA_FIVE_HOME%*/}&lt;br /&gt;if false &amp;amp;&amp;amp; [ -n "$MOZILLA_FIVE_HOME" -a -e $MOZILLA_FIVE_HOME/libgtkembedmoz.so ]; then&lt;br /&gt;   :&lt;br /&gt;elif [ -e /usr/lib/mozilla/libgtkembedmoz.so ]; then&lt;br /&gt;   export MOZILLA_FIVE_HOME=/usr/lib/mozilla&lt;br /&gt;elif [ -e /usr/lib/firefox/libgtkembedmoz.so ]; then&lt;br /&gt;   export MOZILLA_FIVE_HOME=/usr/lib/firefox&lt;br /&gt;elif [ -e /usr/lib/xulrunner/libgtkembedmoz.so ]; then&lt;br /&gt;   export MOZILLA_FIVE_HOME=/usr/lib/xulrunner&lt;br /&gt;elif [ -e /usr/lib/esc-1.0.0/xulrunner/libgtkembedmoz.so ]; then&lt;br /&gt;   export MOZILLA_FIVE_HOME=/usr/lib/esc-1.0.0/xulrunner&lt;br /&gt;elif [ -e /usr/lib/mozilla-firefox/libgtkembedmoz.so ]; then&lt;br /&gt;   export MOZILLA_FIVE_HOME=/usr/lib/mozilla-firefox&lt;br /&gt;elif [ -e /usr/lib/mozilla/libgtkembedmoz.so ]; then&lt;br /&gt;   export MOZILLA_FIVE_HOME=/usr/lib/mozilla&lt;br /&gt;elif [ -e /usr/lib/thunderbird-2.0.0.18/libgtkembedmoz.so ]; then&lt;br /&gt;   export MOZILLA_FIVE_HOME=/usr/lib/thunderbird-2.0.0.18&lt;br /&gt;else&lt;br /&gt;   $DIALOGW \&lt;br /&gt;       --title="Integrated browser support not working" \&lt;br /&gt;       --text="This Eclipse build doesn't have support for the integrated browser."&lt;br /&gt;   [ $? -eq 0 ] || exit 1&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# libraries from the mozilla choosen take precedence&lt;br /&gt;LD_LIBRARY_PATH=$MOZILLA_FIVE_HOME${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}&lt;br /&gt;&lt;br /&gt;# Do the actual launch of Aptana Studio&lt;br /&gt;exec ./AptanaStudio&lt;br /&gt;[/SCRIPT]&lt;br /&gt;&lt;br /&gt;make it executable (chmod 755 scriptname) and run.&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;&lt;br /&gt;Just cjeck to make sure you have the right version of the program and/or that the path works.&lt;br /&gt;&lt;br /&gt;[user@machine]# ls /usr/lib/thunderbird-2.0.0.18/libgtkembedmoz.so&lt;br /&gt;/usr/lib/thunderbird-2.0.0.18/libgtkembedmoz.so&lt;br /&gt;&lt;br /&gt;So if you have thunerbird 2.0.0.14 please make the change in the script as well.&lt;br /&gt;&lt;br /&gt;Hope this help ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-3112302683515920795?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/3112302683515920795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=3112302683515920795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/3112302683515920795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/3112302683515920795'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2009/04/firefox-307-update-breaks-aptana-how-to.html' title='Firefox 3.0.7 update breaks Aptana + how to fix'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-2491545234431954892</id><published>2009-02-03T07:50:00.000-08:00</published><updated>2009-02-03T13:29:02.844-08:00</updated><title type='text'>Configure Aptana for CentOS 5</title><content type='html'>While moving from a Windows environment to Linux I wanted to use Aptana's free IDE for development, but was having a ton of issues getting Aptana to run correctly on Linux CentOS 5.&lt;br /&gt;So here are my finding:&lt;br /&gt;&lt;br /&gt;After I installed Aptana (install directory: /usr/share/aptana )&lt;br /&gt;&lt;br /&gt;I keep getting errors like this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/22275813@N06/3250836751/" title="SWT-ERROR by phillpafford, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3024/3250836751_1a185fccce.jpg" alt="SWT-ERROR" height="235" width="500" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;looking in the logs I see this:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;!MESSAGE No more handles (java.lang.UnsatisfiedLinkError: /root/.Aptana/Aptana Studio/configuration/org.eclipse.osgi/bundles/72/1/.cp/libswt-mozilla-gtk-3236.so: libxpcom.so: cannot open shared object file: No such file or directory)&lt;br /&gt;&lt;br /&gt;!STACK 0&lt;br /&gt;&lt;br /&gt;org.eclipse.swt.SWTError: No more handles (java.lang.UnsatisfiedLinkError: /root/.Aptana/Aptana Studio/configuration/org.eclipse.osgi/bundles/72/1/.cp/libswt-mozilla-gtk-3236.so: libxpcom.so: cannot open shared object file: No such file or directory)&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Well after search the forums and other sites for about an hour, people suggested I install these packages.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;yum install gtk2-devel&lt;/li&gt;&lt;li&gt;yum install xulrunner&lt;/li&gt;&lt;li&gt;yum install libstdc*&lt;/li&gt;&lt;li&gt;yum install gtk2*&lt;/li&gt;&lt;li&gt;yum install libswt3-gtk2*&lt;/li&gt;&lt;li&gt;yum install compat-libstdc++-33 &lt;/li&gt;&lt;/ul&gt;I had some already installed and I don't know if they are really required but there they are for you.&lt;br /&gt;&lt;br /&gt;After all that it still didn't work until I came across &lt;a href="http://support.aptana.com/asap/browse/STU-1565"&gt; this post&lt;/a&gt;. in the post it has a file you need to download called &lt;a href="http://support.aptana.com/asap/secure/attachment/10969/aptana.sh"&gt;aptana.sh&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here is the code if the file is not available:&lt;br /&gt;&lt;br /&gt;/*************** START OF FILE **************/&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;# Set path for the Mozilla SWT binding&lt;br /&gt;&lt;br /&gt;MOZILLA_FIVE_HOME=${MOZILLA_FIVE_HOME%*/}&lt;br /&gt;if false &amp;amp;&amp;amp; [ -n "$MOZILLA_FIVE_HOME" -a -e $MOZILLA_FIVE_HOME/libgtkembedmoz.so ]; then&lt;br /&gt; :&lt;br /&gt;elif [ -e /usr/lib/mozilla/libgtkembedmoz.so ]; then&lt;br /&gt; export MOZILLA_FIVE_HOME=/usr/lib/mozilla&lt;br /&gt;elif [ -e /usr/lib/firefox/libgtkembedmoz.so ]; then&lt;br /&gt; export MOZILLA_FIVE_HOME=/usr/lib/firefox&lt;br /&gt;elif [ -e /usr/lib/xulrunner/libgtkembedmoz.so ]; then&lt;br /&gt; export MOZILLA_FIVE_HOME=/usr/lib/xulrunner&lt;br /&gt;elif [ -e /usr/lib/mozilla-firefox/libgtkembedmoz.so ]; then&lt;br /&gt; export MOZILLA_FIVE_HOME=/usr/lib/mozilla-firefox&lt;br /&gt;elif [ -e /usr/lib/mozilla/libgtkembedmoz.so ]; then&lt;br /&gt; export MOZILLA_FIVE_HOME=/usr/lib/mozilla&lt;br /&gt;else&lt;br /&gt; $DIALOGW \&lt;br /&gt;     --title="Integrated browser support not working" \&lt;br /&gt;     --text="This Eclipse build doesn't have support for the integrated browser."&lt;br /&gt; [ $? -eq 0 ] || exit 1&lt;br /&gt;fi&lt;br /&gt;# libraries from the mozilla choosen take precedence&lt;br /&gt;LD_LIBRARY_PATH=$MOZILLA_FIVE_HOME${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}&lt;br /&gt;&lt;br /&gt;# Do the actual launch of Aptana Studio&lt;br /&gt;exec ./AptanaStudio&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;/*************** END OF FILE **************/&lt;br /&gt;&lt;br /&gt;Still didn't work so I decided to see if the file it was trying to call existed.  the command for the file name in:&lt;br /&gt;&lt;br /&gt;locate libgtkembedmoz.so&lt;br /&gt;&lt;br /&gt;it found it so I added the condition to the script and now it works great, YEAH!!&lt;br /&gt;&lt;code&gt;&lt;br /&gt;elif [ -e /usr/lib/esc-1.0.0/xulrunner/libgtkembedmoz.so ]; then&lt;br /&gt;  export MOZILLA_FIVE_HOME=/usr/lib/esc-1.0.0/xulrunner&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Let me know of any other findings that might help out.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;--Phill&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-2491545234431954892?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/2491545234431954892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=2491545234431954892' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/2491545234431954892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/2491545234431954892'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2009/02/configure-aptana-for-centos-5.html' title='Configure Aptana for CentOS 5'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3024/3250836751_1a185fccce_t.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-605391201295533738</id><published>2008-07-30T05:12:00.000-07:00</published><updated>2008-07-30T05:18:45.037-07:00</updated><title type='text'>Using the PSI GTalk hack to get all your IM freinds on iPhone</title><content type='html'>The thought occurred to me the other day that I wish I could chat with all my friends over the iPhone. I know there is &lt;a href="http://www.meebo.com/"&gt;meebo&lt;/a&gt; but it's not the same on the iPhone. Then I remembered this PSI GTalk hack on how to get all your IM friends in GTalk from &lt;a href="http://www.bigblueball.com/forums/general-other-im-news/33739-connect-google-talk-aim-msn-yahoo.html"&gt;BigBlueBall&lt;/a&gt;. I have done this hack before for Yahoo and GTalk and added all my Yahoo IM buddies but found that all my friends switched to GTalk so I didn't really need/use it anymore.&lt;br /&gt;&lt;br /&gt;Now that Google has release a iPhone GTalk app I think its time to fire it back up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-605391201295533738?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/605391201295533738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=605391201295533738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/605391201295533738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/605391201295533738'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2008/07/using-psi-gtalk-hack-to-get-all-your-im.html' title='Using the PSI GTalk hack to get all your IM freinds on iPhone'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-8299551636997182412</id><published>2008-07-15T11:44:00.000-07:00</published><updated>2011-01-18T11:05:03.161-08:00</updated><title type='text'>Apple customer for life - An iPhone 3G story</title><content type='html'>&lt;div class="ArwC7c ckChnd" id=":1lu"&gt;If you are considering getting the new iPhone and wonder what kind of service your will receive from Apple &amp;amp; AT&amp;amp;T read this.&lt;br /&gt;&lt;br /&gt;Our Story:&lt;br /&gt;&lt;br /&gt;2 week prior to launch I spoke with AT&amp;amp;T over the phone to confirm my wife and I were eligible to purchase the iPhone.&lt;br /&gt;As another step I also went to the Apple store and also confirmed we are eligible to purchase the iPhone.&lt;br /&gt;&lt;br /&gt;Both parties (AT&amp;amp;T &amp;amp; Apple) said yes we can, yeah!!&lt;br /&gt;&lt;br /&gt;The Big Day:&lt;br /&gt;&lt;br /&gt;4:30 AM the alarm goes off to wake me up so I can go to the local mall and stand in line at the Apple store.&lt;br /&gt;I get to the mall around 5:00 AM and to my surprise I am the first person there. YEAH!&lt;br /&gt;I setup a chair for me to sit in and start to read a book I brought.&lt;br /&gt;More people start to line up around 5:20ish and then more keep coming.&lt;br /&gt;7:00 AM they open the mall door's to let us in to stand in a new line in front of Apple.&lt;br /&gt;7:20 some Apple employees come out to answer any question we might have. Being the first person in line they wanted to streamline any question I might have. She asks about the plan I am getting and a couple of other questions to see if I have everything I need. I come to find out after the Q&amp;amp;A I need to have the person who the account is under do the iPhone registration, aka my wife.&lt;br /&gt;I call my wife to have them all (+ the kids as well) come down to the mall and meet me there.&lt;br /&gt;They get there at 7:45 AM with 15 minutes to spare before they open the Apple store.&lt;br /&gt;As the first ones in and with all parties available to do the purchase we begin the process.&lt;br /&gt;The sales person says we must buy each iPhone in a separate transaction, Fine by me.&lt;br /&gt;We start the process and come to find out we have some sort of error that won't let us purchase the iPhone from the Apple store. We are taken to the trouble shooting station to find out why.&lt;br /&gt;Apple calls AT&amp;amp;T to find out why we can't purchase the iPhone. AT&amp;amp;T says our account looks fine and we should be able to purchase it.&lt;br /&gt;We try again to purchase the iPhone but got the same error.&lt;br /&gt;Now Apple is saying we need to go to the AT&amp;amp;T store up stairs in the mall (Luck one was so close by) to purchase an iPhone because their system will not let them for some reason.&lt;br /&gt;8:30 We head upstairs to the AT&amp;amp;T store only to find a long line :-(&lt;br /&gt;, I see the Apple manager from down stairs and ask her if she could ask the AT&amp;amp;T store manager to help us cut in line to purchase the iPhone ( I know but we couldn't wait in line again).&lt;br /&gt;She came back with the answer of, "Sorry he cannot let us cut and they are running low on iPhones at this AT&amp;amp;T location.&lt;br /&gt;We see the AT&amp;amp;T manager and ask him if he could take a look at our account to see why we cannot purchase from the Apple store. He agrees to look at our account.&lt;br /&gt;All looks fine he states, you should be able to purchase the iPhone from the Apple store.&lt;br /&gt;8:45 So we head back downstairs to the Apple store and speak to the manager again. He agrees to let us try to purchase the iPhone again. So this time we try my number first.&lt;br /&gt;Still no luck, we get the same error message again.&lt;br /&gt;At this point the manager says there is nothing they can do at the Apple store, try the AT&amp;amp;T store. &lt;br /&gt;My wife and I are not happy; we had taken the steps to ensure that we could purchase the iPhone.&lt;br /&gt;AT&amp;amp;T said we are eligible, Apple said we are eligible, so what's the problem?&lt;br /&gt;&lt;br /&gt;Now I see the AT&amp;amp;T manager in the Apple store talking to the manager, something is happening and we want to know what it is.&lt;br /&gt;After they talk for a minute they come over and explain that we can only purchase the iPhone at the AT&amp;amp;T store due to my corporate discount that I had just found out about and applied for not less than a week ago.&lt;br /&gt;Here is why:&lt;br /&gt;&lt;br /&gt;Through my work I receive a corporate discount which I had just signed up for a week ago for all of our numbers on the family plan. By doing this I unknowingly excluded eligibility to purchase the new iPhone at Apple and must purchase it at AT&amp;amp;T.&lt;br /&gt;&lt;br /&gt;wait, WHAT!!!&lt;br /&gt;&lt;br /&gt;There was no mention of the corporate discount and where to purchase the phone in any documentation I read or that any customer rep from AT&amp;amp;T or Apple had told us about.&lt;br /&gt;At this point my wife had to leave and I was to deal with us getting the iPhones. I spoke to the manager again and wanted to know if there was any way to cancel the corporate discount so I may purchase the iPhones. He stated that the manager from AT&amp;amp;T said they could, but it would take a day for my account status to be cleared for me to purchase the iPhones.&lt;br /&gt;Now it seems like we would not be able to purchase the iPhones today, bummer. I had complained some to the manager and felt that since Apple didn't tell us about this glitch what was Apple going to do for us? I had taken all the steps in order to qualify and purchase the iPhone and felt like crap that I had wasted all this time and effort in doing so.&lt;br /&gt;At this point the manager had said he would comp us some accessories for the iPhone for our trouble.&lt;br /&gt;So I went and picked out a couple for my wife and myself and waited for my wife to return (which was about 10:15 when she got back).&lt;br /&gt;When she got back to the Apple store I explained to her what was going on.&lt;br /&gt;My wife didn't want accessories; she wanted the iPhone and was not happy that after all our efforts we would not be getting an iPhone today.&lt;br /&gt;So we spoke to the manager again asking if there was some way we could purchase the iPhone today and activate it tomorrow. He said no that Apple or AT&amp;amp;T had to activate the phone in order for us to purchase the phones.&lt;br /&gt;&lt;br /&gt;After explaining our situation and trying to argue our point the manager offered us 2 iPod touches for free for all the trouble we have gone through. (Wow I didn't expect this at all)&lt;br /&gt;&lt;br /&gt;My wife still wasn't happy, she said I don't want the iPod touch I want the iPhone. &lt;br /&gt;I had to take a step back when she said no to the 2 free 8GB iPod touches, I was thinking WHAT!! They are offering us free iPod touches and you're saying NO!&lt;br /&gt;After speaking with my wife and listening to her side of things I backed her up in this decision. &lt;br /&gt;From her point we had taken all the necessary steps in order to purchase the iPhones, waited in line and was shuffled from Apple to AT&amp;amp;T a couple of time with both parties saying we should be able to purchase the iPhone just not from me (AT&amp;amp;T or Apple). She said I am never going to use the iTouch so she doesn't want it, she wanted the iPhone.&lt;br /&gt;&lt;br /&gt;after some more time explaining our situation to the manager, he still said there is nothing he could do.&lt;br /&gt;I asked my wife if she wanted the iPod's or the accessories at which that point the manager said he would just give it all to us. The iPod's and the accessories, WHAT!! HUH!! HOW!!! OKAY!!&lt;br /&gt;I looked at my wife and she looked at me is complete amazement and shock. I looked at the manager and said thank you as he walked away to ring up the merchandise for us.&lt;br /&gt;I have never had a manager do something like this for us; I and my wife are still in shock.&lt;br /&gt;In my past experience with Apple they have always had great customer service and care, but this was beyond that.&lt;br /&gt;&lt;br /&gt;So Apple comped /gave us&lt;br /&gt;&lt;br /&gt;2 8 GB iPod touch's                               &lt;wbr&gt;&lt;/wbr&gt;           $299 each&lt;br /&gt;2 Blue tooth headsets                      &lt;wbr&gt;&lt;/wbr&gt;              $129 each&lt;br /&gt;2 iPhone 3G docks                         &lt;wbr&gt;&lt;/wbr&gt;                  $39 each&lt;br /&gt;2 carrier cases for the iPhone                     $39 each&lt;br /&gt;1 protective film for the iPhone                 $19&lt;br /&gt;&lt;br /&gt;for a total of:&lt;br /&gt;&lt;br /&gt;$953.00 plus tax of Apple merchandise for FREE&lt;br /&gt;&lt;br /&gt;After this we went back upstairs to the AT&amp;amp;T store to see if they could do anything else for us.&lt;br /&gt;We spoke with the manager and he took our names down as a special group for tomorrow's shipment.&lt;br /&gt;9:00 AM Saturday July 12th 2008 EDT we are allowed to purchase the iPhones from the AT&amp;amp;T store.&lt;br /&gt;Later that day (without my knowledge):&lt;br /&gt;My wife had called AT&amp;amp;T to see if there was anything else we could do so we could purchase the iPhones from Apple today.&lt;br /&gt;The AT&amp;amp;T rep said they could remove my corporate discount and it should take it off the account immediately. WHAT, why didn't the AT&amp;amp;T rep at the store do this? The AT&amp;amp;T rep on the phone didn't know why, but she had removed the corporate discount and that is what my wife wanted to do.&lt;br /&gt;Now my wife heads back up to the mall to see if she can purchase the iPhone from Apple today. She enters the store and asks for the manager. They speak and he gets her an Apple employee to see if she can purchase the iPhones now.&lt;br /&gt;Even later in the day:&lt;br /&gt;As I am at work and need to make a call on my cell phone I notice that I have no service available. I think weird why can't I get service. I pick up the land line to dial my wife and she has just IM'ed me about the great news. She was able to purchase the iPhones at the Apple store. She explained that my phone would have no service on my current cell phone until we used iTunes to activate the iPhones at which point I should be home by then to enjoy my new iPhone.&lt;br /&gt;I am writing this note to boast about all the free stuff we received from Apple, but to give props to them for being such a great company. They went above and beyond what other companies would do for their customers or even potential customers. I just wanted to say thanks for making what seemed to be a bad experience into one that I will never forget. Apple customer for life!!!&lt;br /&gt;&lt;br /&gt;UPDATE:&lt;br /&gt;Here is a pic from one of the Apple Store Staff on the 3G iPhone launch of me first in line ;)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_MtVy7MtEB5E/TTXkVZ0gzyI/AAAAAAACLns/fcS03JMG8P8/s1600/apple_iphone_3g_luanch_first_in_line.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://1.bp.blogspot.com/_MtVy7MtEB5E/TTXkVZ0gzyI/AAAAAAACLns/fcS03JMG8P8/s320/apple_iphone_3g_luanch_first_in_line.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-8299551636997182412?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/8299551636997182412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=8299551636997182412' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/8299551636997182412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/8299551636997182412'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2008/07/apple-customer-for-life-iphone-3g-story.html' title='Apple customer for life - An iPhone 3G story'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MtVy7MtEB5E/TTXkVZ0gzyI/AAAAAAACLns/fcS03JMG8P8/s72-c/apple_iphone_3g_luanch_first_in_line.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-2144010751645499903</id><published>2008-06-07T15:19:00.000-07:00</published><updated>2009-07-07T10:22:20.977-07:00</updated><title type='text'>returned iPhones for full cash refund (How?)</title><content type='html'>In anticipation for the new iPhone (2nd gen) my wife somehow returned the 16GB iPhones for a full cash refund. What? How? I still don't know how but thanks again Apple!!! =P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-2144010751645499903?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/2144010751645499903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=2144010751645499903' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/2144010751645499903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/2144010751645499903'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2008/06/returned-iphones-for-full-cash-refund.html' title='returned iPhones for full cash refund (How?)'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-2867219979340480265</id><published>2008-04-14T11:38:00.000-07:00</published><updated>2008-04-14T11:41:30.910-07:00</updated><title type='text'>Digg iPhone Request</title><content type='html'>Thanks all at Digg for making the iPhone Digg site, but I have one complaint. I love the upcoming stories, could you add this in the views I can use?&lt;br /&gt;&lt;br /&gt;So under Topics could you add upcoming?&lt;br /&gt;&lt;br /&gt;Thanks,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-2867219979340480265?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/2867219979340480265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=2867219979340480265' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/2867219979340480265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/2867219979340480265'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2008/04/digg-iphone-request.html' title='Digg iPhone Request'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-2861893043337579503</id><published>2008-02-07T10:16:00.000-08:00</published><updated>2009-07-07T10:19:10.434-07:00</updated><title type='text'>iPhone 8GB to 16GB</title><content type='html'>Today my wife and I exchanged our 8GB (1st gen) iPhones for the new 16GB ones. we just had to pay the difference which I think was about $100.00 for each phone. Yeah more space, thanks Apple :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-2861893043337579503?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/2861893043337579503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=2861893043337579503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/2861893043337579503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/2861893043337579503'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2008/02/iphone-8gb-to-16gb.html' title='iPhone 8GB to 16GB'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-6531454257504904370</id><published>2007-06-08T11:51:00.000-07:00</published><updated>2007-06-08T12:00:09.969-07:00</updated><title type='text'>DO NOT INSTALL GSPACE FF EXTENSION</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;I have just been lock out of my Gmail Account for 24 hours due to using the gspace Firefox extension.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_MtVy7MtEB5E/Rmmm7G2ga4I/AAAAAAAAABM/U5ce9zA58iw/s1600-h/gspace_lock.png"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_MtVy7MtEB5E/Rmmm7G2ga4I/AAAAAAAAABM/U5ce9zA58iw/s400/gspace_lock.png" alt="" id="BLOGGER_PHOTO_ID_5073769989591296898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is an FYI&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-6531454257504904370?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/6531454257504904370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=6531454257504904370' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/6531454257504904370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/6531454257504904370'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2007/06/do-not-install-gspace-ff-extension.html' title='DO NOT INSTALL GSPACE FF EXTENSION'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_MtVy7MtEB5E/Rmmm7G2ga4I/AAAAAAAAABM/U5ce9zA58iw/s72-c/gspace_lock.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-116334183294786630</id><published>2006-11-12T06:22:00.000-08:00</published><updated>2006-11-12T07:22:54.820-08:00</updated><title type='text'>AVG Free Anti Virus Update Reminder, + New AVG Free Anti Spyware</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;After updating my Free AVG anti virus I noticed that AVG now offers a Free Anti Spyware App as well. I download this and it works great&lt;/p&gt;  &lt;p&gt;&lt;br/&gt; &lt;/p&gt;  &lt;br /&gt;&lt;br&gt;  &lt;p&gt;&lt;a href="http://s96.photobucket.com/albums/l178/phillpafford/?action=view&amp;amp;current=avg_deadline.jpg" title="avg_deadline.jpg"&gt;&lt;img border="0" src="http://i96.photobucket.com/albums/l178/phillpafford/th_avg_deadline.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Link to AVG Free Anti Spyware: &lt;br/&gt; &lt;/p&gt;  &lt;p&gt;http://free.grisoft.com/doc/5390/lng/us/tpl/v5#avg-anti-spyware-free&lt;br/&gt; &lt;/p&gt;  &lt;br/&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-116334183294786630?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/116334183294786630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=116334183294786630' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/116334183294786630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/116334183294786630'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2006/11/avg-free-anti-virus-update-reminder.html' title='AVG Free Anti Virus Update Reminder, + New AVG Free Anti Spyware'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-115777300122723153</id><published>2006-09-08T20:35:00.000-07:00</published><updated>2006-09-08T20:36:41.236-07:00</updated><title type='text'>Google Gtalk, Now you can add Open Communication Users</title><content type='html'>i noticed this when adding a friend to gtalk&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i96.photobucket.com/albums/l178/phillpafford/talk.jpg"&gt;&lt;/img&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-115777300122723153?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/115777300122723153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=115777300122723153' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/115777300122723153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/115777300122723153'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2006/09/google-gtalk-now-you-can-add-open.html' title='Google Gtalk, Now you can add Open Communication Users'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-115771931423957663</id><published>2006-09-08T05:39:00.000-07:00</published><updated>2006-09-08T05:41:54.246-07:00</updated><title type='text'>Yeah a Call From Gmail Chat</title><content type='html'>&lt;p&gt;Screen Shot of Gmail Chat Call in action, Yeah!!!&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i96.photobucket.com/albums/l178/phillpafford/gmail_chat_pic_sm.jpg"&gt;&lt;/img&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-115771931423957663?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/115771931423957663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=115771931423957663' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/115771931423957663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/115771931423957663'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2006/09/yeah-call-from-gmail-chat.html' title='Yeah a Call From Gmail Chat'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-115765074398861141</id><published>2006-09-07T10:33:00.000-07:00</published><updated>2006-09-07T10:39:04.030-07:00</updated><title type='text'>Another Screen Shot of Gmail's Chat Call Button</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;img src="http://i96.photobucket.com/albums/l178/phillpafford/call_buttton.png"/&gt;&lt;br/&gt; &lt;br/&gt; &lt;p&gt;It seems to be avaliable sometimes and not avaliable others, but It's comming.&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-115765074398861141?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/115765074398861141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=115765074398861141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/115765074398861141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/115765074398861141'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2006/09/another-screen-shot-of-gmails-chat.html' title='Another Screen Shot of Gmail&apos;s Chat Call Button'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33985576.post-115759339400967683</id><published>2006-09-06T18:33:00.000-07:00</published><updated>2006-09-06T18:49:50.210-07:00</updated><title type='text'>Call button in GMail Chat</title><content type='html'>I noticed thie new call button inside my gmail account, but now its gone.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i96.photobucket.com/albums/l178/phillpafford/gmail_call_button.png"&gt;&lt;/img&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33985576-115759339400967683?l=llihp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://llihp.blogspot.com/feeds/115759339400967683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33985576&amp;postID=115759339400967683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/115759339400967683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33985576/posts/default/115759339400967683'/><link rel='alternate' type='text/html' href='http://llihp.blogspot.com/2006/09/call-button-in-gmail-chat.html' title='Call button in GMail Chat'/><author><name>Phill</name><uri>http://www.blogger.com/profile/09794000549308292885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_MtVy7MtEB5E/TKCW2DYpmRI/AAAAAAACJPY/fQ-WMTCp_wI/S220/me.JPG'/></author><thr:total>0</thr:total></entry></feed>
