RSS

Category Archives: OOP

Sending Emails with Swift Mailer

“Swift Mailer integrates into any web app written in PHP 5, offering a flexible and elegant object-oriented approach to sending emails with a multitude of features.”

Download Documentation

<!--?php require_once 'swiftmailer/lib/swift_required.php'; // Create the Transport //SMTP /*$transport = Swift_SmtpTransport::newInstance('smtp.example.org', 25) --->setUsername('your username')
->setPassword('your password')
;

*/

// Sendmail
//$transport = Swift_SendmailTransport::newInstance('/usr/sbin/sendmail -bs');

// Mail
$transport = Swift_MailTransport::newInstance();

// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);

// Create a message
$message = Swift_Message::newInstance('Wonderful Subject')
->setFrom(array('john@doe.com' => 'John Doe'))
->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name'))
->setBody('Here is the message itself')
;

// Send the message
$result = $mailer->send($message);
?>

Advertisements
 
Leave a comment

Posted by on August 31, 2013 in OOP, PHP

 

Tags:

Browser Detection Class – PHP

Demo

class Browser
{
	private  $u_agent;
	private $bname;
	private $platform;
	private $version;

	public function __construct()
	{
		$this->u_agent = $_SERVER['HTTP_USER_AGENT'];
		$this->bname = 'Unknown';
		$this->platform = 'Unknown';
		$this->version= "";
	}
	public function getBrowser()
	{


		//First get the platform?
		if (preg_match('/linux/i', $this->u_agent)) {
			$this->platform = 'linux';
		}
		elseif (preg_match('/macintosh|mac os x/i', $this->u_agent)) {
			$this->platform = 'mac';
		}
		elseif (preg_match('/windows|win32/i', $this->u_agent)) {
			$this->platform = 'windows';
		}
		 
		// Next get the name of the useragent yes seperately and for good reason
		if(preg_match('/MSIE/i',$this->u_agent) && !preg_match('/Opera/i',$this->u_agent))
		{
			$this->bname = 'Internet Explorer';
			$this->ub = "MSIE";
		}
		elseif(preg_match('/Firefox/i',$this->u_agent))
		{
			$this->bname = 'Mozilla Firefox';
			$this->ub = "Firefox";
		}
		elseif(preg_match('/Chrome/i',$this->u_agent))
		{
			$this->bname = 'Google Chrome';
			$this->ub = "Chrome";
		}
		elseif(preg_match('/Safari/i',$this->u_agent))
		{
			$this->bname = 'Apple Safari';
			$this->ub = "Safari";
		}
		elseif(preg_match('/Opera/i',$this->u_agent))
		{
			$this->bname = 'Opera';
			$this->ub = "Opera";
		}
		elseif(preg_match('/Netscape/i',$this->u_agent))
		{
			$this->bname = 'Netscape';
			$this->ub = "Netscape";
		}
		 
		// finally get the correct version number
		$known = array('Version', $this->ub, 'other');
		$pattern = '#(?<browser>' . join('|', $known) .
		')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
		if (!preg_match_all($pattern, $this->u_agent, $matches)) {
			// we have no matching number just continue
		}
		 
		// see how many we have
		$i = count($matches['browser']);
		if ($i != 1) {
			//we will have two since we are not using 'other' argument yet
			//see if version is before or after the name
			if (strripos($this->u_agent,"Version") < strripos($this->u_agent,$this->ub)){
				$this->version= $matches['version'][0];
			}
			else {
				$this->version= $matches['version'][1];
			}
		}
		else {
			$this->version= $matches['version'][0];
		}
		 
		// check if we have a number
		if ($version==null || $version=="") {
			$version="?";
		}
		 
		return array(
				'userAgent' => $this->u_agent,
				'name'      => $this->bname,
				'version'   => $this->version,
				'platform'  => $this->platform,
				'pattern'    => $this->pattern
		);
	}

}

Usage

$obj= new Browser();
$ua = $obj->getBrowser();
echo $ua['name']."<br>";
echo $ua['version']."<br>";
echo $ua['platform']."<br>";
echo $ua['userAgent']."<br>";
 
