Can someone help me understand why I would get this error sporadically? My users get emails from my site that contain new testimonials. Some are reporting that they can successfully click on the first link, which uses the following format:
example.com/login.php?tID=4947&sID=523873
It prompts them to login, and then they are redirected to the testimonial. Then they try to click on the 2nd link that came in the email. Sometimes it successfully takes them straight to the new testimonial, without having to login, while other times they get an empty white page. Looking in the error_log it states, Call to undefined function formatURL(). So why would my call to this function work most times but sometimes not? Any help would be appreciated!
$tID = $_REQUEST['tID']; // Testimonial ID
$sID = $_REQUEST['sID']; // Search ID
// Only process this if we have one of these variables
if ($tID || $sID) {
// When trying to view a regular testimonial
if ($tID) {
$_SESSION[tIDrouter] = $tID;
$loginNeeded = "No";
}
// When trying to view a new testimonial match
if ($sID) {
$_SESSION[referSource] = "Search Match";
if (strstr($_SESSION[requestedPage], "stop.php")) {
$_SESSION[stopSearch] = $sID;
} else {
$_SESSION[sIDrouter] = $sID;
$_SESSION[loginNeededDebug] = "Yes";
$loginNeeded = "Yes";
}
}
// Are they already logged in and trying to view multiple match alerts in a row?
if ($_SESSION['uID']) {
$_SESSION[loginNeededDebug] = "No";
$loginNeeded = "No";
}
// Code for converting the article title
if (!$_SESSION[entryPoint]) {
function formatURL( $title, $separator = '-' )
{
$accents_regex = '~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i';
$special_cases = array( '&' => 'and');
$title = str_replace("'", "", "$title");
$title = mb_strtolower( trim( $title ), 'UTF-8' );
$title = str_replace( array_keys($special_cases), array_values( $special_cases), $title );
$title = preg_replace( '/[!?,.+]+/', '', $title );
$title = preg_replace( $accents_regex, '$1', htmlentities( $title, ENT_QUOTES, 'UTF-8' ) );
$title = preg_replace("/[^a-z0-9]/u", "$separator", $title);
$title = preg_replace("/[$separator]+/u", "$separator", $title);
return $title;
}
}
// Create the URL that uses the new longer format
if ($tID) {
$findTitle = "SELECT title from testimonies where tID = '$tID'";
$result = mysql_query ($findTitle) OR die(mysql_error());
if ($row = mysql_fetch_array($result)) {
$title = $row["title"];
$title = stripslashes($title);
$reformattedTitle = formatURL($title);
$destinationURL = "http://www.oil-testimonials.com/essential-oils/$tID/$reformattedTitle";
$_SESSION['requestedPage'] = $destinationURL;
if ($loginNeeded == "No") {
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: $destinationURL" );
exit;
}
} else {
print ("<p>Sorry, this testimonial could not be located in the database</p>");
}
}
} // End if ($tID || $sID)
// Removed additional login code if $loginNeeded == "Yes"