Archive for category php
MySQL connection string for multiple servers in PHP
This is something that I started doing recently that I have found really helpful. Whenever I have a MySQL include file for a web development project, I set it up so it will work on both my local dev server and the live website. I accomplish this by checking to see where the file is being loaded from – if it is being loaded from the web server, you just connect to localhost; if it is being loaded somewhere else, it will use the domain name to access the database server.
// define your settings
$domain = "example.com";
$user = "dblogin";
$pass = "dbpassword";
$schema = "dbname";
// check to see where this is being loaded from
if ($_SERVER['HTTP_HOST'] == "$domain" || $_SERVER['HTTP_HOST'] == "www.$domain") {
// if loaded off website, connect to localhost
$link = mysqli_connect("localhost", $user, $pass, $schema) or die(mysqli_error());
} else {
// otherwise you will need to access it remotely
$link = mysqli_connect($domain, $user, $pass, $schema) or die(mysqli_error());
}
// check your connection
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
This works great because you have have the exact same files on both servers, when you deploy changes to the site you don’t need to worry about removing your development server info.
Check if time falls between a range in PHP
I was digging through some old stuff today and found this PHP function I wrote awhile back. You pass a time to the function along with a start time and end time, and it will determine if the time falls between that range. I figured I would post it on here in case anyone has a need for it.
function CheckTime($currentTime, $startTime, $endTime){
// written 11/26/2006 by Patrick H. (patrickh@gmail.com)
//
// the time passed must meet all the below criteria to return 1 (true):
//
// - current hour needs to be equal or greater than start hour
// - current hour needs to be equal or less than end hour
// - current minute needs to be equal or greater than start minute (if current hour is ok)
// - current minute needs to be equal or less than end minute (if current hour is ok)
//
// if any of those checks does not pass, it will return 0 (false)
global $cHour;
global $cMin;
global $sHour;
global $sMin;
global $eHour;
global $eMin;
// break up current time
$now = explode(":",$currentTime);
$cHour = intval($now[0]); // current time - hour
$cMin = intval($now[1]); // current time - minute
// break up start time
$start = explode(":",$startTime);
$sHour = intval($start[0]); // start of range - hour
$sMin = intval($start[1]); // start of range - minute
// brek up end time
$end = explode(":",$endTime);
$eHour = intval($end[0]); // end of range - hour
$eMin = intval($end[1]); // end of range - minute
// this is the variable used to track the result of the checks
$pass = true;
if($sHour < $eHour){
// the range is on the same day
// compare to the start hour
if($cHour < $sHour){
$pass = false;
};
// compare to the end hour
if($cHour > $eHour){
$pass = false;
};
// compare to the start min
if($cHour == $sHour){
if($cMin < $sMin){
$pass = false;
};
};
// compare to the end min
if($cHour == $eHour){
if($cMin > $eMin){
$pass = false;
};
};
} else {
// the range is overnight, so the logic is a little different
if( ($cHour < $sHour) && ($cHour > $eHour) ){
$pass = false;
};
// compare to the start min
if($cHour == $sHour){
if($cMin < $sMin){
$pass = false;
};
};
// compare to the end min
if($cHour == $eHour){
if($cMin > $eMin){
$pass = false;
};
};
};
// done with check, return the result
if($pass == false){
return 0; // failed
} else {
return 1; // passed
};
};
// test it out
// make sure you use military time
// usage: current time, range start time, range end time
echo CheckTime("06:30","15:20","06:45"); // this should return 1