Leave a comment

Posted by on September 4, 2012 in OOP, PHP

 

Tags:

PHP File Upload Class

uploader.php



class Uploader
{
private $destinationPath;
private $errorMessage;
private $extensions;
private $maxSize;
private $uploadName;
private $seqnence;
private $renamedState = 0;

public function setDir($path)
{
$this->destinationPath = $path;
}

public function setMaxSize($sizeMB)
{
$this->maxSize = $sizeMB * (1024*1024);
}

public function setExtensions($options)
{
$this->extensions = $options;
}

public function getExtension($string)
{
$ext = "";
try
{
$parts = explode(".",$string);
$ext = strtolower($parts[count($parts)-1]);
}
catch(Exception $c)
{
$ext = "";
}
return $ext;
}

public function setMessage($message)
{
$this->errorMessage = $message;
}

public function getMessage()
{
return $this->errorMessage;
}

public function getUploadName()
{
return $this->uploadName;
}

public function setSequence($seq)
{
$this->imageSeq = $seq;
}

public function getRandom()
{
return strtotime(date('Y-m-d H:iConfused')).rand(1111,9999).rand(11,99).rand(111,999);
}

public function getRenamedState()
{
return $this->renamedState;
}

public function renameFile($state,$newName)
{
$this->renamedState = $state;
$this->uploadName = $newName;
}

public function deleteUploaded()
{
unlink($this->destinationPath.$this->uploadName);
}

public function uploadFile($fileBrowse)
{
$result = false;
$size = $_FILES[$fileBrowse]["size"];
$name = $_FILES[$fileBrowse]["name"];
$ext = $this->getExtension($name);
if(!is_dir($this->destinationPath))
{
$this->setMessage("Destination folder is not a directory ");
}
else if(!is_writable($this->destinationPath))
{
$this->setMessage("Destination is not writable !");
}
else if(empty($name))
{
$this->setMessage("File not selected ");
}
else if($size>$this->maxSize)
{
$this->setMessage("Too large file !");
}
else if(in_array($ext,$this->extensions))
{
switch ($this->getRenamedState())
{
case 0: //Keep original file name
$this->uploadName= $name;
break;
case 1: //Rename file with randomly-generated name
$this->uploadName = $this->imageSeq."-".substr(md5(rand(1111,9999)),0,8).$this->getRandom().rand(1111,1000).rand(99,9999).".".$ext;
break;
case 2: //Rename file with given name when calling renameFile() function
$this->uploadName.= ".".$ext;
break;
default:
$this->uploadName= $name;
}


if(move_uploaded_file($_FILES[$fileBrowse]["tmp_name"],$this->destinationPath.$this->uploadName))
{
$result = true;
}
else
{
$this->setMessage("Upload failed");
}
}
else
{
$this->setMessage("Invalid file format!");
}
return $result;
}

}




How to use this uploader class

<?php
if(isset($_POST['btnSub']))
{
require_once('uploader.php');
$uploader = new Uploader();
$uploader->setDir('public/img');
$uploader->setExtensions(array('jpg','jpeg','png','gif')); //allowed extensions list
$uploader->setMaxSize(.5); //set max file size to be allowed in MB

//Select one of the following alternatives
//$uploader->renameFile(0,""); //Keep original file name
//$uploader->renameFile(1,""); //Rename file with randomly-generated name
//$uploader->renameFile(2,"sample"); // Rename file with 'sample'

if($uploader->uploadFile('txtFile'))//specify file field
{
$image = $uploader->getUploadName(); //get uploaded file name
}
else
{
echo $uploader->getMessage(); //get upload error message
}

}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>File Upload Example</title>
</head>

<body>
<form action="" method="post" enctype="multipart/form-data">
<input name="txtFile" type="file" />
<input name="btnSub" type="submit" />
</form>
</body>
</html>
 
Leave a comment

Posted by on June 6, 2012 in OOP, PHP

 

Tags:

PHP User Class

<?php
class User
{
private $user_id;
private $username;
private $password;
private $email;
protected static $table_name="lbs_user";

public function __construct($username="",$password="",$email="")
{
$this->username = $username;
$this->password = $password;
$this->email    = $email;
}

/* Add a new user.
* Returns true on success, false on error */

public function getUserId()
{
return  $this->user_id;
}

public function create()
{
global $gdbObj;
$username = $gdbObj->escape_value($this->username);
$password = $gdbObj->escape_value($this->password);
$email    = $gdbObj->escape_value($this->email);

$sql = "INSERT INTO ".self::$table_name." (username,password,email) values('$username','$password','$email')";
if($gdbObj->query($sql))
{
$this->user_id = $gdbObj->insert_id();
return true;
}
else
{
return false;
}

}

/* Update user profile.
* Returns true on success, false on error */
public function update()
{

}

/* Remove an user.
* Returns true on success, false on error */
public function delete()
{

}

}
$guserObj = new User();
?>


 
1 Comment

Posted by on March 18, 2012 in OOP, PHP

 

Tags:

PHP/MySQL Sample Database Class

<?php
class MySqlDatabase
{
private $_connection;
public $last_query;
private $magic_quotes_active;
private $real_escape_string_exists;

public function __construct()
{
$this->open_connection();
/* Returns the current configuration setting of magic_quotes_gpc.
Returns 0 if magic_quotes_gpc is off, 1 otherwise. */
$this->magic_quotes_active = get_magic_quotes_gpc();
$this->real_escape_string_exists = function_exists("mysql_real_escape_string");
}

public function open_connection()
{
$this->_connection = mysql_connect(DB_SERVER,DB_USER,DB_PASS);
if(!$this->_connection)
{
die('Database connection failed'.mysql_error());
}
else
{
$db_select = mysql_select_db(DB_NAME,$this->_connection);
if(!$db_select)
{
die('Database selection failed'.mysql_error());
}
}
}

public function close_connection()
{
if(isset($this->_connection))
{
mysql_close($this->_connection);
unset($this->_connection);
}
}

/* For SELECT returns resultset on success, false on error.
* For INSERT, UPDATE, DELETE etc returns true on success, false on error */
public function query($sql)
{
$this->last_query = $sql;

$result = mysql_query($sql,$this->_connection);
$this->confirm_query($result);
return $result;
}

/* Make sure query executed successfully.
* Only for debugging purposes. */
private function confirm_query($result)
{

if(!$result)
{
$output = "Databse query failed".mysql_error()."<br>";
$output .= "Last query ".$this->last_query;

die($output);
}
}

/* Escape special characters in the string before sending to the database
* Consider PHP Version*/
public function escape_value($value)
{

if($this->real_escape_string_exists)// PHP version 4.3.0 or higher
{

if($this->magic_quotes_active)
{
/* Automatically add back slashes when magic quotes are active in php.ini
* First remove them. */
$value = stripslashes($value);
}
//Escapes special characters in a string
$value = mysql_real_escape_string($value);
}
else //before PHP version 4.3.0
{

if(!$this->magic_quotes_active)
{
// Add slashes manually
$value = addslashes($value);
}
}

return $value;
}

/* Returns an array of strings that corresponds to the fetched row.
* Returns FALSE if there are no more rows.*/
public function fetch_array($result_set)
{
return mysql_fetch_array($result_set);
}

/* Retrives the number of rows from the result set.
* Returns FALSE on failure. */
public function num_rows($result_set)
{
return mysql_num_rows($result_set);
}

/* Get the ID generated in the last query
* 0 if the previous query does not generate an AUTO_INCREMENT value.
* FALSE if no MySQL connection was established.  */
public function insert_id()
{
return mysql_insert_id($this->_connection);
}

/* Get number of affected rows in previous MySQL operation.
* Return -1 if the last query failed.  */
public function affected_rows()
{
return mysql_affected_rows($this->_connection);
}

}
//Creates an object from MySQLDatabase class
$gdbObj = new MySqlDatabase();
?>
 
8 Comments

Posted by on March 18, 2012 in OOP, PHP

 

Tags: